1" Vim syntax file
2" Language:         LiteStep RC file
3" Maintainer:       Nikolai Weibull <now@bitwi.se>
4" Latest Revision:  2007-02-22
5
6if exists("b:current_syntax")
7  finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn keyword litestepTodo
14      \ contained
15      \ TODO FIXME XXX NOTE
16
17syn match   litestepComment
18      \ contained display contains=litestepTodo,@Spell
19      \ ';.*$'
20
21syn case ignore
22
23syn cluster litestepBeginnings
24      \ contains=
25      \   litestepComment,
26      \   litestepPreProc,
27      \   litestepMultiCommandStart,
28      \   litestepBangCommandStart,
29      \   litestepGenericDirective
30
31syn match   litestepGenericDirective
32      \ contained display
33      \ '\<\h\w\+\>'
34
35syn match   litestepBeginning
36      \ nextgroup=@litestepBeginnings skipwhite
37      \ '^'
38
39syn keyword litestepPreProc
40      \ contained
41      \ Include
42      \ If
43      \ ElseIf
44      \ Else
45      \ EndIf
46
47syn cluster litestepMultiCommands
48      \ contains=
49      \   litestepMultiCommand
50
51syn match   litestepMultiCommandStart
52      \ nextgroup=@litestepMultiCommands
53      \ '\*'
54
55syn match   litestepMultiCommand
56      \ contained display
57      \ '\<\h\w\+\>'
58
59syn cluster litestepVariables
60      \ contains=
61      \   litestepBuiltinFolderVariable,
62      \   litestepBuiltinConditionalVariable,
63      \   litestepBuiltinResourceVariable,
64      \   litestepBuiltinGUIDFolderMappingVariable,
65      \   litestepVariable
66
67syn region litestepVariableExpansion
68      \ display oneline transparent
69      \ contains=
70      \   @litestepVariables,
71      \   litestepNumber,
72      \   litestepMathOperator
73      \ matchgroup=litestepVariableExpansion
74      \ start='\$'
75      \ end='\$'
76
77syn match litestepNumber
78      \ display
79      \ '\<\d\+\>'
80
81syn region litestepString
82      \ display oneline contains=litestepVariableExpansion
83      \ start=+"+ end=+"+
84
85" TODO: unsure about this one.
86syn region litestepSubValue
87      \ display oneline contains=litestepVariableExpansion
88      \ start=+'+ end=+'+
89
90syn keyword litestepBoolean
91      \ true
92      \ false
93
94"syn keyword litestepLine
95"      \ ?
96
97"syn match   litestepColor
98"      \ display
99"      \ '\<\x\+\>'
100
101syn match   litestepRelationalOperator
102      \ display
103      \ '=\|<[>=]\=\|>=\='
104
105syn keyword litestepLogicalOperator
106      \ and
107      \ or
108      \ not
109
110syn match   litestepMathOperator
111      \ contained display
112      \ '[+*/-]'
113
114syn keyword litestepBuiltinDirective
115      \ LoadModule
116      \ LSNoStartup
117      \ LSAutoHideModules
118      \ LSNoShellWarning
119      \ LSSetAsShell
120      \ LSUseSystemDDE
121      \ LSDisableTrayService
122      \ LSImageFolder
123      \ ThemeAuthor
124      \ ThemeName
125
126syn keyword litestepDeprecatedBuiltinDirective
127      \ LSLogLevel
128      \ LSLogFile
129
130syn match   litestepVariable
131      \ contained display
132      \ '\<\h\w\+\>'
133
134syn keyword litestepBuiltinFolderVariable
135      \ contained
136      \ AdminToolsDir
137      \ CommonAdminToolsDir
138      \ CommonDesktopDir
139      \ CommonFavorites
140      \ CommonPrograms
141      \ CommonStartMenu
142      \ CommonStartup
143      \ Cookies
144      \ Desktop
145      \ DesktopDir
146      \ DocumentsDir
147      \ Favorites
148      \ Fonts
149      \ History
150      \ Internet
151      \ InternetCache
152      \ LitestepDir
153      \ Nethood
154      \ Printhood
155      \ Programs
156      \ QuickLaunch
157      \ Recent
158      \ Sendto
159      \ Startmenu
160      \ Startup
161      \ Templates
162      \ WinDir
163      \ LitestepDir
164
165syn keyword litestepBuiltinConditionalVariable
166      \ contained
167      \ Win2000
168      \ Win95
169      \ Win98
170      \ Win9X
171      \ WinME
172      \ WinNT
173      \ WinNT4
174      \ WinXP
175
176syn keyword litestepBuiltinResourceVariable
177      \ contained
178      \ CompileDate
179      \ ResolutionX
180      \ ResolutionY
181      \ UserName
182
183syn keyword litestepBuiltinGUIDFolderMappingVariable
184      \ contained
185      \ AdminTools
186      \ BitBucket
187      \ Controls
188      \ Dialup
189      \ Documents
190      \ Drives
191      \ Network
192      \ NetworkAndDialup
193      \ Printers
194      \ Scheduled
195
196syn cluster litestepBangs
197      \ contains=
198      \   litestepBuiltinBang,
199      \   litestepBang
200
201syn match   litestepBangStart
202      \ nextgroup=@litestepBangs
203      \ '!'
204
205syn match   litestepBang
206      \ contained display
207      \ '\<\h\w\+\>'
208
209syn keyword litestepBuiltinBang
210      \ contained
211      \ About
212      \ Alert
213      \ CascadeWindows
214      \ Confirm
215      \ Execute
216      \ Gather
217      \ HideModules
218      \ LogOff
219      \ MinimizeWindows
220      \ None
221      \ Quit
222      \ Recycle
223      \ Refresh
224      \ Reload
225      \ ReloadModule
226      \ RestoreWindows
227      \ Run
228      \ ShowModules
229      \ Shutdown
230      \ Switchuser
231      \ TileWindowsH
232      \ TileWindowsV
233      \ ToggleModules
234      \ UnloadModule
235
236hi def link litestepTodo                              Todo
237hi def link litestepComment                           Comment
238hi def link litestepDirective                         Keyword
239hi def link litestepGenericDirective                  litestepDirective
240hi def link litestepPreProc                           PreProc
241hi def link litestepMultiCommandStart                 litestepPreProc
242hi def link litestepMultiCommand                      litestepDirective
243hi def link litestepDelimiter                         Delimiter
244hi def link litestepVariableExpansion                 litestepDelimiter
245hi def link litestepNumber                            Number
246hi def link litestepString                            String
247hi def link litestepSubValue                          litestepString
248hi def link litestepBoolean                           Boolean
249"hi def link litestepLine 
250"hi def link litestepColor                             Type
251hi def link litestepOperator                          Operator
252hi def link litestepRelationalOperator                litestepOperator
253hi def link litestepLogicalOperator                   litestepOperator
254hi def link litestepMathOperator                      litestepOperator
255hi def link litestepBuiltinDirective                  litestepDirective
256hi def link litestepDeprecatedBuiltinDirective        Error
257hi def link litestepVariable                          Identifier
258hi def link litestepBuiltinFolderVariable             Identifier
259hi def link litestepBuiltinConditionalVariable        Identifier
260hi def link litestepBuiltinResourceVariable           Identifier
261hi def link litestepBuiltinGUIDFolderMappingVariable  Identifier
262hi def link litestepBangStart                         litestepPreProc
263hi def link litestepBang                              litestepDirective
264hi def link litestepBuiltinBang                       litestepBang
265
266let b:current_syntax = "litestep"
267
268let &cpo = s:cpo_save
269unlet s:cpo_save
270