vim-polyglot/syntax/eterm.vim
2017-09-27 20:43:42 +02:00

434 lines
19 KiB
VimL

if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
" Vim syntax file
" Language: eterm(1) configuration file
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-04-21
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn keyword etermTodo contained TODO FIXME XXX NOTE
syn region etermComment display oneline start='^#' end='$'
\ contains=etermTodo,@Spell
syn match etermMagic display '^<Eterm-[0-9.]\+>$'
syn match etermNumber contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
syn region etermString contained display oneline start=+"+
\ skip=+\\"+ end=+"+
syn keyword etermBoolean contained on off true false yes no
syn keyword etermPreProc contained appname exec get put random version
\ include preproc
syn keyword etermFunctions contained copy exit kill nop paste save
\ scroll search spawn
syn cluster etermGeneral contains=etermComment,etermFunction,
\ etermPreProc
syn keyword etermKeyMod contained ctrl shift lock mod1 mod2 mod3 mod4
\ mod5 alt meta anymod
syn keyword etermKeyMod contained button1 button2 button3 button4
\ button5
syn keyword etermColorOptions contained video nextgroup=etermVideoOptions
\ skipwhite
syn keyword etermVideoType contained normal reverse
syn keyword etermColorOptions contained foreground background cursor
\ cursor_text pointer
\ nextgroup=etermColorType skipwhite
syn keyword etermColorType contained bd ul
syn match etermColorType contained display '\<\%(\d\|1[0-5]\)'
syn keyword etermColorOptions contained color
\ nextgroup=etermColorNumber skipwhite
syn keyword etermColorNumber contained bd ul nextgroup=etermColorSpec
\ skipwhite
syn match etermColorNumber contained display '\<\%(\d\|1[0-5]\)'
\ nextgroup=etermColorSpec skipwhite
syn match etermColorSpec contained display '\S\+'
syn region etermColorContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+color\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermColorOptions
syn keyword etermAttrOptions contained geometry nextgroup=etermGeometry
\ skipwhite
syn match etermGeometry contained display '\d\+x\d++\d\++\d\+'
syn keyword etermAttrOptions contained scrollbar_type
\ nextgroup=etermScrollbarType skipwhite
syn keyword etermScrollbarType contained motif xterm next
syn keyword etermAttrOptions contained font nextgroup=etermFontType
\ skipwhite
syn keyword etermFontType contained bold nextgroup=etermFont skipwhite
syn match etermFontType contained display '[0-5]' nextgroup=etermFont
\ skipwhite
syn match etermFont contained display '\S\+'
syn keyword etermFontType contained default nextgroup=etermNumber
\ skipwhite
syn keyword etermFontType contained proportional nextgroup=etermBoolean
\ skipwhite
syn keyword etermFontType contained fx nextgroup=etermString skipwhite
syn keyword etermAttrOptions contained title name iconname
\ nextgroup=etermString skipwhite
syn keyword etermAttrOptions contained scrollbar_width desktop
\ nextgroup=etermNumber skipwhite
syn region etermAttrContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+attributes\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermAttrOptions
syn keyword etermIClassOptions contained icon path nextgroup=etermString
\ skipwhite
syn keyword etermIClassOptions contained cache nextgroup=etermNumber
\ skipwhite
syn keyword etermIClassOptions contained anim nextgroup=etermNumber
\ skipwhite
syn region etermIClassContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+imageclasses\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermImageContext,
\ etermIClassOptions
syn keyword etermImageOptions contained type nextgroup=etermImageType
\ skipwhite
syn keyword etermImageTypes contained background trough anchor up_arrow
\ left_arrow right_arrow menu menuitem
\ submenu button buttonbar down_arrow
syn keyword etermImageOptions contained mode nextgroup=etermImageModes
\ skipwhite
syn keyword etermImageModes contained image trans viewport auto solid
\ nextgroup=etermImageModesAllow skipwhite
syn keyword etermImageModesAllow contained allow nextgroup=etermImageModesR
\ skipwhite
syn keyword etermImageModesR contained image trans viewport auto solid
syn keyword etermImageOptions contained state nextgroup=etermImageState
\ skipwhite
syn keyword etermImageState contained normal selected clicked disabled
syn keyword etermImageOptions contained color nextgroup=etermImageColorFG
\ skipwhite
syn keyword etermImageColorFG contained '\S\+' nextgroup=etermImageColorBG
\ skipwhite
syn keyword etermImageColorBG contained '\S\+'
syn keyword etermImageOptions contained file nextgroup=etermString
\ skipwhite
syn keyword etermImageOptions contained geom nextgroup=etermImageGeom
\ skipwhite
syn match etermImageGeom contained display
\ '\s\+\%(\d\+x\d\++\d\++\d\+\)\=:\%(\%(tie\|scale\|hscale\|vscale\|propscale\)d\=\)\='
syn keyword etermImageOptions contained cmod colormod
\ nextgroup=etermImageCmod skipwhite
syn keyword etermImageCmod contained image red green blue
\ nextgroup=etermImageBrightness skipwhite
syn match etermImageBrightness contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
\ nextgroup=etermImageContrast skipwhite
syn match etermImageContrast contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
\ nextgroup=etermImageGamma skipwhite
syn match etermImageGamma contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
\ nextgroup=etermImageGamma skipwhite
syn region etermImageOptions contained display oneline
\ matchgroup=etermImageOptions
\ start='border\|bevel\%(\s\+\%(up\|down\)\)\|padding'
\ end='$' contains=etermNumber
syn region etermImageContext contained fold transparent
\ matchgroup=etermContext
\ start='^\s*begin\s\+image\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermImageOptions
syn keyword etermMenuItemOptions contained action
\ nextgroup=etermMenuItemAction skipwhite
syn keyword etermMenuItemAction contained string echo submenu script
\ nextgroup=etermString skipwhite
syn keyword etermMenuItemAction contained separator
syn keyword etermMenuItemOptions contained text rtext nextgroup=etermString
\ skipwhite
syn region etermMenuItemContext contained fold transparent
\ matchgroup=etermContext
\ start='^\s*begin\s\+menuitem\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermMenuItemOptions
syn keyword etermMenuOptions contained title nextgroup=etermString
\ skipwhite
syn keyword etermMenuOptions contained font_name nextgroup=etermFont
\ skipwhite
syn match etermMenuOptions contained display '\<sep\>\|-'
syn region etermMenuContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+menu\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermMenuOptions,
\ etermMenuItemContext
syn keyword etermBind contained bind nextgroup=etermBindMods
\ skipwhite
syn keyword etermBindMods contained ctrl shift lock mod1 mod2 mod3 mod4
\ mod5 alt meta anymod
\ nextgroup=etermBindMods skipwhite
syn keyword etermBindTo contained to nextgroup=etermBindType
\ skipwhite
syn keyword etermBindType contained string echo menu script
\ nextgroup=etermBindParam skipwhite
syn match etermBindParam contained display '\S\+'
syn region etermActionsContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+actions\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermActionsOptions
syn keyword etermButtonOptions contained font nextgroup=etermFont skipwhite
syn keyword etermButtonOptions contained visible nextgroup=etermBoolean
\ skipwhite
syn keyword etermButtonOptions contained dock nextgroup=etermDockOption
\ skipwhite
syn keyword etermDockOption contained top bottom no
syn keyword etermButton contained button nextgroup=etermButtonText
\ skipwhite
syn region etermButtonText contained display oneline start=+"+
\ skip=+\\"+ end=+"+
\ nextgroup=etermButtonIcon skipwhite
syn keyword etermButtonIcon contained icon nextgroup=etermButtonIconFile
\ skipwhite
syn keyword etermButtonIconFile contained '\S\+' nextgroup=etermButtonAction
\ skipwhite
syn keyword etermButtonAction contained action nextgroup=etermBindType
\ skipwhite
syn region etermButtonContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+button_bar\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermButtonOptions
syn keyword etermMultiOptions contained encoding nextgroup=etermEncoding
\ skipwhite
syn keyword etermEncoding eucj sjis euckr big5 gb
syn match etermEncoding display 'iso-10646'
syn keyword etermMultiOptions contained font nextgroup=etermFontType
\ skipwhite
syn region etermMultiContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+multichar\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermMultiOptions
syn keyword etermXimOptions contained input_method
\ nextgroup=etermInputMethod skipwhite
syn match etermInputMethod contained display '\S+'
syn keyword etermXimOptions contained preedit_type
\ nextgroup=etermPreeditType skipwhite
syn keyword etermPreeditType contained OverTheSpot OffTheSpot Root
syn region etermXimContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+xim\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermXimOptions
syn keyword etermTogOptions contained map_alert visual_bell login_shell
\ scrollbar utmp_logging meta8 iconic
\ no_input home_on_output home_on_input
\ scrollbar_floating scrollbar_right
\ scrollbar_popup borderless double_buffer
\ no_cursor pause xterm_select select_line
\ select_trailing_spaces report_as_keysyms
\ itrans immotile_trans buttonbar
\ resize_gravity nextgroup=etermBoolean
\ skipwhite
syn region etermTogContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+toggles\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermTogOptions
syn keyword etermKeyboardOptions contained smallfont_key bigfont_key keysym
\ nextgroup=etermKeysym skipwhite
syn keyword etermKeysym contained '\S\+' nextgroup=etermString
\ skipwhite
syn keyword etermKeyboardOptions contained meta_mod alt_mod numlock_mod
\ nextgroup=etermNumber skipwhite
syn keyword etermKeyboardOptions contained greek app_keypad app_cursor
\ nextgroup=etermBoolean skipwhite
syn region etermKeyboardContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+keyboard\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermKeyboardOptions
syn keyword etermMiscOptions contained print_pipe cut_chars finished_title
\ finished_text term_name exec
\ nextgroup=etermString skipwhite
syn keyword etermMiscOptions contained save_lines min_anchor_size
\ border_width line_space
syn region etermMiscContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+misc\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermMiscOptions
syn keyword etermEScreenOptions contained url nextgroup=etermURL skipwhite
syn match etermURL contained display
\ '\<\%(screen\|twin\)://\%([^@:/]\+\%(@[^:/]\+\%(:[^/]\+\)\=\)\=\)\=/\S\+'
syn keyword etermEScreenOptions contained firewall
syn keyword etermEScreenOptions contained delay nextgroup=etermNumber
\ skipwhite
syn keyword etermEScreenOptions contained bbar_font nextgroup=etermFont
\ skipwhite
syn keyword etermEScreenOptions contained bbar_dock nextgroup=etermDockOption
\ skipwhite
syn region etermEScreenContext fold transparent matchgroup=etermContext
\ start='^\s*begin\s\+escreen\>'
\ end='^\s*end\>'
\ contains=@etermGeneral,etermEScreenOptions
if exists("eterm_minlines")
let b:eterm_minlines = eterm_minlines
else
let b:eterm_minlines = 50
endif
exec "syn sync minlines=" . b:eterm_minlines
hi def link etermTodo Todo
hi def link etermComment Comment
hi def link etermMagic PreProc
hi def link etermNumber Number
hi def link etermString String
hi def link etermBoolean Boolean
hi def link etermPreProc PreProc
hi def link etermFunctions Function
hi def link etermKeyMod Constant
hi def link etermOption Keyword
hi def link etermColorOptions etermOption
hi def link etermColor String
hi def link etermVideoType Type
hi def link etermColorType Type
hi def link etermColorNumber Number
hi def link etermColorSpec etermColor
hi def link etermContext Keyword
hi def link etermAttrOptions etermOption
hi def link etermGeometry String
hi def link etermScrollbarType Type
hi def link etermFontType Type
hi def link etermIClassOptions etermOption
hi def link etermImageOptions etermOption
hi def link etermImageTypes Type
hi def link etermImageModes Type
hi def link etermImageModesAllow Keyword
hi def link etermImageModesR Type
hi def link etermImageState Keyword
hi def link etermImageColorFG etermColor
hi def link etermImageColorBG etermColor
hi def link etermImageGeom String
hi def link etermImageCmod etermOption
hi def link etermImageBrightness Number
hi def link etermImageContrast Number
hi def link etermImageGamma Number
hi def link etermMenuItemOptions etermOption
hi def link etermMenuItemAction Keyword
hi def link etermMenuOptions etermOption
hi def link etermBind Keyword
hi def link etermBindMods Identifier
hi def link etermBindTo Keyword
hi def link etermBindType Type
hi def link etermBindParam String
hi def link etermButtonOptions etermOption
hi def link etermDockOption etermOption
hi def link etermButtonText String
hi def link etermButtonIcon String
hi def link etermButtonIconFile String
hi def link etermButtonAction Keyword
hi def link etermMultiOptions etermOption
hi def link etermEncoding Identifier
hi def link etermXimOptions etermOption
hi def link etermInputMethod Identifier
hi def link etermPreeditType Type
hi def link etermTogOptions etermOption
hi def link etermKeyboardOptions etermOption
hi def link etermKeysym Constant
hi def link etermMiscOptions etermOption
hi def link etermEScreenOptions etermOption
hi def link etermURL Identifier
let b:current_syntax = "eterm"
let &cpo = s:cpo_save
unlet s:cpo_save
endif