annotate runtime/syntax/chordpro.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
1 " Vim syntax file
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
2 " Language: ChordPro (v. 3.6.2)
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
3 " Maintainer: Niels Bo Andersen <niels@niboan.dk>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
4 " Last Change: 2006 Apr 30
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
5 " Remark: Requires VIM version 6.00 or greater
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
6
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
7 " Quit when a syntax file was already loaded
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
8 if exists("b:current_syntax")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
9 finish
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
10 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
11
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
12 let s:cpo_save = &cpo
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
13 set cpo&vim
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
14
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
15 setlocal iskeyword+=-
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
16
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
17 syn case ignore
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
18
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
19 syn keyword chordproDirective contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
20 \ start_of_chorus soc end_of_chorus eoc new_song ns no_grid ng grid g
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
21 \ new_page np new_physical_page npp start_of_tab sot end_of_tab eot
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
22 \ column_break colb
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
23
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
24 syn keyword chordproDirWithOpt contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
25 \ comment c comment_italic ci comment_box cb title t subtitle st define
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
26 \ textfont textsize chordfont chordsize columns col
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
27
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
28 syn keyword chordproDefineKeyword contained base-fret frets
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
29
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
30 syn match chordproDirMatch /{\w*}/ contains=chordproDirective contained transparent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
31 syn match chordproDirOptMatch /{\w*:/ contains=chordproDirWithOpt contained transparent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
32
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
33 " Workaround for a bug in VIM 6, which causes incorrect coloring of the first {
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
34 if version < 700
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
35 syn region chordproOptions start=/{\w*:/ end=/}/ contains=chordproDirOptMatch contained transparent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
36 syn region chordproOptions start=/{define:/ end=/}/ contains=chordproDirOptMatch, chordproDefineKeyword contained transparent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
37 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
38 syn region chordproOptions start=/{\w*:/hs=e+1 end=/}/he=s-1 contains=chordproDirOptMatch contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
39 syn region chordproOptions start=/{define:/hs=e+1 end=/}/he=s-1 contains=chordproDirOptMatch, chordproDefineKeyword contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
40 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
41
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
42 syn region chordproTag start=/{/ end=/}/ contains=chordproDirMatch,chordproOptions oneline
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
43
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
44 syn region chordproChord matchgroup=chordproBracket start=/\[/ end=/]/ oneline
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
45
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
46 syn region chordproTab start=/{start_of_tab}\|{sot}/hs=e+1 end=/{end_of_tab}\|{eot}/he=s-1 contains=chordproTag,chordproComment keepend
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
47
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
48 syn region chordproChorus start=/{start_of_chorus}\|{soc}/hs=e+1 end=/{end_of_chorus}\|{eoc}/he=s-1 contains=chordproTag,chordproChord,chordproComment keepend
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
49
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
50 syn match chordproComment /^#.*/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
51
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
52 " Define the default highlighting.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
53 hi def link chordproDirective Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
54 hi def link chordproDirWithOpt Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
55 hi def link chordproOptions Special
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
56 hi def link chordproChord Type
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
57 hi def link chordproTag Constant
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
58 hi def link chordproTab PreProc
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
59 hi def link chordproComment Comment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
60 hi def link chordproBracket Constant
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
61 hi def link chordproDefineKeyword Type
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
62 hi def chordproChorus term=bold cterm=bold gui=bold
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
63
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
64 let b:current_syntax = "chordpro"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
65
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
66 let &cpo = s:cpo_save
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
67 unlet s:cpo_save