blob: d24e08a2a42e52199e5316e315c6b5cf589a4c63 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar42eeac32005-06-29 22:40:58 +00002" Language: eterm(1) configuration file
3" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
4" Latest Revision: 2005-06-29
Bram Moolenaar071d4272004-06-13 20:20:40 +00005
Bram Moolenaar42eeac32005-06-29 22:40:58 +00006if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00007 finish
8endif
9
Bram Moolenaar42eeac32005-06-29 22:40:58 +000010let s:cpo_save = &cpo
11set cpo&vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000012
Bram Moolenaar42eeac32005-06-29 22:40:58 +000013syn keyword etermTodo contained TODO FIXME XXX NOTE
Bram Moolenaar071d4272004-06-13 20:20:40 +000014
Bram Moolenaar42eeac32005-06-29 22:40:58 +000015syn region etermComment matchgroup=etermComment start='^#' end='$'
16 \ contains=etermTodo,@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000017
Bram Moolenaar42eeac32005-06-29 22:40:58 +000018syn match etermMagic display display '^<Eterm-[0-9.]\+>$'
Bram Moolenaar071d4272004-06-13 20:20:40 +000019
Bram Moolenaar42eeac32005-06-29 22:40:58 +000020syn match etermNumber contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
Bram Moolenaar071d4272004-06-13 20:20:40 +000021
Bram Moolenaar42eeac32005-06-29 22:40:58 +000022syn region etermString contained display oneline start=+"+
23 \ skip=+\\"+ end=+"+
Bram Moolenaar071d4272004-06-13 20:20:40 +000024
Bram Moolenaar42eeac32005-06-29 22:40:58 +000025syn keyword etermBoolean contained on off true false yes no
Bram Moolenaar071d4272004-06-13 20:20:40 +000026
Bram Moolenaar42eeac32005-06-29 22:40:58 +000027syn keyword etermPreProc contained appname exec get put random version
28 \ include preproc
Bram Moolenaar071d4272004-06-13 20:20:40 +000029
Bram Moolenaar42eeac32005-06-29 22:40:58 +000030syn keyword etermFunctions contained copy exit kill nop paste save
31 \ scroll search spawn
Bram Moolenaar071d4272004-06-13 20:20:40 +000032
Bram Moolenaar42eeac32005-06-29 22:40:58 +000033syn cluster etermGeneral contains=etermComment,etermFunction,
34 \ etermPreProc
Bram Moolenaar071d4272004-06-13 20:20:40 +000035
Bram Moolenaar42eeac32005-06-29 22:40:58 +000036syn keyword etermKeyMod contained ctrl shift lock mod1 mod2 mod3 mod4
37 \ mod5 alt meta anymod
38syn keyword etermKeyMod contained button1 button2 button3 button4
39 \ button5
Bram Moolenaar071d4272004-06-13 20:20:40 +000040
Bram Moolenaar42eeac32005-06-29 22:40:58 +000041syn keyword etermColorOptions contained video nextgroup=etermVideoOptions
42 \ skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000043
Bram Moolenaar42eeac32005-06-29 22:40:58 +000044syn keyword etermVideoType contained normal reverse
Bram Moolenaar071d4272004-06-13 20:20:40 +000045
Bram Moolenaar42eeac32005-06-29 22:40:58 +000046syn keyword etermColorOptions contained foreground background cursor
47 \ cursor_text pointer
48 \ nextgroup=etermColorType skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000049
Bram Moolenaar42eeac32005-06-29 22:40:58 +000050syn keyword etermColorType contained bd ul
51syn match etermColorType contained display '\<\%(\d\|1[0-5]\)'
Bram Moolenaar071d4272004-06-13 20:20:40 +000052
Bram Moolenaar42eeac32005-06-29 22:40:58 +000053syn keyword etermColorOptions contained color
54 \ nextgroup=etermColorNumber skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000055
Bram Moolenaar42eeac32005-06-29 22:40:58 +000056syn keyword etermColorNumber contained bd ul nextgroup=etermColorSpec
57 \ skipwhite
58syn match etermColorNumber contained display '\<\%(\d\|1[0-5]\)'
59 \ nextgroup=etermColorSpec skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000060
Bram Moolenaar42eeac32005-06-29 22:40:58 +000061syn match etermColorSpec contained display '\S\+'
Bram Moolenaar071d4272004-06-13 20:20:40 +000062
Bram Moolenaar42eeac32005-06-29 22:40:58 +000063syn region etermColorContext fold transparent matchgroup=etermContext
64 \ start='^\s*begin\s\+color'
65 \ end='^\s*end\>'
66 \ contains=@etermGeneral,etermColorOptions
Bram Moolenaar071d4272004-06-13 20:20:40 +000067
Bram Moolenaar42eeac32005-06-29 22:40:58 +000068syn keyword etermAttrOptions contained geometry nextgroup=etermGeometry
69 \ skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000070
Bram Moolenaar42eeac32005-06-29 22:40:58 +000071syn match etermGeometry contained display '\d\+x\d++\d\++\d\+'
Bram Moolenaar071d4272004-06-13 20:20:40 +000072
Bram Moolenaar42eeac32005-06-29 22:40:58 +000073syn keyword etermAttrOptions contained scrollbar_type
74 \ nextgroup=etermScrollbarType skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000075
Bram Moolenaar42eeac32005-06-29 22:40:58 +000076syn keyword etermScrollbarType contained motif xterm next
Bram Moolenaar071d4272004-06-13 20:20:40 +000077
Bram Moolenaar42eeac32005-06-29 22:40:58 +000078syn keyword etermAttrOptions contained font nextgroup=etermFontType
79 \ skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000080
Bram Moolenaar42eeac32005-06-29 22:40:58 +000081syn keyword etermFontType contained bold nextgroup=etermFont skipwhite
82syn match etermFontType contained display '[0-5]' nextgroup=etermFont
83 \ skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000084
Bram Moolenaar42eeac32005-06-29 22:40:58 +000085syn match etermFont contained display '\S\+'
Bram Moolenaar071d4272004-06-13 20:20:40 +000086
Bram Moolenaar42eeac32005-06-29 22:40:58 +000087syn keyword etermFontType contained default nextgroup=etermNumber
88 \ skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000089
Bram Moolenaar42eeac32005-06-29 22:40:58 +000090syn keyword etermFontType contained proportional nextgroup=etermBoolean
91 \ skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000092
Bram Moolenaar42eeac32005-06-29 22:40:58 +000093syn keyword etermFontType contained fx nextgroup=etermString skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000094
Bram Moolenaar42eeac32005-06-29 22:40:58 +000095syn keyword etermAttrOptions contained title name iconname
96 \ nextgroup=etermString skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000097
Bram Moolenaar42eeac32005-06-29 22:40:58 +000098syn keyword etermAttrOptions contained scrollbar_width desktop
99 \ nextgroup=etermNumber skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +0000100
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000101syn region etermAttrContext fold transparent matchgroup=etermContext
102 \ start='^\s*begin\s\+attributes\'
103 \ end='^\s*end\>'
104 \ contains=@etermGeneral,etermAttrOptions
Bram Moolenaar071d4272004-06-13 20:20:40 +0000105
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000106syn keyword etermIClassOptions contained icon path nextgroup=etermString
107 \ skipwhite
108syn keyword etermIClassOptions contained cache nextgroup=etermNumber
109 \ skipwhite
110syn keyword etermIClassOptions contained anim nextgroup=etermNumber
111 \ skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +0000112
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000113syn region etermIClassContext fold transparent matchgroup=etermContext
114 \ start='^\s*begin\s\+imageclasses'
115 \ end='^\s*end\>'
116 \ contains=@etermGeneral,etermImageContext,
117 \ etermIClassOptions
Bram Moolenaar071d4272004-06-13 20:20:40 +0000118
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000119syn keyword etermImageOptions contained type nextgroup=etermImageType
120 \ skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +0000121
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000122syn keyword etermImageTypes contained background trough anchor up_arrow
123 \ left_arrow right_arrow menu menuitem
124 \ submenu button buttonbar down_arrow
Bram Moolenaar071d4272004-06-13 20:20:40 +0000125
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000126syn keyword etermImageOptions contained mode nextgroup=etermImageModes
127 \ skipwhite
128
129syn keyword etermImageModes contained image trans viewport auto solid
130 \ nextgroup=etermImageModesAllow skipwhite
131syn keyword etermImageModesAllow contained allow nextgroup=etermImageModesR
132 \ skipwhite
133syn keyword etermImageModesR contained image trans viewport auto solid
134
135syn keyword etermImageOptions contained state nextgroup=etermImageState
136 \ skipwhite
137
138syn keyword etermImageState contained normal selected clicked disabled
139
140syn keyword etermImageOptions contained color nextgroup=etermImageColorFG
141 \ skipwhite
142
143syn keyword etermImageColorFG contained '\S\+' nextgroup=etermImageColorBG
144 \ skipwhite
145
146syn keyword etermImageColorBG contained '\S\+'
147
148syn keyword etermImageOptions contained file nextgroup=etermString
149 \ skipwhite
150
151syn keyword etermImageOptions contained geom nextgroup=etermImageGeom
152 \ skipwhite
153
154syn match etermImageGeom contained display
155 \ '\s\+\%(\d\+x\d\++\d\++\d\+\)\=:\%(\%(tie\|scale\|hscale\|vscale\|propscale\)d\=\)\='
156
157syn keyword etermImageOptions contained cmod colormod
158 \ nextgroup=etermImageCmod skipwhite
159
160syn keyword etermImageCmod contained image red green blue
161 \ nextgroup=etermImageBrightness skipwhite
162
163syn match etermImageBrightness contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
164 \ nextgroup=etermImageContrast skipwhite
165
166syn match etermImageContrast contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
167 \ nextgroup=etermImageGamma skipwhite
168
169syn match etermImageGamma contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
170 \ nextgroup=etermImageGamma skipwhite
171
172syn region etermImageOptions contained matchgroup=etermImageOptions
173 \ start='border\|bevel\%(\s\+\%(up\|down\)\)\|padding'
174 \ end='$' contains=etermNumber
175
176syn region etermImageContext contained fold transparent
177 \ matchgroup=etermContext
178 \ start='^\s*begin\s\+image'
179 \ end='^\s*end\>'
180 \ contains=@etermGeneral,etermImageOptions
181
182syn keyword etermMenuItemOptions contained action
183 \ nextgroup=etermMenuItemAction skipwhite
184
185syn keyword etermMenuItemAction contained string echo submenu script
186 \ nextgroup=etermString skipwhite
187
188syn keyword etermMenuItemAction contained separator
189
190syn keyword etermMenuItemOptions contained text rtext nextgroup=etermString
191 \ skipwhite
192
193syn region etermMenuItemContext contained fold transparent
194 \ matchgroup=etermContext
195 \ start='^\s*begin\s\+menuitem'
196 \ end='^\s*end\>'
197 \ contains=@etermGeneral,etermMenuItemOptions
198
199syn keyword etermMenuOptions contained title nextgroup=etermString
200 \ skipwhite
201
202syn keyword etermMenuOptions contained font_name nextgroup=etermFont
203 \ skipwhite
204
205syn match etermMenuOptions contained display '\<sep\>\|-'
206
207syn region etermMenuContext fold transparent matchgroup=etermContext
208 \ start='^\s*begin\s\+menu'
209 \ end='^\s*end\>'
210 \ contains=@etermGeneral,etermMenuOptions,
211 \ etermMenuItemContext
212
213syn keyword etermBind contained bind nextgroup=etermBindMods
214 \ skipwhite
215
216syn keyword etermBindMods contained ctrl shift lock mod1 mod2 mod3 mod4
217 \ mod5 alt meta anymod
218 \ nextgroup=etermBindMods skipwhite
219
220syn keyword etermBindTo contained to nextgroup=etermBindType
221 \ skipwhite
222
223syn keyword etermBindType contained string echo menu script
224 \ nextgroup=etermBindParam skipwhite
225
226syn match etermBindParam contained display '\S\+'
227
228syn region etermActionsContext fold transparent matchgroup=etermContext
229 \ start='^\s*begin\s\+actions'
230 \ end='^\s*end\>'
231 \ contains=@etermGeneral,etermActionsOptions
232
233syn keyword etermButtonOptions contained font nextgroup=etermFont skipwhite
234syn keyword etermButtonOptions contained visible nextgroup=etermBoolean
235 \ skipwhite
236syn keyword etermButtonOptions contained dock nextgroup=etermDockOption
237 \ skipwhite
238
239syn keyword etermDockOption contained top bottom no
240
241syn keyword etermButton contained button nextgroup=etermButtonText
242 \ skipwhite
243
244syn region etermButtonText contained display oneline start=+"+
245 \ skip=+\\"+ end=+"+
246 \ nextgroup=etermButtonIcon skipwhite
247
248syn keyword etermButtonIcon contained icon nextgroup=etermButtonIconFile
249 \ skipwhite
250
251syn keyword etermButtonIconFile contained '\S\+' nextgroup=etermButtonAction
252 \ skipwhite
253
254syn keyword etermButtonAction contained action nextgroup=etermBindType
255 \ skipwhite
256
257syn region etermButtonContext fold transparent matchgroup=etermContext
258 \ start='^\s*begin\s\+button_bar'
259 \ end='^\s*end\>'
260 \ contains=@etermGeneral,etermButtonOptions
261
262syn keyword etermMultiOptions contained encoding nextgroup=etermEncoding
263 \ skipwhite
264
265syn keyword etermEncoding eucj sjis euckr big5 gb
266syn match etermEncoding display 'iso-10646'
267
268syn keyword etermMultiOptions contained font nextgroup=etermFontType
269 \ skipwhite
270
271syn region etermMultiContext fold transparent matchgroup=etermContext
272 \ start='^\s*begin\s\+multichar'
273 \ end="^\s*end\>'
274 \ contains=@etermGeneral,etermMultiOptions
275
276syn keyword etermXimOptions contained input_method
277 \ nextgroup=etermInputMethod skipwhite
278
279syn match etermInputMethod contained display '\S+'
280
281syn keyword etermXimOptions contained preedit_type
282 \ nextgroup=etermPreeditType skipwhite
283
284syn keyword etermPreeditType contained OverTheSpot OffTheSpot Root
285
286syn region etermXimContext fold transparent matchgroup=etermContext
287 \ start='^\s*begin\s\+xim'
288 \ end="^\s*end\>'
289 \ contains=@etermGeneral,etermXimOptions
290
291syn keyword etermTogOptions contained map_alert visual_bell login_shell
292 \ scrollbar utmp_logging meta8 iconic
293 \ no_input home_on_output home_on_input
294 \ scrollbar_floating scrollbar_right
295 \ scrollbar_popup borderless double_buffer
296 \ no_cursor pause xterm_select select_line
297 \ select_trailing_spaces report_as_keysyms
298 \ itrans immotile_trans buttonbar
299 \ resize_gravity nextgroup=etermBoolean
300 \ skipwhite
301
302syn region etermTogContext fold transparent matchgroup=etermContext
303 \ start='^\s*begin\s\+toggles'
304 \ end='^\s*end\>'
305 \ contains=@etermGeneral,etermTogOptions
306
307syn keyword etermKeyboardOptions contained smallfont_key bigfont_key keysym
308 \ nextgroup=etermKeysym skipwhite
309
310syn keyword etermKeysym contained '\S\+' nextgroup=etermString
311 \ skipwhite
312
313syn keyword etermKeyboardOptions contained meta_mod alt_mod numlock_mod
314 \ nextgroup=etermNumber skipwhite
315
316syn keyword etermKeyboardOptions contained greek app_keypad app_cursor
317 \ nextgroup=etermBoolean skipwhite
318
319syn region etermKeyboardContext fold transparent matchgroup=etermContext
320 \ start='^\s*begin\s\+keyboard'
321 \ end='^\s*end\>'
322 \ contains=@etermGeneral,etermKeyboardOptions
323
324syn keyword etermMiscOptions contained print_pipe cut_chars finished_title
325 \ finished_text term_name exec
326 \ nextgroup=etermString skipwhite
327
328syn keyword etermMiscOptions contained save_lines min_anchor_size
329 \ border_width line_space
330
331syn region etermMiscContext fold transparent matchgroup=etermContext
332 \ start='^\s*begin\s\+misc'
333 \ end='^\s*end\>'
334 \ contains=@etermGeneral,etermMiscOptions
335
336syn keyword etermEScreenOptions contained url nextgroup=etermURL skipwhite
337
338syn match etermURL contained display
339 \ '\<\%(screen\|twin\)://\%([^@:/]\+\%(@[^:/]\+\%(:[^/]\+\)\=\)\=\)\=/\S\+'
340
341syn keyword etermEScreenOptions contained firewall
342
343syn keyword etermEScreenOptions contained delay nextgroup=etermNumber
344 \ skipwhite
345
346syn keyword etermEScreenOptions contained bbar_font nextgroup=etermFont
347 \ skipwhite
348
349syn keyword etermEScreenOptions contained bbar_dock nextgroup=etermDockOption
350 \ skipwhite
351
352syn region etermEScreenContext fold transparent matchgroup=etermContext
353 \ start='^\s*begin\s\+escreen'
354 \ end='^\s*end\>'
355 \ contains=@etermGeneral,etermEScreenOptions
Bram Moolenaar071d4272004-06-13 20:20:40 +0000356
357if exists("eterm_minlines")
358 let b:eterm_minlines = eterm_minlines
359else
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000360 let b:eterm_minlines = 50
Bram Moolenaar071d4272004-06-13 20:20:40 +0000361endif
362exec "syn sync minlines=" . b:eterm_minlines
363
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000364hi def link etermTodo Todo
365hi def link etermComment Comment
366hi def link etermMagic PreProc
367hi def link etermNumber Number
368hi def link etermString String
369hi def link etermBoolean Boolean
370hi def link etermPreProc PreProc
371hi def link etermFunctions Function
372hi def link etermKeyMod Constant
373hi def link etermOption Keyword
374hi def link etermColorOptions etermOption
375hi def link etermColor String
376hi def link etermVideoType Type
377hi def link etermColorType Type
378hi def link etermColorNumber Number
379hi def link etermColorSpec etermColor
380hi def link etermContext Keyword
381hi def link etermAttrOptions etermOption
382hi def link etermGeometry String
383hi def link etermScrollbarType Type
384hi def link etermFontType Type
385hi def link etermIClassOptions etermOption
386hi def link etermImageOptions etermOption
387hi def link etermImageTypes Type
388hi def link etermImageModes Type
389hi def link etermImageModesAllow Keyword
390hi def link etermImageModesR Type
391hi def link etermImageState Keyword
392hi def link etermImageColorFG etermColor
393hi def link etermImageColorBG etermColor
394hi def link etermImageGeom String
395hi def link etermImageCmod etermOption
396hi def link etermImageBrightness Number
397hi def link etermImageContrast Number
398hi def link etermImageGamma Number
399hi def link etermMenuItemOptions etermOption
400hi def link etermMenuItemAction Keyword
401hi def link etermMenuOptions etermOption
402hi def link etermBind Keyword
403hi def link etermBindMods Identifier
404hi def link etermBindTo Keyword
405hi def link etermBindType Type
406hi def link etermBindParam String
407hi def link etermButtonOptions etermOption
408hi def link etermDockOption etermOption
409hi def link etermButtonText String
410hi def link etermButtonIcon String
411hi def link etermButtonIconFile String
412hi def link etermButtonAction Keyword
413hi def link etermMultiOptions etermOption
414hi def link etermEncoding Identifier
415hi def link etermXimOptions etermOption
416hi def link etermInputMethod Identifier
417hi def link etermPreeditType Type
418hi def link etermTogOptions etermOption
419hi def link etermKeyboardOptions etermOption
420hi def link etermKeysym Constant
421hi def link etermMiscOptions etermOption
422hi def link etermEScreenOptions etermOption
423hi def link etermURL Identifier
Bram Moolenaar071d4272004-06-13 20:20:40 +0000424
425let b:current_syntax = "eterm"
426
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000427let &cpo = s:cpo_save
428unlet s:cpo_save