blob: 9cf38fe144464e528c728b129ff8da2ad595f4b7 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Eterm configuration file
3" Maintainer: Nikolai Weibull <source@pcppopper.org>
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: