blob: e36a69c6986ad3097a79b6843bf0c2bcc1b6e30d [file] [log] [blame]
Bram Moolenaar9964e462007-05-05 17:54:07 +00001" Vim syntax file
2" Maintainer: Nikolai Weibull <now@bitwi.se>
Bram Moolenaara7241f52008-06-24 20:39:31 +00003" Latest Revision: 2007-06-17
Bram Moolenaar9964e462007-05-05 17:54:07 +00004
5if exists("b:current_syntax")
6 finish
7endif
8
9let s:cpo_save = &cpo
10set cpo&vim
11
Bram Moolenaara7241f52008-06-24 20:39:31 +000012setlocal iskeyword+=-
Bram Moolenaar9964e462007-05-05 17:54:07 +000013
14syn keyword cmusrcTodo contained TODO FIXME XXX NOTE
15
16syn match cmusrcComment contained display '^\s*#.*$'
17
18syn match cmusrcBegin display '^'
19 \ nextgroup=cmusrcKeyword,cmusrcComment
20 \ skipwhite
21
22syn keyword cmusrcKeyword contained add
23 \ nextgroup=cmusrcAddSwitches,cmusrcURI
24 \ skipwhite
25
26syn match cmusrcAddSwitches contained display '-[lpqQ]'
27 \ nextgroup=cmusrcURI
28 \ skipwhite
29
30syn match cmusrcURI contained display '.\+'
31
32syn keyword cmusrcKeyword contained bind
33 \ nextgroup=cmusrcBindSwitches,
34 \ cmusrcBindContext
35 \ skipwhite
36
37syn match cmusrcBindSwitches contained display '-[f]'
38 \ nextgroup=cmusrcBindContext
39 \ skipwhite
40
41syn keyword cmusrcBindContext contained common library playlist queue
42 \ browser filters
43 \ nextgroup=cmusrcBindKey
44 \ skipwhite
45
46syn match cmusrcBindKey contained display '\S\+'
47 \ nextgroup=cmusrcKeyword
48 \ skipwhite
49
50syn keyword cmusrcKeyword contained browser-up colorscheme echo factivate
51 \ filter invert player-next player-pause
52 \ player-play player-prev player-stop quit
53 \ refresh run search-next search-prev shuffle
54 \ unmark win-activate win-add-l win-add-p
55 \ win-add-Q win-add-q win-bottom win-down
56 \ win-mv-after win-mv-before win-next
57 \ win-page-down win-page-up win-remove
58 \ win-sel-cur win-toggle win-top win-up
59 \ win-update
60
61syn keyword cmusrcKeyword contained cd
62 \ nextgroup=cmusrcDirectory
63 \ skipwhite
64
65syn match cmusrcDirectory contained display '.\+'
66
67syn keyword cmusrcKeyword contained clear
68 \ nextgroup=cmusrcClearSwitches
69
70syn match cmusrcClearSwitches contained display '-[lpq]'
71
72syn keyword cmusrcKeyword contained fset
73 \ nextgroup=cmusrcFSetName
74 \ skipwhite
75
76syn match cmusrcFSetName contained display '[^=]\+'
77 \ nextgroup=cmusrcFSetEq
78
79syn match cmusrcFSetEq contained display '='
80 \ nextgroup=cmusrcFilterExpr
81
82syn match cmusrcFilterExpr contained display '.\+'
83
84syn keyword cmusrcKeyword contained load
85 \ nextgroup=cmusrcLoadSwitches,cmusrcURI
86 \ skipwhite
87
88syn match cmusrcLoadSwitches contained display '-[lp]'
89 \ nextgroup=cmusrcURI
90 \ skipwhite
91
92syn keyword cmusrcKeyword contained mark
93 \ nextgroup=cmusrcFilterExpr
94
95syn keyword cmusrcKeyword contained save
96 \ nextgroup=cmusrcSaveSwitches,cmusrcFile
97 \ skipwhite
98
99syn match cmusrcSaveSwitches contained display '-[lp]'
100 \ nextgroup=cmusrcFile
101 \ skipwhite
102
103syn match cmusrcFile contained display '.\+'
104
105syn keyword cmusrcKeyword contained seek
106 \ nextgroup=cmusrcSeekOffset
107 \ skipwhite
108
109syn match cmusrcSeekOffset contained display
110 \ '[+-]\=\%(\d\+[mh]\=\|\%(\%(0\=\d\|[1-5]\d\):\)\=\%(0\=\d\|[1-5]\d\):\%(0\=\d\|[1-5]\d\)\)'
111
112syn keyword cmusrcKeyword contained set
113 \ nextgroup=cmusrcOption
114 \ skipwhite
115
116syn keyword cmusrcOption contained auto_reshuffle confirm_run
117 \ continue play_library play_sorted repeat
118 \ show_hidden show_remaining_time shuffle
119 \ nextgroup=cmusrcSetTest,cmusrcOptEqBoolean
120
121syn match cmusrcSetTest contained display '?'
122
123syn match cmusrcOptEqBoolean contained display '='
124 \ nextgroup=cmusrcOptBoolean
125
126syn keyword cmusrcOptBoolean contained true false
127
128syn keyword cmusrcOption contained aaa_mode
129 \ nextgroup=cmusrcOptEqAAA
130
131syn match cmusrcOptEqAAA contained display '='
132 \ nextgroup=cmusrcOptAAA
133
134syn keyword cmusrcOptAAA contained all artist album
135
136syn keyword cmusrcOption contained buffer_seconds
137 \ nextgroup=cmusrcOptEqNumber
138
139syn match cmusrcOptEqNumber contained display '='
140 \ nextgroup=cmusrcOptNumber
141
142syn match cmusrcOptNumber contained display '\d\+'
143
144syn keyword cmusrcOption contained altformat_current altformat_playlist
145 \ altformat_title altformat_trackwin
146 \ format_current format_playlist format_title
147 \ format_trackwin
148 \ nextgroup=cmusrcOptEqFormat
149
150syn match cmusrcOptEqFormat contained display '='
151 \ nextgroup=cmusrcOptFormat
152
153syn match cmusrcOptFormat contained display '.\+'
154 \ contains=cmusrcFormatSpecial
155
156syn match cmusrcFormatSpecial contained display '%[0-]*\d*[alDntgydfF=%]'
157
158syn keyword cmusrcOption contained color_cmdline_bg color_cmdline_fg
159 \ color_error color_info color_separator
160 \ color_statusline_bg color_statusline_fg
161 \ color_titleline_bg color_titleline_fg
162 \ color_win_bg color_win_cur
163 \ color_win_cur_sel_bg color_win_cur_sel_fg
164 \ color_win_dir color_win_fg
165 \ color_win_inactive_cur_sel_bg
166 \ color_win_inactive_cur_sel_fg
167 \ color_win_inactive_sel_bg
168 \ color_win_inactive_sel_fg
169 \ color_win_sel_bg color_win_sel_fg
170 \ color_win_title_bg color_win_title_fg
171 \ nextgroup=cmusrcOptEqColor
172
173syn match cmusrcOptEqColor contained display '='
174 \ nextgroup=@cmusrcOptColor
175
176syn cluster cmusrcOptColor contains=cmusrcOptColorName,cmusrcOptColorValue
177
178syn keyword cmusrcOptColorName contained default black red green yellow blue
179 \ magenta cyan gray darkgray lightred lightred
180 \ lightgreen lightyellow lightblue lightmagenta
181 \ lightcyan white
182
183syn match cmusrcOptColorValue contained display
184 \ '-1\|0*\%(\d\|[1-9]\d\|1\d\d\|2\%([0-4]\d\|5[0-5]\)\)'
185
186syn keyword cmusrcOption contained id3_default_charset output_plugin
187 \ status_display_program
188 \ nextgroup=cmusrcOptEqString
189
190syn match cmusrcOption contained
191 \ '\%(dsp\|mixer\)\.\%(alsa\|oss\|sun\)\.\%(channel\|device\)'
192 \ nextgroup=cmusrcOptEqString
193
194syn match cmusrcOption contained
195 \ 'dsp\.ao\.\%(buffer_size\|driver\|wav_counter\|wav_dir\)'
196 \ nextgroup=cmusrcOptEqString
197
198syn match cmusrcOptEqString contained display '='
199 \ nextgroup=cmusrcOptString
200
201syn match cmusrcOptString contained display '.\+'
202
203syn keyword cmusrcOption contained lib_sort pl_sort
204 \ nextgroup=cmusrcOptEqSortKeys
205
206syn match cmusrcOptEqSortKeys contained display '='
207 \ nextgroup=cmusrcOptSortKeys
208
209syn keyword cmusrcOptSortKeys contained artist album title tracknumber
210 \ discnumber date genre filename
211 \ nextgroup=cmusrcOptSortKeys
212 \ skipwhite
213
214syn keyword cmusrcKeyword contained showbind
215 \ nextgroup=cmusrcSBindContext
216 \ skipwhite
217
218syn keyword cmusrcSBindContext contained common library playlist queue
219 \ browser filters
220 \ nextgroup=cmusrcSBindKey
221 \ skipwhite
222
223syn match cmusrcSBindKey contained display '\S\+'
224
225syn keyword cmusrcKeyword contained toggle
226 \ nextgroup=cmusrcTogglableOpt
227 \ skipwhite
228
229syn keyword cmusrcTogglableOpt contained auto_reshuffle aaa_mode
230 \ confirm_run continue play_library play_sorted
231 \ repeat show_hidden show_remaining_time shuffle
232
233syn keyword cmusrcKeyword contained unbind
234 \ nextgroup=cmusrcUnbindSwitches,
235 \ cmusrcSBindContext
236 \ skipwhite
237
238syn match cmusrcUnbindSwitches contained display '-[f]'
239 \ nextgroup=cmusrcSBindContext
240 \ skipwhite
241
242syn keyword cmusrcKeyword contained view
243 \ nextgroup=cmusrcView
244 \ skipwhite
245
246syn keyword cmusrcView contained library playlist queue browser filters
247syn match cmusrcView contained display '[1-6]'
248
249syn keyword cmusrcKeyword contained vol
250 \ nextgroup=cmusrcVolume1
251 \ skipwhite
252
253syn match cmusrcVolume1 contained display '[+-]\=\d\+%'
254 \ nextgroup=cmusrcVolume2
255 \ skipwhite
256
257syn match cmusrcVolume2 contained display '[+-]\=\d\+%'
258
259hi def link cmusrcTodo Todo
260hi def link cmusrcComment Comment
261hi def link cmusrcKeyword Keyword
262hi def link cmusrcSwitches Special
263hi def link cmusrcAddSwitches cmusrcSwitches
264hi def link cmusrcURI Normal
265hi def link cmusrcBindSwitches cmusrcSwitches
266hi def link cmusrcContext Type
267hi def link cmusrcBindContext cmusrcContext
268hi def link cmusrcKey String
269hi def link cmusrcBindKey cmusrcKey
270hi def link cmusrcDirectory Normal
271hi def link cmusrcClearSwitches cmusrcSwitches
272hi def link cmusrcFSetName PreProc
273hi def link cmusrcEq Normal
274hi def link cmusrcFSetEq cmusrcEq
275hi def link cmusrcFilterExpr Normal
276hi def link cmusrcLoadSwitches cmusrcSwitches
277hi def link cmusrcSaveSwitches cmusrcSwitches
278hi def link cmusrcFile Normal
279hi def link cmusrcSeekOffset Number
280hi def link cmusrcOption PreProc
281hi def link cmusrcSetTest Normal
282hi def link cmusrcOptBoolean Boolean
283hi def link cmusrcOptEqAAA cmusrcEq
284hi def link cmusrcOptAAA Identifier
285hi def link cmusrcOptEqNumber cmusrcEq
286hi def link cmusrcOptNumber Number
287hi def link cmusrcOptEqFormat cmusrcEq
288hi def link cmusrcOptFormat String
289hi def link cmusrcFormatSpecial SpecialChar
290hi def link cmusrcOptEqColor cmusrcEq
291hi def link cmusrcOptColor Normal
292hi def link cmusrcOptColorName cmusrcOptColor
293hi def link cmusrcOptColorValue cmusrcOptColor
294hi def link cmusrcOptEqString cmusrcEq
295hi def link cmusrcOptString Normal
296hi def link cmusrcOptEqSortKeys cmusrcEq
297hi def link cmusrcOptSortKeys Identifier
298hi def link cmusrcSBindContext cmusrcContext
299hi def link cmusrcSBindKey cmusrcKey
300hi def link cmusrcTogglableOpt cmusrcOption
301hi def link cmusrcUnbindSwitches cmusrcSwitches
302hi def link cmusrcView Normal
303hi def link cmusrcVolume1 Number
304hi def link cmusrcVolume2 Number
305
306let b:current_syntax = "cmusrc"
307
308let &cpo = s:cpo_save
309unlet s:cpo_save