xref: /vim-8.2.3635/runtime/syntax/eterm.vim (revision 19a09a18)
1" Vim syntax file
2" Language:	    Eterm configuration file
3" Maintainer:	    Nikolai Weibull <[email protected]>
4" URL:		    http://www.pcppopper.org/vim/syntax/pcp/eterm/
5" Latest Revision:  2004-05-06
6" arch-tag:	    f4c58caf-2b91-4fc4-96af-e3cad7c70e6b
7
8if version < 600
9  syntax clear
10elseif exists("b:current_syntax")
11  finish
12endif
13
14" magic number
15syn match   etermMagic		display "^<Eterm-[0-9.]\+>$"
16
17" comments
18syn region  etermComment	matchgroup=etermComment start="^#" end="$" contains=etermTodo
19
20" todo
21syn keyword etermTodo		contained TODO FIXME XXX NOTE
22
23" numbers
24syn match   etermNumber		contained display "\<\(\d\+\|0x\x\{1,2}\)\>"
25
26" strings
27syn region  etermString		contained display oneline start=+"+ skip=+\\"+ end=+"+
28
29" booleans
30syn keyword etermBoolean	contained on off true false yes no
31
32" colors (not pretty, but can't figure out better way...)
33syn match   etermColor		contained display "\s\+#\x\{6}\>"
34syn keyword etermColor		contained white black
35
36" preproc
37syn match   etermPreProc	contained "%\(appname\|exec\|get\|put\|random\|version\|include\|preproc\)("he=e-1
38
39" functions
40syn match   etermFunctions	contained "\<\(copy\|exit\|kill\|nop\|paste\|save\|scroll\|search\|spawn\)("
41
42" and make it easy to refer to the above...
43syn cluster etermGeneral	contains=etermComment,etermNumber,etermString,etermBoolean,etermColor,etermFunction,etermPreProc
44
45" key modifiers
46syn keyword etermKeyMod		contained ctrl shift lock mod1 mod2 mod3 mod4 mod5 alt meta anymod
47syn keyword etermKeyMod		contained button1 button2 button3 button4 button5
48
49" color context
50syn region  etermColorOptions	contained oneline matchgroup=etermOption start="^\s*video\>" matchgroup=etermType end="\<\(normal\|reverse\)\>"
51syn region  etermColorOptions	contained oneline matchgroup=etermOption start="^\s*color\>" matchgroup=etermType end="\<\(bd\|ul\|[0-9]\|1[0-5]\)\>"
52syn keyword etermColorOptions	contained foreground background cursor cursor_text pointer
53
54syn region  etermColorContext	fold transparent  matchgroup=etermContext start="^\s*begin\s\+color\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermColorOptions
55
56" attributes context
57syn region  etermAttrOptions	contained oneline matchgroup=etermOption start="^\s*geometry\>" matchgroup=etermType end="\<\d\+x\d\++\d\++\d\+\>"
58syn region  etermAttrOptions	contained oneline matchgroup=etermOption start="^\s*scrollbar_type\>" matchgroup=etermType end="\<\(motif\|xterm\|next\)\>"
59syn region  etermAttrOptions	contained oneline matchgroup=etermOption start="^\s*font\>" matchgroup=etermType end="\<\(bold\|default\|proportional\|fx\|[0-5]\)\>"
60syn keyword etermAttrOptions	contained title name iconname desktop scrollbar_width
61
62syn region  etermAttrContext	fold transparent  matchgroup=etermContext start="^\s*begin\s\+attributes\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermAttrOptions
63
64" image context
65" image types
66syn keyword etermImageTypes	contained background trough anchor up_arrow
67syn keyword etermImageTypes	contained left_arrow right_arrow menu menuitem
68syn keyword etermImageTypes	contained submenu button buttonbar down_arrow
69syn region  etermImageOptions	contained transparent oneline matchgroup=etermOption start="^\s*type\>" end="$" contains=etermImageTypes
70" image modes
71syn keyword etermImageModes	contained image trans viewport auto solid
72syn keyword etermImageModesAllow contained allow
73syn region  etermImageOptions	contained transparent oneline matchgroup=etermOption start="^\s*mode\>" end="$" contains=etermImageModes,etermImageModesAllow
74" image states
75syn region  etermImageOptions	contained transparent oneline matchgroup=etermOption start="^\s*state\>" matchgroup=etermType end="\<\(normal\|selected\|clicked\|disabled\)\>"
76" image geometry
77syn region  etermImageOptions	contained transparent oneline matchgroup=etermOption start="^\s*geom\>" matchgroup=etermType end="\s\+\(\d\+x\d\++\d\++\d\+\)\=:\(\(tile\|scale\|hscale\|vscale\|propscale\)d\=\)\="
78" image color modification
79syn region  etermImageOptions	contained transparent oneline matchgroup=etermOption start="^\s*\(cmod\|colormod\)\>" matchgroup=etermType end="\<\(image\|red\|green\|blue\)\>"
80" other keywords
81syn keyword etermImageOptions	contained file padding border bevel color
82
83syn region  etermImageContext	contained transparent fold matchgroup=etermContext start="^\s*begin\s\+image\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermImageOptions
84
85" imageclasses context
86syn keyword etermIClassOptions	contained icon cache path anim
87
88syn region  etermIClassContext	fold transparent  matchgroup=etermContext start="^\s*begin\s\+imageclasses\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermImageContext,etermIClassOptions
89
90" menuitem context
91syn region  etermMenuItemOptions contained transparent oneline matchgroup=etermOption start="^\s*action\>" matchgroup=etermType end="\<string\|echo\|submenu\|script\|separator\>"
92syn keyword etermMenuItemOptions contained text rtext
93
94syn region  etermMenuItemContext fold transparent matchgroup=etermContext start="^\s*begin\s\+menuitem\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMenuItemOptions
95
96" menu context (should contain - as well, but no...)
97syn keyword etermMenuOptions    contained title font_name sep
98
99syn region  etermMenuContext    fold transparent  matchgroup=etermContext start="^\s*begin\s\+menu\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMenuOptions,etermMenuItemContext
100
101" action context
102syn match   etermActionDef	contained "\<\(to\|string\|echo\|menu\|script\)\>"
103syn region  etermActionsOptions	contained transparent oneline matchgroup=etermOption start="^\s*bind\>" end="$" contains=etermActionDef,etermKeyMod
104
105syn region  etermActionsContext	fold transparent  matchgroup=etermContext start="^\s*begin\s\+actions\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermActionsOptions
106
107" button bar context
108syn match   etermButtonDef	contained "\<\(action\|string\|echo\|menu\|scrupt\)\>"
109syn region  etermButtonOptions	contained transparent oneline matchgroup=etermOption start="^\s*button\>" end="$" contains=etermButtonDef
110syn keyword etermButtonOptions	contained font visible dock
111
112syn region  etermButtonContext	fold transparent  matchgroup=etermContext start="^\s*begin\s\+button_bar\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermButtonOptions
113
114" multichar context
115syn keyword etermMultiOptions	contained encoding font
116
117syn region  etermMultiContext	fold transparent  matchgroup=etermContext start="^\s*begin\s\+multichar\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMultiOptions
118
119" xim context
120syn keyword etermXimOptions     contained input_method preedit_type
121
122syn region  etermXimContext	fold transparent  matchgroup=etermContext start="^\s*begin\s\+xim\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermXimOptions
123
124" toggles context
125syn keyword etermTogOptions	contained map_alert visual_bell login_shell scrollbar utmp_logging meta8 iconic no_input
126syn keyword etermTogOptions	contained home_on_output home_on_input scrollbar_floating scrollbar_right scrollbar_popup
127syn keyword etermTogOptions	contained borderless double_buffer no_cursor pause xterm_select select_line
128syn keyword etermTogOptions	contained select_trailing_spaces report_as_keysyms itrans immotile_trans buttonbar
129syn keyword etermTogOptions	contained resize_gravity
130
131syn region  etermTogContext	fold transparent  matchgroup=etermContext start="^\s*begin\s\+toggles\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermTogOptions
132
133" keyboard context
134syn keyword etermKeyboardOptions contained smallfont_key bigfont_key keysym meta_mod alt_mod
135syn keyword etermKeyboardOptions contained greek numlock_mod app_keypad app_cursor
136
137syn region  etermKeyboardContext fold transparent  matchgroup=etermContext start="^\s*begin\s\+keyboard\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermKeyboardOptions
138
139" misc context
140syn keyword etermMiscOptions	contained print_pipe save_lines cut_chars min_anchor_size
141syn keyword etermMiscOptions	contained border_width line_space finished_title term_name
142syn keyword etermMiscOptions	contained finished_text exec
143
144syn region  etermMiscContext	fold transparent  matchgroup=etermContext start="^\s*begin\s\+misc\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMiscOptions
145
146if exists("eterm_minlines")
147  let b:eterm_minlines = eterm_minlines
148else
149  let b:eterm_minlines = 30
150endif
151exec "syn sync minlines=" . b:eterm_minlines
152
153" Define the default highlighting.
154" For version 5.7 and earlier: only when not done already
155" For version 5.8 and later: only when an item doesn't have highlighting yet
156if version >= 508 || !exists("did_eterm_syn_inits")
157  if version < 508
158    let did_eterm_syn_inits = 1
159    command -nargs=+ HiLink hi link <args>
160  else
161    command -nargs=+ HiLink hi def link <args>
162  endif
163
164  HiLink etermMagic		Special
165  HiLink etermComment		Comment
166  HiLink etermTodo		Todo
167  HiLink etermNumber		Number
168  HiLink etermString		String
169  HiLink etermBoolean		Boolean
170  HiLink etermColor		Number
171  HiLink etermPreProc		PreProc
172  HiLink etermFunctions    	Function
173  HiLink etermKeyMod		Special
174  HiLink etermContext		Keyword
175  HiLink etermOption		Keyword
176  HiLink etermType		Type
177  HiLink etermColorOptions	Keyword
178  HiLink etermAttrOptions	Keyword
179  HiLink etermIClassOptions	Keyword
180  HiLink etermImageTypes	Type
181  HiLink etermImageModes	Type
182  HiLink etermImageModesAllow	Keyword
183  HiLink etermImageOptions	Keyword
184  HiLink etermMenuOptions	Keyword
185  HiLink etermMenuItemOptions	Keyword
186  HiLink etermActionDef	Type
187  HiLink etermActionsOptions	Keyword
188  HiLink etermButtonDef	Type
189  HiLink etermButtonOptions	Keyword
190  HiLink etermMultiOptions	Keyword
191  HiLink etermXimOptions	Keyword
192  HiLink etermTogOptions	Keyword
193  HiLink etermKeyboardOptions	Keyword
194  HiLink etermMiscOptions	Keyword
195  delcommand HiLink
196endif
197
198let b:current_syntax = "eterm"
199
200" vim: set sts=2 sw=2:
201