blob: 9b43cb255fea08ad5132681c293befaae33e50a0 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar214641f2017-03-05 17:04:09 +01002" Language: eterm(1) configuration file
3" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
4" Latest Revision: 2006-04-21
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 Moolenaar0dc065e2005-07-04 22:49:24 +000015syn region etermComment display oneline start='^#' end='$'
Bram Moolenaar42eeac32005-06-29 22:40:58 +000016 \ contains=etermTodo,@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000017
Bram Moolenaar0dc065e2005-07-04 22:49:24 +000018syn match etermMagic 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
Bram Moolenaar57657d82006-04-21 22:12:41 +000064 \ start='^\s*begin\s\+color\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +000065 \ 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
Bram Moolenaar57657d82006-04-21 22:12:41 +0000102 \ start='^\s*begin\s\+attributes\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000103 \ 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
Bram Moolenaar57657d82006-04-21 22:12:41 +0000114 \ start='^\s*begin\s\+imageclasses\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000115 \ 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
Bram Moolenaar0dc065e2005-07-04 22:49:24 +0000172syn region etermImageOptions contained display oneline
173 \ matchgroup=etermImageOptions
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000174 \ start='border\|bevel\%(\s\+\%(up\|down\)\)\|padding'
175 \ end='$' contains=etermNumber
176
177syn region etermImageContext contained fold transparent
178 \ matchgroup=etermContext
Bram Moolenaar57657d82006-04-21 22:12:41 +0000179 \ start='^\s*begin\s\+image\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000180 \ end='^\s*end\>'
181 \ contains=@etermGeneral,etermImageOptions
182
183syn keyword etermMenuItemOptions contained action
184 \ nextgroup=etermMenuItemAction skipwhite
185
186syn keyword etermMenuItemAction contained string echo submenu script
187 \ nextgroup=etermString skipwhite
188
189syn keyword etermMenuItemAction contained separator
190
191syn keyword etermMenuItemOptions contained text rtext nextgroup=etermString
192 \ skipwhite
193
194syn region etermMenuItemContext contained fold transparent
195 \ matchgroup=etermContext
Bram Moolenaar57657d82006-04-21 22:12:41 +0000196 \ start='^\s*begin\s\+menuitem\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000197 \ end='^\s*end\>'
198 \ contains=@etermGeneral,etermMenuItemOptions
199
200syn keyword etermMenuOptions contained title nextgroup=etermString
201 \ skipwhite
202
203syn keyword etermMenuOptions contained font_name nextgroup=etermFont
204 \ skipwhite
205
206syn match etermMenuOptions contained display '\<sep\>\|-'
207
208syn region etermMenuContext fold transparent matchgroup=etermContext
Bram Moolenaar57657d82006-04-21 22:12:41 +0000209 \ start='^\s*begin\s\+menu\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000210 \ end='^\s*end\>'
211 \ contains=@etermGeneral,etermMenuOptions,
212 \ etermMenuItemContext
213
214syn keyword etermBind contained bind nextgroup=etermBindMods
215 \ skipwhite
216
217syn keyword etermBindMods contained ctrl shift lock mod1 mod2 mod3 mod4
218 \ mod5 alt meta anymod
219 \ nextgroup=etermBindMods skipwhite
220
221syn keyword etermBindTo contained to nextgroup=etermBindType
222 \ skipwhite
223
224syn keyword etermBindType contained string echo menu script
225 \ nextgroup=etermBindParam skipwhite
226
227syn match etermBindParam contained display '\S\+'
228
229syn region etermActionsContext fold transparent matchgroup=etermContext
Bram Moolenaar57657d82006-04-21 22:12:41 +0000230 \ start='^\s*begin\s\+actions\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000231 \ end='^\s*end\>'
232 \ contains=@etermGeneral,etermActionsOptions
233
234syn keyword etermButtonOptions contained font nextgroup=etermFont skipwhite
235syn keyword etermButtonOptions contained visible nextgroup=etermBoolean
236 \ skipwhite
237syn keyword etermButtonOptions contained dock nextgroup=etermDockOption
238 \ skipwhite
239
240syn keyword etermDockOption contained top bottom no
241
242syn keyword etermButton contained button nextgroup=etermButtonText
243 \ skipwhite
244
245syn region etermButtonText contained display oneline start=+"+
246 \ skip=+\\"+ end=+"+
247 \ nextgroup=etermButtonIcon skipwhite
248
249syn keyword etermButtonIcon contained icon nextgroup=etermButtonIconFile
250 \ skipwhite
251
252syn keyword etermButtonIconFile contained '\S\+' nextgroup=etermButtonAction
253 \ skipwhite
254
255syn keyword etermButtonAction contained action nextgroup=etermBindType
256 \ skipwhite
257
258syn region etermButtonContext fold transparent matchgroup=etermContext
Bram Moolenaar57657d82006-04-21 22:12:41 +0000259 \ start='^\s*begin\s\+button_bar\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000260 \ end='^\s*end\>'
261 \ contains=@etermGeneral,etermButtonOptions
262
263syn keyword etermMultiOptions contained encoding nextgroup=etermEncoding
264 \ skipwhite
265
266syn keyword etermEncoding eucj sjis euckr big5 gb
267syn match etermEncoding display 'iso-10646'
268
269syn keyword etermMultiOptions contained font nextgroup=etermFontType
270 \ skipwhite
271
272syn region etermMultiContext fold transparent matchgroup=etermContext
Bram Moolenaar57657d82006-04-21 22:12:41 +0000273 \ start='^\s*begin\s\+multichar\>'
274 \ end='^\s*end\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000275 \ contains=@etermGeneral,etermMultiOptions
276
277syn keyword etermXimOptions contained input_method
278 \ nextgroup=etermInputMethod skipwhite
279
280syn match etermInputMethod contained display '\S+'
281
282syn keyword etermXimOptions contained preedit_type
283 \ nextgroup=etermPreeditType skipwhite
284
285syn keyword etermPreeditType contained OverTheSpot OffTheSpot Root
286
287syn region etermXimContext fold transparent matchgroup=etermContext
Bram Moolenaar57657d82006-04-21 22:12:41 +0000288 \ start='^\s*begin\s\+xim\>'
289 \ end='^\s*end\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000290 \ contains=@etermGeneral,etermXimOptions
291
292syn keyword etermTogOptions contained map_alert visual_bell login_shell
293 \ scrollbar utmp_logging meta8 iconic
294 \ no_input home_on_output home_on_input
295 \ scrollbar_floating scrollbar_right
296 \ scrollbar_popup borderless double_buffer
297 \ no_cursor pause xterm_select select_line
298 \ select_trailing_spaces report_as_keysyms
299 \ itrans immotile_trans buttonbar
300 \ resize_gravity nextgroup=etermBoolean
301 \ skipwhite
302
303syn region etermTogContext fold transparent matchgroup=etermContext
Bram Moolenaar57657d82006-04-21 22:12:41 +0000304 \ start='^\s*begin\s\+toggles\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000305 \ end='^\s*end\>'
306 \ contains=@etermGeneral,etermTogOptions
307
308syn keyword etermKeyboardOptions contained smallfont_key bigfont_key keysym
309 \ nextgroup=etermKeysym skipwhite
310
311syn keyword etermKeysym contained '\S\+' nextgroup=etermString
312 \ skipwhite
313
314syn keyword etermKeyboardOptions contained meta_mod alt_mod numlock_mod
315 \ nextgroup=etermNumber skipwhite
316
317syn keyword etermKeyboardOptions contained greek app_keypad app_cursor
318 \ nextgroup=etermBoolean skipwhite
319
320syn region etermKeyboardContext fold transparent matchgroup=etermContext
Bram Moolenaar57657d82006-04-21 22:12:41 +0000321 \ start='^\s*begin\s\+keyboard\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000322 \ end='^\s*end\>'
323 \ contains=@etermGeneral,etermKeyboardOptions
324
325syn keyword etermMiscOptions contained print_pipe cut_chars finished_title
326 \ finished_text term_name exec
327 \ nextgroup=etermString skipwhite
328
329syn keyword etermMiscOptions contained save_lines min_anchor_size
330 \ border_width line_space
331
332syn region etermMiscContext fold transparent matchgroup=etermContext
Bram Moolenaar57657d82006-04-21 22:12:41 +0000333 \ start='^\s*begin\s\+misc\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000334 \ end='^\s*end\>'
335 \ contains=@etermGeneral,etermMiscOptions
336
337syn keyword etermEScreenOptions contained url nextgroup=etermURL skipwhite
338
339syn match etermURL contained display
340 \ '\<\%(screen\|twin\)://\%([^@:/]\+\%(@[^:/]\+\%(:[^/]\+\)\=\)\=\)\=/\S\+'
341
342syn keyword etermEScreenOptions contained firewall
343
344syn keyword etermEScreenOptions contained delay nextgroup=etermNumber
345 \ skipwhite
346
347syn keyword etermEScreenOptions contained bbar_font nextgroup=etermFont
348 \ skipwhite
349
350syn keyword etermEScreenOptions contained bbar_dock nextgroup=etermDockOption
351 \ skipwhite
352
353syn region etermEScreenContext fold transparent matchgroup=etermContext
Bram Moolenaar57657d82006-04-21 22:12:41 +0000354 \ start='^\s*begin\s\+escreen\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000355 \ end='^\s*end\>'
356 \ contains=@etermGeneral,etermEScreenOptions
Bram Moolenaar071d4272004-06-13 20:20:40 +0000357
358if exists("eterm_minlines")
359 let b:eterm_minlines = eterm_minlines
360else
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000361 let b:eterm_minlines = 50
Bram Moolenaar071d4272004-06-13 20:20:40 +0000362endif
363exec "syn sync minlines=" . b:eterm_minlines
364
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000365hi def link etermTodo Todo
366hi def link etermComment Comment
367hi def link etermMagic PreProc
368hi def link etermNumber Number
369hi def link etermString String
370hi def link etermBoolean Boolean
371hi def link etermPreProc PreProc
372hi def link etermFunctions Function
373hi def link etermKeyMod Constant
374hi def link etermOption Keyword
375hi def link etermColorOptions etermOption
376hi def link etermColor String
377hi def link etermVideoType Type
378hi def link etermColorType Type
379hi def link etermColorNumber Number
380hi def link etermColorSpec etermColor
381hi def link etermContext Keyword
382hi def link etermAttrOptions etermOption
383hi def link etermGeometry String
384hi def link etermScrollbarType Type
385hi def link etermFontType Type
386hi def link etermIClassOptions etermOption
387hi def link etermImageOptions etermOption
388hi def link etermImageTypes Type
389hi def link etermImageModes Type
390hi def link etermImageModesAllow Keyword
391hi def link etermImageModesR Type
392hi def link etermImageState Keyword
393hi def link etermImageColorFG etermColor
394hi def link etermImageColorBG etermColor
395hi def link etermImageGeom String
396hi def link etermImageCmod etermOption
397hi def link etermImageBrightness Number
398hi def link etermImageContrast Number
399hi def link etermImageGamma Number
400hi def link etermMenuItemOptions etermOption
401hi def link etermMenuItemAction Keyword
402hi def link etermMenuOptions etermOption
403hi def link etermBind Keyword
404hi def link etermBindMods Identifier
405hi def link etermBindTo Keyword
406hi def link etermBindType Type
407hi def link etermBindParam String
408hi def link etermButtonOptions etermOption
409hi def link etermDockOption etermOption
410hi def link etermButtonText String
411hi def link etermButtonIcon String
412hi def link etermButtonIconFile String
413hi def link etermButtonAction Keyword
414hi def link etermMultiOptions etermOption
415hi def link etermEncoding Identifier
416hi def link etermXimOptions etermOption
417hi def link etermInputMethod Identifier
418hi def link etermPreeditType Type
419hi def link etermTogOptions etermOption
420hi def link etermKeyboardOptions etermOption
421hi def link etermKeysym Constant
422hi def link etermMiscOptions etermOption
423hi def link etermEScreenOptions etermOption
424hi def link etermURL Identifier
Bram Moolenaar071d4272004-06-13 20:20:40 +0000425
426let b:current_syntax = "eterm"
427
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000428let &cpo = s:cpo_save
429unlet s:cpo_save