Mercurial > vim
comparison runtime/syntax/tcl.vim @ 7:3fc0f57ecb91 v7.0001
updated for version 7.0001
author | vimboss |
---|---|
date | Sun, 13 Jun 2004 20:20:40 +0000 |
parents | |
children | 96cd8222a819 |
comparison
equal
deleted
inserted
replaced
6:c2daee826b8f | 7:3fc0f57ecb91 |
---|---|
1 " Vim syntax file | |
2 " Language: TCL/TK | |
3 " Maintainer: Dean Copsey <copsey@cs.ucdavis.edu> | |
4 " (previously Matt Neumann <mattneu@purpleturtle.com>) | |
5 " (previously Allan Kelly <allan@fruitloaf.co.uk>) | |
6 " Original: Robin Becker <robin@jessikat.demon.co.uk> | |
7 " Last Change: 2004 May 16 | |
8 " | |
9 " Keywords TODO: format clock click anchor | |
10 | |
11 " For version 5.x: Clear all syntax items | |
12 " For version 6.x: Quit when a syntax file was already loaded | |
13 if version < 600 | |
14 syntax clear | |
15 elseif exists("b:current_syntax") | |
16 finish | |
17 endif | |
18 | |
19 " A bunch of useful keywords | |
20 syn keyword tclStatement proc global return lindex | |
21 syn keyword tclStatement llength lappend lreplace lrange list concat incr | |
22 syn keyword tclStatement upvar set | |
23 syn keyword tclLabel case default | |
24 syn keyword tclConditional if then else elseif switch | |
25 syn keyword tclRepeat while for foreach break continue | |
26 syn keyword tcltkSwitch contained insert create polygon fill outline tag | |
27 | |
28 " WIDGETS | |
29 " commands associated with widgets | |
30 syn keyword tcltkWidgetSwitch contained background highlightbackground insertontime cget | |
31 syn keyword tcltkWidgetSwitch contained selectborderwidth borderwidth highlightcolor insertwidth | |
32 syn keyword tcltkWidgetSwitch contained selectforeground cursor highlightthickness padx setgrid | |
33 syn keyword tcltkWidgetSwitch contained exportselection insertbackground pady takefocus | |
34 syn keyword tcltkWidgetSwitch contained font insertborderwidth relief xscrollcommand | |
35 syn keyword tcltkWidgetSwitch contained foreground insertofftime selectbackground yscrollcommand | |
36 syn keyword tcltkWidgetSwitch contained height spacing1 spacing2 spacing3 | |
37 syn keyword tcltkWidgetSwitch contained state tabs width wrap | |
38 " button | |
39 syn keyword tcltkWidgetSwitch contained command default | |
40 " canvas | |
41 syn keyword tcltkWidgetSwitch contained closeenough confine scrollregion xscrollincrement yscrollincrement orient | |
42 " checkbutton, radiobutton | |
43 syn keyword tcltkWidgetSwitch contained indicatoron offvalue onvalue selectcolor selectimage state variable | |
44 " entry, frame | |
45 syn keyword tcltkWidgetSwitch contained show class colormap container visual | |
46 " listbox, menu | |
47 syn keyword tcltkWidgetSwitch contained selectmode postcommand selectcolor tearoff tearoffcommand title type | |
48 " menubutton, message | |
49 syn keyword tcltkWidgetSwitch contained direction aspect justify | |
50 " scale | |
51 syn keyword tcltkWidgetSwitch contained bigincrement digits from length resolution showvalue sliderlength sliderrelief tickinterval to | |
52 " scrollbar | |
53 syn keyword tcltkWidgetSwitch contained activerelief elementborderwidth | |
54 " image | |
55 syn keyword tcltkWidgetSwitch contained delete names types create | |
56 " variable reference | |
57 " ::optional::namespaces | |
58 syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_.]*::\)*\)\a[a-zA-Z0-9_.]*" | |
59 " ${...} may contain any character except '}' | |
60 syn match tclVarRef "${[^}]*}" | |
61 " menu, mane add | |
62 syn keyword tcltkWidgetSwitch contained active end last none cascade checkbutton command radiobutton separator | |
63 syn keyword tcltkWidgetSwitch contained activebackground actveforeground accelerator background bitmap columnbreak | |
64 syn keyword tcltkWidgetSwitch contained font foreground hidemargin image indicatoron label menu offvalue onvalue | |
65 syn keyword tcltkWidgetSwitch contained selectcolor selectimage state underline value variable | |
66 syn keyword tcltkWidgetSwitch contained add clone configure delete entrycget entryconfigure index insert invoke | |
67 syn keyword tcltkWidgetSwitch contained post postcascade type unpost yposition activate | |
68 "syn keyword tcltkWidgetSwitch contained | |
69 "syn match tcltkWidgetSwitch contained | |
70 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<button\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
71 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<scale\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
72 | |
73 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<canvas\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
74 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<checkbutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
75 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<entry\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
76 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<frame\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
77 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<image\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
78 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<listbox\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
79 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<menubutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
80 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<message\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
81 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<radiobutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
82 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<scrollbar\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
83 " These words are dual purpose. | |
84 " match switches | |
85 "syn match tcltkWidgetSwitch contained "-text"hs=s+1 | |
86 syn match tcltkWidgetSwitch contained "-text\(var\)\?"hs=s+1 | |
87 syn match tcltkWidgetSwitch contained "-menu"hs=s+1 | |
88 syn match tcltkWidgetSwitch contained "-label"hs=s+1 | |
89 " match commands - 2 lines for pretty match. | |
90 "variable | |
91 " Special case - If a number follows a variable region, it must be at the end of | |
92 " the pattern, by definition. Therefore, (1) either include a number as the region | |
93 " end and exclude tclNumber from the contains list, or (2) make variable | |
94 " keepend. As (1) would put variable out of step with everything else, use (2). | |
95 syn region tcltkCommand matchgroup=tcltkCommandColor start="^\<variable\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tclString,tclNumber,tclVarRef,tcltkCommand | |
96 syn region tcltkCommand matchgroup=tcltkCommandColor start="\s\<variable\>\|\[\<variable\>"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tclString,tclNumber,tclVarRef,tcltkCommand | |
97 " menu | |
98 syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<menu\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
99 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\s\<menu\>\|\[\<menu\>"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
100 " label | |
101 syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<label\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
102 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\s\<label\>\|\[\<label\>"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
103 " text | |
104 syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<text\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidget,tcltkWidgetSwitch,tcltkSwitch,tclNumber,tclVarRef,tclString | |
105 syn region tcltkWidget matchgroup=tcltkWidgetColor start="\s\<text\>\|\[\<text\>"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidget,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | |
106 | |
107 " This isn't contained (I don't think) so it's OK to just associate with the Color group. | |
108 " TODO: This could be wrong. | |
109 syn keyword tcltkWidgetColor toplevel | |
110 | |
111 | |
112 syn region tcltkPackConf matchgroup=tcltkPackConfColor start="\<configure\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tcltkPackConfSwitch,tclNumber,tclVarRef keepend | |
113 syn region tcltkPackConf matchgroup=tcltkPackConfColor start="\<cget\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tcltkPackConfSwitch,tclNumber,tclVarRef | |
114 | |
115 | |
116 " NAMESPACE | |
117 " commands associated with namespace | |
118 syn keyword tcltkNamespaceSwitch contained children code current delete eval | |
119 syn keyword tcltkNamespaceSwitch contained export forget import inscope origin | |
120 syn keyword tcltkNamespaceSwitch contained parent qualifiers tail which command variable | |
121 syn region tcltkCommand matchgroup=tcltkCommandColor start="\<namespace\>" matchgroup=NONE skip="^\s*$" end="{\|}\|]\|\"\|[^\\]*\s*$"me=e-1 contains=tclLineContinue,tcltkNamespaceSwitch | |
122 | |
123 " EXPR | |
124 " commands associated with expr | |
125 syn keyword tcltkMaths contained acos cos hypot sinh | |
126 syn keyword tcltkMaths contained asin cosh log sqrt | |
127 syn keyword tcltkMaths contained atan exp log10 tan | |
128 syn keyword tcltkMaths contained atan2 floor pow tanh | |
129 syn keyword tcltkMaths contained ceil fmod sin | |
130 syn region tcltkCommand matchgroup=tcltkCommandColor start="\<expr\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1 contains=tclLineContinue,tcltkMaths,tclNumber,tclVarRef,tclString,tcltlWidgetSwitch,tcltkCommand,tcltkPackConf | |
131 | |
132 " format | |
133 syn region tcltkCommand matchgroup=tcltkCommandColor start="\<format\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1 contains=tclLineContinue,tcltkMaths,tclNumber,tclVarRef,tclString,tcltlWidgetSwitch,tcltkCommand,tcltkPackConf | |
134 | |
135 " PACK | |
136 " commands associated with pack | |
137 syn keyword tcltkPackSwitch contained forget info propogate slaves | |
138 syn keyword tcltkPackConfSwitch contained after anchor before expand fill in ipadx ipady padx pady side | |
139 syn region tcltkCommand matchgroup=tcltkCommandColor start="\<pack\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkPackSwitch,tcltkPackConf,tcltkPackConfSwitch,tclNumber,tclVarRef,tclString,tcltkCommand keepend | |
140 | |
141 " STRING | |
142 " commands associated with string | |
143 syn keyword tcltkStringSwitch contained compare first index last length match range tolower toupper trim trimleft trimright wordstart wordend | |
144 syn region tcltkCommand matchgroup=tcltkCommandColor start="\<string\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkStringSwitch,tclNumber,tclVarRef,tclString,tcltkCommand | |
145 | |
146 " ARRAY | |
147 " commands associated with array | |
148 syn keyword tcltkArraySwitch contained anymore donesearch exists get names nextelement size startsearch set | |
149 " match from command name to ] or EOL | |
150 syn region tcltkCommand matchgroup=tcltkCommandColor start="\<array\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkArraySwitch,tclNumber,tclVarRef,tclString,tcltkCommand | |
151 | |
152 " LSORT | |
153 " switches for lsort | |
154 syn keyword tcltkLsortSwitch contained ascii dictionary integer real command increasing decreasing index | |
155 " match from command name to ] or EOL | |
156 syn region tcltkCommand matchgroup=tcltkCommandColor start="\<lsort\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkLsortSwitch,tclNumber,tclVarRef,tclString,tcltkCommand | |
157 | |
158 syn keyword tclTodo contained TODO | |
159 | |
160 | |
161 " String and Character contstants | |
162 " Highlight special characters (those which have a backslash) differently | |
163 syn match tclSpecial contained "\\\d\d\d\=\|\\." | |
164 " A string needs the skip argument as it may legitimately contain \". | |
165 " Match at start of line | |
166 syn region tclString start=+^"+ end=+"+ contains=tclSpecial skip=+\\\\\|\\"+ | |
167 "Match all other legal strings. | |
168 syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=tclSpecial skip=+\\\\\|\\"+ | |
169 | |
170 syn match tclLineContinue "\\\s*$" | |
171 | |
172 "integer number, or floating point number without a dot and with "f". | |
173 syn case ignore | |
174 syn match tclNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" | |
175 "floating point number, with dot, optional exponent | |
176 syn match tclNumber "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" | |
177 "floating point number, starting with a dot, optional exponent | |
178 syn match tclNumber "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" | |
179 "floating point number, without dot, with exponent | |
180 syn match tclNumber "\<\d\+e[-+]\=\d\+[fl]\=\>" | |
181 "hex number | |
182 syn match tclNumber "0x[0-9a-f]\+\(u\=l\=\|lu\)\>" | |
183 "syn match tclIdentifier "\<[a-z_][a-z0-9_]*\>" | |
184 syn case match | |
185 | |
186 syn region tclComment start="^\s*\#" skip="\\$" end="$" contains=tclTodo | |
187 syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo | |
188 | |
189 "syn sync ccomment tclComment | |
190 | |
191 " Define the default highlighting. | |
192 " For version 5.7 and earlier: only when not done already | |
193 " For version 5.8 and later: only when an item doesn't have highlighting yet | |
194 if version >= 508 || !exists("did_tcl_syntax_inits") | |
195 if version < 508 | |
196 let did_tcl_syntax_inits = 1 | |
197 command -nargs=+ HiLink hi link <args> | |
198 else | |
199 command -nargs=+ HiLink hi def link <args> | |
200 endif | |
201 | |
202 HiLink tcltkSwitch Special | |
203 HiLink tclLabel Label | |
204 HiLink tclConditional Conditional | |
205 HiLink tclRepeat Repeat | |
206 HiLink tclNumber Number | |
207 HiLink tclError Error | |
208 HiLink tclStatement Statement | |
209 "HiLink tclStatementColor Statement | |
210 HiLink tclString String | |
211 HiLink tclComment Comment | |
212 HiLink tclSpecial Special | |
213 HiLink tclTodo Todo | |
214 " Below here are the commands and their options. | |
215 HiLink tcltkCommandColor Statement | |
216 HiLink tcltkWidgetColor Structure | |
217 HiLink tclLineContinue WarningMsg | |
218 HiLink tcltkStringSwitch Special | |
219 HiLink tcltkArraySwitch Special | |
220 HiLink tcltkLsortSwitch Special | |
221 HiLink tcltkPackSwitch Special | |
222 HiLink tcltkPackConfSwitch Special | |
223 HiLink tcltkMaths Special | |
224 HiLink tcltkNamespaceSwitch Special | |
225 HiLink tcltkWidgetSwitch Special | |
226 HiLink tcltkPackConfColor Identifier | |
227 "HiLink tcltkLsort Statement | |
228 HiLink tclVarRef Identifier | |
229 | |
230 delcommand HiLink | |
231 endif | |
232 | |
233 let b:current_syntax = "tcl" | |
234 | |
235 " vim: ts=8 |