| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " Language:	Tcl/Tk | 
					
						
							|  |  |  | " Maintainer:	Taylor Venable <taylor@metasyntax.net> | 
					
						
							|  |  |  | " 		(previously Brett Cannon <brett@python.org>) | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | " 		(previously Dean Copsey <copsey@cs.ucdavis.edu>) | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | "		(previously Matt Neumann <mattneu@purpleturtle.com>) | 
					
						
							|  |  |  | "		(previously Allan Kelly <allan@fruitloaf.co.uk>) | 
					
						
							|  |  |  | " Original:	Robin Becker <robin@jessikat.demon.co.uk> | 
					
						
							| 
									
										
										
										
											2014-02-24 02:51:51 +01:00
										 |  |  | " Last Change:	2014-02-12 | 
					
						
							|  |  |  | " Version:	1.14 | 
					
						
							|  |  |  | " URL:		http://bitbucket.org/taylor_venable/metasyntax/src/tip/Config/vim/syntax/tcl.vim | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " quit when a syntax file was already loaded | 
					
						
							|  |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-24 02:51:51 +01:00
										 |  |  | " Basic Tcl commands: http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm | 
					
						
							|  |  |  | syn keyword tclCommand		after append array bgerror binary cd chan clock close concat | 
					
						
							|  |  |  | syn keyword tclCommand		dde dict encoding eof error eval exec exit expr fblocked | 
					
						
							|  |  |  | syn keyword tclCommand		fconfigure fcopy file fileevent flush format gets glob | 
					
						
							|  |  |  | syn keyword tclCommand		global history http incr info interp join lappend lassign | 
					
						
							|  |  |  | syn keyword tclCommand		lindex linsert list llength lmap load lrange lrepeat | 
					
						
							|  |  |  | syn keyword tclCommand		lreplace lreverse lsearch lset lsort memory my namespace | 
					
						
							|  |  |  | syn keyword tclCommand		next nextto open package pid puts pwd read refchan regexp | 
					
						
							|  |  |  | syn keyword tclCommand		registry regsub rename scan seek self set socket source | 
					
						
							|  |  |  | syn keyword tclCommand		split string subst tell time trace unknown unload unset | 
					
						
							|  |  |  | syn keyword tclCommand		update uplevel upvar variable vwait | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.6/TclCmd/library.htm | 
					
						
							|  |  |  | syn keyword tclCommand		auto_execok auto_import auto_load auto_mkindex auto_reset | 
					
						
							|  |  |  | syn keyword tclCommand		auto_qualify tcl_findLibrary parray tcl_endOfWord | 
					
						
							|  |  |  | syn keyword tclCommand		tcl_startOfNextWord tcl_startOfPreviousWord | 
					
						
							|  |  |  | syn keyword tclCommand		tcl_wordBreakAfter tcl_wordBreakBefore | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Global variables used by Tcl: http://www.tcl.tk/man/tcl8.6/TclCmd/tclvars.htm | 
					
						
							|  |  |  | syn keyword tclVars		auto_path env errorCode errorInfo tcl_library tcl_patchLevel | 
					
						
							|  |  |  | syn keyword tclVars		tcl_pkgPath tcl_platform tcl_precision tcl_rcFileName | 
					
						
							|  |  |  | syn keyword tclVars		tcl_traceCompile tcl_traceExec tcl_wordchars | 
					
						
							|  |  |  | syn keyword tclVars		tcl_nonwordchars tcl_version argc argv argv0 tcl_interactive | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Strings which expr accepts as boolean values, aside from zero / non-zero. | 
					
						
							|  |  |  | syn keyword tclBoolean		true false on off yes no | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-24 02:51:51 +01:00
										 |  |  | syn keyword tclProcCommand	apply coroutine proc return tailcall yield yieldto | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn keyword tclConditional	if then else elseif switch | 
					
						
							| 
									
										
										
										
											2014-02-24 02:51:51 +01:00
										 |  |  | syn keyword tclConditional	catch try throw finally | 
					
						
							|  |  |  | syn keyword tclLabel		default | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn keyword tclRepeat		while for foreach break continue | 
					
						
							| 
									
										
										
										
											2014-02-24 02:51:51 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn keyword tcltkSwitch	contained	insert create polygon fill outline tag | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " WIDGETS | 
					
						
							|  |  |  | " commands associated with widgets | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained background highlightbackground insertontime cget | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained selectborderwidth borderwidth highlightcolor insertwidth | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained selectforeground cursor highlightthickness padx setgrid | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained exportselection insertbackground pady takefocus | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained font insertborderwidth relief xscrollcommand | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained foreground insertofftime selectbackground yscrollcommand | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained height spacing1 spacing2 spacing3 | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained state tabs width wrap | 
					
						
							|  |  |  | " button | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained command default | 
					
						
							|  |  |  | " canvas | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained closeenough confine scrollregion xscrollincrement yscrollincrement orient | 
					
						
							|  |  |  | " checkbutton, radiobutton | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained indicatoron offvalue onvalue selectcolor selectimage state variable | 
					
						
							|  |  |  | " entry, frame | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained show class colormap container visual | 
					
						
							|  |  |  | " listbox, menu | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained selectmode postcommand selectcolor tearoff tearoffcommand title type | 
					
						
							|  |  |  | " menubutton, message | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained direction aspect justify | 
					
						
							|  |  |  | " scale | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained bigincrement digits from length resolution showvalue sliderlength sliderrelief tickinterval to | 
					
						
							|  |  |  | " scrollbar | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained activerelief elementborderwidth | 
					
						
							|  |  |  | " image | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained delete names types create | 
					
						
							|  |  |  | " variable reference | 
					
						
							|  |  |  | 	" ::optional::namespaces | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_]*::\)*\)\a[[:alnum:]_]*" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 	" ${...} may contain any character except '}' | 
					
						
							|  |  |  | syn match tclVarRef "${[^}]*}" | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-24 02:51:51 +01:00
										 |  |  | " Used to facilitate hack to utilize string background for certain color | 
					
						
							|  |  |  | " schemes, e.g. inkpot and lettuce. | 
					
						
							|  |  |  | syn cluster tclVarRefC add=tclVarRef | 
					
						
							|  |  |  | syn cluster tclSpecialC add=tclSpecial | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " The syntactic unquote-splicing replacement for [expand]. | 
					
						
							|  |  |  | syn match tclExpand '\s{\*}' | 
					
						
							|  |  |  | syn match tclExpand '^{\*}' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " menu, mane add | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained active end last none cascade checkbutton command radiobutton separator | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained activebackground actveforeground accelerator background bitmap columnbreak | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained font foreground hidemargin image indicatoron label menu offvalue onvalue | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained selectcolor selectimage state underline value variable | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained add clone configure delete entrycget entryconfigure index insert invoke | 
					
						
							|  |  |  | syn keyword tcltkWidgetSwitch contained post postcascade type unpost yposition activate | 
					
						
							|  |  |  | "syn keyword tcltkWidgetSwitch contained | 
					
						
							|  |  |  | "syn match tcltkWidgetSwitch contained | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<button\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<scale\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<canvas\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<checkbutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<entry\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<frame\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<image\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<listbox\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<menubutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<message\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<radiobutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<scrollbar\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | " These words are dual purpose. | 
					
						
							|  |  |  | " match switches | 
					
						
							|  |  |  | "syn match tcltkWidgetSwitch contained "-text"hs=s+1 | 
					
						
							|  |  |  | syn match tcltkWidgetSwitch contained "-text\(var\)\?"hs=s+1 | 
					
						
							|  |  |  | syn match tcltkWidgetSwitch contained "-menu"hs=s+1 | 
					
						
							|  |  |  | syn match tcltkWidgetSwitch contained "-label"hs=s+1 | 
					
						
							|  |  |  | " match commands - 2 lines for pretty match. | 
					
						
							|  |  |  | "variable | 
					
						
							|  |  |  | " Special case - If a number follows a variable region, it must be at the end of | 
					
						
							|  |  |  | " the pattern, by definition. Therefore, (1) either include a number as the region | 
					
						
							|  |  |  | " end and exclude tclNumber from the contains list, or (2) make variable | 
					
						
							|  |  |  | " keepend. As (1) would put variable out of step with everything else, use (2). | 
					
						
							|  |  |  | syn region tcltkCommand matchgroup=tcltkCommandColor start="^\<variable\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tclString,tclNumber,tclVarRef,tcltkCommand | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | " menu | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<menu\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | " label | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<label\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | " text | 
					
						
							|  |  |  | syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<text\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkWidget,tcltkWidgetSwitch,tcltkSwitch,tclNumber,tclVarRef,tclString | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " This isn't contained (I don't think) so it's OK to just associate with the Color group. | 
					
						
							|  |  |  | " TODO: This could be wrong. | 
					
						
							|  |  |  | syn keyword tcltkWidgetColor	toplevel | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | syn region tcltkPackConf matchgroup=tcltkPackConfColor start="\<cget\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1  contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tcltkPackConfSwitch,tclNumber,tclVarRef | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " NAMESPACE | 
					
						
							|  |  |  | " commands associated with namespace | 
					
						
							|  |  |  | syn keyword tcltkNamespaceSwitch contained children code current delete eval | 
					
						
							|  |  |  | syn keyword tcltkNamespaceSwitch contained export forget import inscope origin | 
					
						
							|  |  |  | syn keyword tcltkNamespaceSwitch contained parent qualifiers tail which command variable | 
					
						
							|  |  |  | syn region tcltkCommand matchgroup=tcltkCommandColor start="\<namespace\>" matchgroup=NONE skip="^\s*$" end="{\|}\|]\|\"\|[^\\]*\s*$"me=e-1  contains=tclLineContinue,tcltkNamespaceSwitch | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " EXPR | 
					
						
							|  |  |  | " commands associated with expr | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | syn keyword tcltkMaths contained	abs acos asin atan atan2 bool ceil cos cosh double entier | 
					
						
							|  |  |  | syn keyword tcltkMaths contained	exp floor fmod hypot int isqrt log log10 max min pow rand | 
					
						
							|  |  |  | syn keyword tcltkMaths contained	round sin sinh sqrt srand tan tanh wide | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " format | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " PACK | 
					
						
							|  |  |  | " commands associated with pack | 
					
						
							|  |  |  | syn keyword tcltkPackSwitch	contained	forget info propogate slaves | 
					
						
							|  |  |  | syn keyword tcltkPackConfSwitch	contained	after anchor before expand fill in ipadx ipady padx pady side | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " STRING | 
					
						
							|  |  |  | " commands associated with string | 
					
						
							|  |  |  | syn keyword tcltkStringSwitch	contained	compare first index last length match range tolower toupper trim trimleft trimright wordstart wordend | 
					
						
							|  |  |  | syn region tcltkCommand matchgroup=tcltkCommandColor start="\<string\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkStringSwitch,tclNumber,tclVarRef,tclString,tcltkCommand | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " ARRAY | 
					
						
							|  |  |  | " commands associated with array | 
					
						
							|  |  |  | syn keyword tcltkArraySwitch	contained	anymore donesearch exists get names nextelement size startsearch set | 
					
						
							|  |  |  | " match from command name to ] or EOL | 
					
						
							|  |  |  | syn region tcltkCommand matchgroup=tcltkCommandColor start="\<array\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkArraySwitch,tclNumber,tclVarRef,tclString,tcltkCommand | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " LSORT | 
					
						
							|  |  |  | " switches for lsort | 
					
						
							|  |  |  | syn keyword tcltkLsortSwitch	contained	ascii dictionary integer real command increasing decreasing index | 
					
						
							|  |  |  | " match from command name to ] or EOL | 
					
						
							|  |  |  | syn region tcltkCommand matchgroup=tcltkCommandColor start="\<lsort\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1  contains=tclLineContinue,tcltkLsortSwitch,tclNumber,tclVarRef,tclString,tcltkCommand | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword tclTodo contained	TODO | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " Sequences which are backslash-escaped: http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M16 | 
					
						
							|  |  |  | " Octal, hexadecimal, unicode codepoints, and the classics. | 
					
						
							|  |  |  | " Tcl takes as many valid characters in a row as it can, so \xAZ in a string is newline followed by 'Z'. | 
					
						
							|  |  |  | syn match   tclSpecial contained '\\\([0-7]\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)' | 
					
						
							|  |  |  | syn match   tclSpecial contained '\\[\[\]\{\}\"\$]' | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " Command appearing inside another command or inside a string. | 
					
						
							|  |  |  | syn region tclEmbeddedStatement	start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " A string needs the skip argument as it may legitimately contain \". | 
					
						
							|  |  |  | " Match at start of line | 
					
						
							| 
									
										
										
										
											2014-02-24 02:51:51 +01:00
										 |  |  | syn region  tclString		  start=+^"+ end=+"+ contains=@tclSpecialC skip=+\\\\\|\\"+ | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | "Match all other legal strings. | 
					
						
							| 
									
										
										
										
											2014-02-24 02:51:51 +01:00
										 |  |  | syn region  tclString		  start=+[^\\]"+ms=s+1  end=+"+ contains=@tclSpecialC,@tclVarRefC,tclEmbeddedStatement skip=+\\\\\|\\"+ | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " Line continuation is backslash immediately followed by newline. | 
					
						
							|  |  |  | syn match tclLineContinue '\\$' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if exists('g:tcl_warn_continuation') | 
					
						
							|  |  |  |     syn match tclNotLineContinue '\\\s\+$' | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | "integer number, or floating point number without a dot and with "f". | 
					
						
							|  |  |  | syn case ignore | 
					
						
							|  |  |  | syn match  tclNumber		"\<\d\+\(u\=l\=\|lu\|f\)\>" | 
					
						
							|  |  |  | "floating point number, with dot, optional exponent | 
					
						
							|  |  |  | syn match  tclNumber		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" | 
					
						
							|  |  |  | "floating point number, starting with a dot, optional exponent | 
					
						
							|  |  |  | syn match  tclNumber		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" | 
					
						
							|  |  |  | "floating point number, without dot, with exponent | 
					
						
							|  |  |  | syn match  tclNumber		"\<\d\+e[-+]\=\d\+[fl]\=\>" | 
					
						
							|  |  |  | "hex number | 
					
						
							|  |  |  | syn match  tclNumber		"0x[0-9a-f]\+\(u\=l\=\|lu\)\>" | 
					
						
							|  |  |  | "syn match  tclIdentifier	"\<[a-z_][a-z0-9_]*\>" | 
					
						
							|  |  |  | syn case match | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region  tclComment		start="^\s*\#" skip="\\$" end="$" contains=tclTodo | 
					
						
							|  |  |  | syn region  tclComment		start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-24 02:51:51 +01:00
										 |  |  | "syn match tclComment /^\s*\#.*$/ | 
					
						
							|  |  |  | "syn match tclComment /;\s*\#.*$/hs=s+1 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | "syn sync ccomment tclComment | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Define the default highlighting. | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " Only when an item doesn't have highlighting yet | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | hi def link tcltkSwitch		Special | 
					
						
							|  |  |  | hi def link tclExpand		Special | 
					
						
							|  |  |  | hi def link tclLabel		Label | 
					
						
							|  |  |  | hi def link tclConditional		Conditional | 
					
						
							|  |  |  | hi def link tclRepeat		Repeat | 
					
						
							|  |  |  | hi def link tclNumber		Number | 
					
						
							|  |  |  | hi def link tclError		Error | 
					
						
							|  |  |  | hi def link tclCommand		Statement | 
					
						
							|  |  |  | hi def link tclProcCommand		Type | 
					
						
							|  |  |  | hi def link tclString		String | 
					
						
							|  |  |  | hi def link tclComment		Comment | 
					
						
							|  |  |  | hi def link tclSpecial		Special | 
					
						
							|  |  |  | hi def link tclTodo		Todo | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " Below here are the commands and their options. | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link tcltkCommandColor	Statement | 
					
						
							|  |  |  | hi def link tcltkWidgetColor	Structure | 
					
						
							|  |  |  | hi def link tclLineContinue	WarningMsg | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | if exists('g:tcl_warn_continuation') | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link tclNotLineContinue	ErrorMsg | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | endif | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link tcltkStringSwitch	Special | 
					
						
							|  |  |  | hi def link tcltkArraySwitch	Special | 
					
						
							|  |  |  | hi def link tcltkLsortSwitch	Special | 
					
						
							|  |  |  | hi def link tcltkPackSwitch	Special | 
					
						
							|  |  |  | hi def link tcltkPackConfSwitch	Special | 
					
						
							|  |  |  | hi def link tcltkMaths		Special | 
					
						
							|  |  |  | hi def link tcltkNamespaceSwitch	Special | 
					
						
							|  |  |  | hi def link tcltkWidgetSwitch	Special | 
					
						
							|  |  |  | hi def link tcltkPackConfColor	Identifier | 
					
						
							|  |  |  | hi def link tclVarRef		Identifier | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "tcl" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-24 02:51:51 +01:00
										 |  |  | " vim: ts=8 noet nolist |