blob: 094771ef9cca626bb9fdb044ece22fdaa6d803c5 [file] [log] [blame]
Tomer Shalev74c50332010-02-18 23:31:37 +00001"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
2" __________ __ ___.
3" Open \______ \ ____ ____ | | _\_ |__ _______ ___
4" Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5" Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6" Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7" \/ \/ \/ \/ \/
8" $Id$
9"
10" Vim syntax file for Rockbox WPS (While Playing Screen) definitions.
11" Copyright (C) 2009 by Kevin Schoedel
12"
13" This program is free software; you can redistribute it and/or
14" modify it under the terms of the GNU General Public License
15" as published by the Free Software Foundation; either version 2
16" of the License, or (at your option) any later version.
17"
18" This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19" KIND, either express or implied.
20"
21""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
22
23if exists("b:current_syntax")
24 finish
25endif
26
27syn case match
28
29" Highlight trailing white space.
30if exists("c_space_errors")
31 if !exists("c_no_trail_space_error")
32 syn match wpsSpaceError display excludenl "\s\+$"
33 endif
34 if !exists("c_no_tab_space_error")
35 syn match wpsSpaceError display " \+\t"me=e-1
36 endif
37endif
38
39
40" Comments.
41syn keyword wpsTodo contained TODO FIXME XXX
42syn cluster wpsCommentGroup contains=wpsTodo
43syn region wpsComment start="#" end="$" keepend contains=@wpsCommentGroup,wpsSpaceError,@Spell
44
45" Delimiters.
46syn match wpsPipeError "|"
47syn match wpsSep "|" contained
48syn match wpsSubline ";"
49syn match wpsPct "%" nextgroup=wpsSpecial,wpsCond,@wpsTag
50
51" Literals.
52syn match wpsSpecial "[%<|>;#]" contained
53
54" Conditional test.
55syn match wpsCond "?" nextgroup=@wpsTag
56syn match wpsElse "|" contained
57syn match wpsEndIfError ">"
58syn match wpsIfEndIf "[<>]" contained
59syn region wpsConditions matchgroup=wpsIfEndIf start="<" end=">" skip="%>" contains=wpsElse,wpsConditions,wpsPct,wpsSubline
60hi def link wpsCond wpsConditional
61hi def link wpsIfEndIf wpsConditional
62hi def link wpsElse wpsConditional
63
64" Tags not otherwise defined (overridden by known tags).
65syn match wpsUnknownTag "\a\+" contained
66syn cluster wpsTag add=wpsUnknownTag
67hi def link wpsUnknownTag wpsTagError
68
69
70" Known tags are defined individually, so that the user can classify
71" and colour them differently if desired.
72
73
74" %a -- Alignment tags.
75
76syn match wpsAlignError "a\a" contained
77syn cluster wpsTag add=wpsAlignError
78hi def link wpsAlignError wpsTagError
79
80syn match wpsAlignTag "a[lcr]" contained
81syn cluster wpsTag add=wpsAlignTag
82hi def link wpsAlignTag wpsTag
83
84
85" %b -- Power tags.
86
87syn match wpsPowerError "b\a" contained
88syn cluster wpsTag add=wpsPowerError
89hi def link wpsPowerError wpsTagError
90
91syn match wpsPowerTag "b[clpstv]" contained
92syn cluster wpsTag add=wpsPowerTag
93hi def link wpsPowerTag wpsTag
94
95
96" %c -- Clock tags.
97
98syn match wpsClockError "c\a" contained
99syn cluster wpsTag add=wpsClockError
100hi def link wpsClockError wpsTagError
101
102syn match wpsClockTag "c[abdefklmpuwyHIMPSY]" contained
103syn cluster wpsTag add=wpsClockTag
104hi def link wpsClockTag wpsTag
105
106
107" %C -- Album art tags.
108
109syn match wpsAlbumArtError "C\a" contained
110syn cluster wpsTag add=wpsAlbumArtError
111hi def link wpsAlbumArtError wpsTagError
112
113syn match wpsDefAlbumArtTag "Cl|"he=e-1 contained contains=wpsSep nextgroup=wpsDefAlbumArtX
114syn match wpsDefAlbumArtX "\d\+|"he=e-1 contained contains=wpsSep nextgroup=wpsDefAlbumArtY
115syn match wpsDefAlbumArtY "\d\+|"he=e-1 contained contains=wpsSep nextgroup=wpsDefAlbumArtW
116syn match wpsDefAlbumArtW "\([lcrs]\?\d\+\)\?|"he=e-1 contained contains=wpsSep nextgroup=wpsDefAlbumArtH
117syn match wpsDefAlbumArtH "\([tcbs]\?\d\+\)\?|"he=e-1 contained contains=wpsSep
118syn cluster wpsTag add=wpsDefAlbumArtTag
119hi def link wpsDefAlbumArtTag wpsAlbumArtTags
120hi def link wpsDefAlbumArtX wpsAlbumArtArgs
121hi def link wpsDefAlbumArtY wpsAlbumArtArgs
122hi def link wpsDefAlbumArtW wpsAlbumArtArgs
123hi def link wpsDefAlbumArtH wpsAlbumArtArgs
124hi def link wpsAlbumArtArgs wpsArgs
125
126syn match wpsRefAlbumArtTag "C\>" contained
127syn cluster wpsTag add=wpsRefAlbumArtTag
128hi def link wpsRefAlbumArtTag wpsAlbumArtTags
129
130hi def link wpsAlbumArtTags wpsTag
131
132
133" %d -- Directory tags.
134
135syn match wpsDirError "d\a" contained
136syn match wpsNextDirError "D\a" contained
137syn cluster wpsTag add=wpsDirError,wpsNextDirError
138hi def link wpsDirError wpsTagError
139hi def link wpsNextDirError wpsTagError
140
141syn match wpsDirTag "d[123]" contained
142syn match wpsNextDirTag "D[123]" contained
143syn cluster wpsTag add=wpsDirTag,wpsNextDirTag
144hi def link wpsDirTag wpsDirTags
145hi def link wpsNextDirTag wpsDirTags
146hi def link wpsDirTags wpsTag
147
148
149" %f -- File tags.
150
151syn match wpsFileError "f\a" contained
152syn match wpsNextFileError "F\a" contained
153syn cluster wpsTag add=wpsFileError,wpsNextFileError
154hi def link wpsFileError wpsTagError
155hi def link wpsNextFileError wpsTagError
156
157syn match wpsFileTag "f[bcfkmnpsv]" contained
158syn match wpsNextFileTag "F[bcfkmnpsv]" contained
159syn cluster wpsTag add=wpsFileTag,wpsNextFileTag
160hi def link wpsFileTag wpsFileTags
161hi def link wpsNextFileTag wpsFileTags
162hi def link wpsFileTags wpsTag
163
164
165" %i -- ID3 tags.
166
167syn match wpsID3Error "i\a" contained
168syn match wpsNextID3Error "I\a" contained
169syn cluster wpsTag add=wpsID3Error,wpsNextID3Error
170hi def link wpsID3Error wpsTagError
171hi def link wpsNextID3Error wpsTagError
172
173syn match wpsID3Tag "i[acdgntvykAGC]" contained
174syn match wpsNextID3Tag "I[acdgntvykAGC]" contained
175syn cluster wpsTag add=wpsID3Tag,wpsNextID3Tag
176hi def link wpsID3Tag wpsID3Tags
177hi def link wpsNextID3Tag wpsID3Tags
178hi def link wpsID3Tags wpsTag
179
180
181" %l -- LED tags.
182
183syn match wpsLEDError "l\a" contained
184syn cluster wpsTag add=wpsLEDError
185hi def link wpsLEDError wpsTagError
186
187syn match wpsLEDTag "l[h]" contained
188syn cluster wpsTag add=wpsLEDTag
189hi def link wpsLEDTag wpsTag
190
191
192" %m -- Mode tags.
193
194syn match wpsModeError "m\a" contained
195syn cluster wpsTag add=wpsModeError
196hi def link wpsModeError wpsTagError
197
198syn match wpsHoldTag "m[hr]" contained
199hi def link wpsHoldTag wpsTag
200syn cluster wpsTag add=wpsHoldTag
201
202syn match wpsPlaybackTag "mp" contained
203hi def link wpsPlaybackTag wpsTag
204syn cluster wpsTag add=wpsPlaybackTag
205
206syn match wpsRepeatTag "mm" contained
207hi def link wpsRepeatTag wpsTag
208syn cluster wpsTag add=wpsRepeatTag
209
210syn match wpsVolumeTag "mv" contained
211hi def link wpsVolumeTag wpsTag
212syn cluster wpsTag add=wpsVolumeTag
213
214
215" %p -- Playlist/Song tags.
216
217syn match wpsSongError "p\a" contained
218syn cluster wpsTag add=wpsSongError
219hi def link wpsSongError wpsTagError
220
221syn match wpsSongTag "p[cefmnprstvx]" contained
222syn cluster wpsTag add=wpsSongTag
223hi def link wpsSongTag wpsTag
224
225syn match wpsProgress6Tag "pb" contained
226syn cluster wpsTag add=wpsProgress6Tag
227hi def link wpsProgress6Tag wpsTag
228
229syn match wpsProgressTag "pb|" contained contains=wpsSep nextgroup=wpsProgressFile
230syn match wpsProgressFile "[^|]\+|"he=e-1 contained contains=wpsSep nextgroup=wpsProgressX
231syn match wpsProgressX "\(-\|\d\+\)|"he=e-1 contained contains=wpsSep nextgroup=wpsProgressY
232syn match wpsProgressY "\(-\|\d\+\)|"he=e-1 contained contains=wpsSep nextgroup=wpsProgressW
233syn match wpsProgressW "\(-\|\d\+\)|"he=e-1 contained contains=wpsSep nextgroup=wpsProgressH
234syn match wpsProgressH "\(-\|\d\+\)|"he=e-1 contained contains=wpsSep
235syn cluster wpsTag add=wpsProgressTag
236hi def link wpsProgressTag wpsTag
237hi def link wpsProgressFile wpsProgressArgs
238hi def link wpsProgressX wpsProgressArgs
239hi def link wpsProgressY wpsProgressArgs
240hi def link wpsProgressW wpsProgressArgs
241hi def link wpsProgressH wpsProgressArgs
242hi def link wpsProgressArgs wpsArgs
243
244
245" %r -- Runtime/Replaygain tags.
246
247syn match wpsRuntimeError "r\a" contained
248syn cluster wpsTag add=wpsRuntimeError
249hi def link wpsRuntimeError wpsTagError
250
251syn match wpsRuntimeTag "r[apr]" contained
252syn cluster wpsTag add=wpsRuntimeTag
253hi def link wpsRuntimeTag wpsTag
254
255syn match wpsReplaygainTag "rg" contained
256syn cluster wpsTag add=wpsReplaygainTag
257hi def link wpsReplaygainTag wpsTag
258
259
260" %s -- Scrolling tag.
261
262syn match wpsScrollError "s\a" contained
263syn cluster wpsTag add=wpsScrollError
264hi def link wpsScrollError wpsTagError
265
266syn match wpsScrollTag "s\>" contained
267syn cluster wpsTag add=wpsScrollTag
268hi def link wpsScrollTag wpsTag
269
270
271" %S -- Settings tags.
272
273syn match wpsSettingError "S\a" contained
274syn cluster wpsTag add=wpsSettingError
275hi def link wpsSettingError wpsTagError
276
277syn match wpsSettingTag "St|"he=e-1 contained contains=wpsSep nextgroup=wpsSettingName
278syn match wpsSettingName "[^|]\+|"he=e-1 contained contains=wpsSep
279syn cluster wpsTag add=wpsSettingTag
280hi def link wpsSettingTag wpsTag
281hi def link wpsSettingName wpsSettingArgs
282hi def link wpsSettingArgs wpsArgs
283
284syn match wpsPitchTag "Sp\>" contained
285syn cluster wpsTag add=wpsPitchTag
286hi def link wpsPitchTag wpsTag
287
288syn match wpsTranslatedTag "Sx|"he=e-1 contained contains=wpsSep nextgroup=wpsTranslatedText
289syn match wpsTranslatedText "[^|]\+|"he=e-1 contained contains=wpsSep
290syn cluster wpsTag add=wpsTranslatedTag
291hi def link wpsTranslatedTag wpsTag
292hi def link wpsTranslatedText wpsTranslatedArgs
293hi def link wpsTranslatedArgs wpsArgs
294
295syn match wpsLangIsRtlTag "Sr" contained
296hi def link wpsLangIsRtlTag wpsArgs
297syn cluster wpsTag add=wpsLangIsRTLTag
298
299" %t -- Alternation tags.
300
301syn match wpsAlternateError "t" contained
302syn cluster wpsTag add=wpsAlternateError
303hi def link wpsAlternateError wpsTagError
304
305syn match wpsAlternateTag "t\d"me=e-1 contained contains=wpsSep nextgroup=wpsAlternateTime
306syn match wpsAlternateTime "\d\+\(\.\d+\)\?" contained
307syn cluster wpsTag add=wpsAlternateTag
308hi def link wpsAlternateTag wpsTag
309hi def link wpsAlternateTime wpsAlternateArgs
310hi def link wpsAlternateArgs wpsArgs
311
312
313" %V -- Viewport tags.
314
315syn match wpsViewportError "V\a" contained
316syn cluster wpsTag add=wpsViewportError
317hi def link wpsViewportError wpsTagError
318
319syn match wpsViewportTag "V|"he=e-1 contained contains=wpsSep nextgroup=wpsViewportX
320syn cluster wpsTag add=wpsViewportTag
321hi def link wpsViewportTag wpsViewportTags
322
323syn match wpsDefViewportTag "Vl|"he=e-1 contained contains=wpsSep nextgroup=wpsDefViewportId
324syn match wpsDefViewportId "\a|"he=e-1 contained contains=wpsSep nextgroup=wpsViewportX
325syn match wpsViewportX "\d\+|"he=e-1 contained contains=wpsSep nextgroup=wpsViewportY
326syn match wpsViewportY "\d\+|"he=e-1 contained contains=wpsSep nextgroup=wpsViewportW
327syn match wpsViewportW "\(-\|\d\+\)|"he=e-1 contained contains=wpsSep nextgroup=wpsViewportH
328syn match wpsViewportH "\(-\|\d\+\)|"he=e-1 contained contains=wpsSep nextgroup=wpsViewportFont
329syn match wpsViewportFont "[-01]|"he=e-1 contained contains=wpsSep nextgroup=wpsViewportShade,wpsViewportFG
330syn match wpsViewportShade "[-0-3]|"he=e-1 contained contains=wpsSep
331syn match wpsViewportFG "\(-\|\x\{6}\)|"he=e-1 contained contains=wpsSep nextgroup=wpsViewportBG
332syn match wpsViewportBG "\(-\|\x\{6}\)|"he=e-1 contained contains=wpsSep
333syn cluster wpsTag add=wpsDefViewportTag
334hi def link wpsDefViewportId wpsDefId
335hi def link wpsDefViewportTag wpsViewportTags
336hi def link wpsViewportX wpsViewportArgs
337hi def link wpsViewportY wpsViewportArgs
338hi def link wpsViewportW wpsViewportArgs
339hi def link wpsViewportH wpsViewportArgs
340hi def link wpsViewportFont wpsViewportArgs
341hi def link wpsViewportShade wpsViewportArgs
342hi def link wpsViewportFG wpsViewportArgs
343hi def link wpsViewportBG wpsViewportArgs
344hi def link wpsViewportArgs wpsArgs
345
346syn match wpsRefViewportTag "Vd" nextgroup=wpsRefViewportId
347syn match wpsRefViewportId "\a" contained
348syn cluster wpsTag add=wpsRefViewportTag
349hi def link wpsRefViewportTag wpsViewportTags
350hi def link wpsRefViewportId wpsRefId
351
352hi def link wpsViewportTags wpsTag
353
354
355" %w -- Status bar tags.
356
357syn match wpsStatusBarError "w\a" contained
358syn cluster wpsTag add=wpsStatusBarError
359hi def link wpsStatusBarError wpsTagError
360
361syn match wpsStatusBarTag "w[ed]" contained
362syn cluster wpsTag add=wpsStatusBarTag
363hi def link wpsStatusBarTag wpsTag
364
365
366" %x -- Image/Crossfade tags.
367
368syn match wpsImageError "x\a" contained
369syn cluster wpsTag add=wpsImageError
370hi def link wpsImageError wpsTagError
371
372syn match wpsLoadImageTag "xl|"he=e-1 contained contains=wpsSep nextgroup=wpsLoadImageId
373syn match wpsLoadImageId "\a|"he=e-1 contained contains=wpsSep nextgroup=wpsLoadImageFile
374syn match wpsLoadImageFile "[^|]\+|"he=e-1 contained contains=wpsSep nextgroup=wpsLoadImageX
375syn match wpsLoadImageX "\d\+|"he=e-1 contained contains=wpsSep nextgroup=wpsLoadImageY
376syn match wpsLoadImageY "\d\+|"he=e-1 contained contains=wpsSep
377syn cluster wpsTag add=wpsLoadImageTag
378hi def link wpsLoadImageTag wpsImageTags
379hi def link wpsLoadImageFile wpsImageArgs
380hi def link wpsLoadImageX wpsImageArgs
381hi def link wpsLoadImageY wpsImageArgs
382
383syn match wpsDefImageTag "xl|"he=e-1 contained contains=wpsSep nextgroup=wpsDefImageId
384syn match wpsDefImageId "\a|"he=e-1 contained contains=wpsSep nextgroup=wpsDefImageFile
385syn match wpsDefImageFile "[^|]\+|"he=e-1 contained contains=wpsSep nextgroup=wpsDefImageX
386syn match wpsDefImageX "\d\+|"he=e-1 contained contains=wpsSep nextgroup=wpsDefImageY
387syn match wpsDefImageY "\d\+|"he=e-1 contained contains=wpsSep nextgroup=wpsDefImageCount
388syn match wpsDefImageCount "\d\+|"he=e-1 contained contains=wpsSep
389syn cluster wpsTag add=wpsDefImageTag
390hi def link wpsDefImageTag wpsImageTags
391hi def link wpsDefImageId wpsDefId
392hi def link wpsDefImageFile wpsImageArgs
393hi def link wpsDefImageX wpsImageArgs
394hi def link wpsDefImageY wpsImageArgs
395hi def link wpsDefImageCount wpsImageArgs
396
397syn match wpsRefImageTag "xd" nextgroup=wpsRefImageId
398syn match wpsRefImageId "\a" contained nextgroup=wpsRefImageBitmap
399syn match wpsRefImageBitmap "\a" contained
400syn cluster wpsTag add=wpsRefImageTag
401hi def link wpsRefImageTag wpsImageTags
402hi def link wpsRefImageId wpsRefId
403hi def link wpsRefImageBitmap wpsRefId
404
405hi def link wpsImageTags wpsTag
406hi def link wpsImageArgs wpsArgs
407
408
409syn match wpsCrossfadeTag "xf" contained
410syn cluster wpsTag add=wpsCrossfadeTag
411hi def link wpsCrossfadeTag wpsTag
412
413
414" %X -- Backdrop tag.
415
416syn match wpsBackdropError "X\a" contained
417syn cluster wpsTag add=wpsBackdropError
418hi def link wpsBackdropError wpsTagError
419
420syn match wpsBackdropTag "X|" contained contains=wpsSep nextgroup=wpsBackdropFile
421syn match wpsBackdropFile "[^|]\+|"he=e-1 contained contains=wpsSep
422syn cluster wpsTag add=wpsBackdropTag
423hi def link wpsBackdropTag wpsTag
424hi def link wpsBackdropFile wpsBackdropArgs
425hi def link wpsBackdropArgs wpsArgs
426
427
428
429hi def link wpsDefId wpsIdentifier
430hi def link wpsRefId wpsIdentifier
431
432hi def link wpsPct wpsOperator
433hi def link wpsSep wpsOperator
434hi def link wpsSubline wpsOperator
435
436hi def link wpsPipeError wpsError
437hi def link wpsEndIfError wpsError
438hi def link wpsTagError wpsError
439hi def link wpsSpaceError wpsError
440
441hi def link wpsError Error
442hi def link wpsComment Comment
443hi def link wpsTodo Todo
444hi def link wpsSpecial SpecialChar
445hi def link wpsTag Statement
446hi def link wpsArgs Constant
447hi def link wpsOperator Operator
448hi def link wpsConditional Conditional
449hi def link wpsIdentifier Identifier
450
451let b:current_syntax = "wps"
452
453" vim:ts=4 et sts=4 sw=4: