Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Vim syntax file |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 2 | " Language: Tcl/Tk |
| 3 | " Maintainer: Taylor Venable <taylor@metasyntax.net> |
| 4 | " (previously Brett Cannon <brett@python.org>) |
Bram Moolenaar | c81e5e7 | 2007-05-05 18:24:42 +0000 | [diff] [blame] | 5 | " (previously Dean Copsey <copsey@cs.ucdavis.edu>) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 6 | " (previously Matt Neumann <mattneu@purpleturtle.com>) |
| 7 | " (previously Allan Kelly <allan@fruitloaf.co.uk>) |
| 8 | " Original: Robin Becker <robin@jessikat.demon.co.uk> |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 9 | " Last Change: 2014-02-12 |
| 10 | " Version: 1.14 |
| 11 | " URL: http://bitbucket.org/taylor_venable/metasyntax/src/tip/Config/vim/syntax/tcl.vim |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 12 | |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 13 | " quit when a syntax file was already loaded |
| 14 | if exists("b:current_syntax") |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 15 | finish |
| 16 | endif |
| 17 | |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 18 | " Basic Tcl commands: http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm |
| 19 | syn keyword tclCommand after append array bgerror binary cd chan clock close concat |
| 20 | syn keyword tclCommand dde dict encoding eof error eval exec exit expr fblocked |
| 21 | syn keyword tclCommand fconfigure fcopy file fileevent flush format gets glob |
| 22 | syn keyword tclCommand global history http incr info interp join lappend lassign |
| 23 | syn keyword tclCommand lindex linsert list llength lmap load lrange lrepeat |
| 24 | syn keyword tclCommand lreplace lreverse lsearch lset lsort memory my namespace |
| 25 | syn keyword tclCommand next nextto open package pid puts pwd read refchan regexp |
| 26 | syn keyword tclCommand registry regsub rename scan seek self set socket source |
| 27 | syn keyword tclCommand split string subst tell time trace unknown unload unset |
| 28 | syn keyword tclCommand update uplevel upvar variable vwait |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 29 | |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 30 | " The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.6/TclCmd/library.htm |
| 31 | syn keyword tclCommand auto_execok auto_import auto_load auto_mkindex auto_reset |
| 32 | syn keyword tclCommand auto_qualify tcl_findLibrary parray tcl_endOfWord |
| 33 | syn keyword tclCommand tcl_startOfNextWord tcl_startOfPreviousWord |
| 34 | syn keyword tclCommand tcl_wordBreakAfter tcl_wordBreakBefore |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 35 | |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 36 | " Global variables used by Tcl: http://www.tcl.tk/man/tcl8.6/TclCmd/tclvars.htm |
| 37 | syn keyword tclVars auto_path env errorCode errorInfo tcl_library tcl_patchLevel |
| 38 | syn keyword tclVars tcl_pkgPath tcl_platform tcl_precision tcl_rcFileName |
| 39 | syn keyword tclVars tcl_traceCompile tcl_traceExec tcl_wordchars |
| 40 | syn keyword tclVars tcl_nonwordchars tcl_version argc argv argv0 tcl_interactive |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 41 | |
| 42 | " Strings which expr accepts as boolean values, aside from zero / non-zero. |
| 43 | syn keyword tclBoolean true false on off yes no |
| 44 | |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 45 | syn keyword tclProcCommand apply coroutine proc return tailcall yield yieldto |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 46 | syn keyword tclConditional if then else elseif switch |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 47 | syn keyword tclConditional catch try throw finally |
| 48 | syn keyword tclLabel default |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 49 | syn keyword tclRepeat while for foreach break continue |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 50 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 51 | syn keyword tcltkSwitch contained insert create polygon fill outline tag |
| 52 | |
| 53 | " WIDGETS |
| 54 | " commands associated with widgets |
| 55 | syn keyword tcltkWidgetSwitch contained background highlightbackground insertontime cget |
| 56 | syn keyword tcltkWidgetSwitch contained selectborderwidth borderwidth highlightcolor insertwidth |
| 57 | syn keyword tcltkWidgetSwitch contained selectforeground cursor highlightthickness padx setgrid |
| 58 | syn keyword tcltkWidgetSwitch contained exportselection insertbackground pady takefocus |
| 59 | syn keyword tcltkWidgetSwitch contained font insertborderwidth relief xscrollcommand |
| 60 | syn keyword tcltkWidgetSwitch contained foreground insertofftime selectbackground yscrollcommand |
| 61 | syn keyword tcltkWidgetSwitch contained height spacing1 spacing2 spacing3 |
| 62 | syn keyword tcltkWidgetSwitch contained state tabs width wrap |
| 63 | " button |
| 64 | syn keyword tcltkWidgetSwitch contained command default |
| 65 | " canvas |
| 66 | syn keyword tcltkWidgetSwitch contained closeenough confine scrollregion xscrollincrement yscrollincrement orient |
| 67 | " checkbutton, radiobutton |
| 68 | syn keyword tcltkWidgetSwitch contained indicatoron offvalue onvalue selectcolor selectimage state variable |
| 69 | " entry, frame |
| 70 | syn keyword tcltkWidgetSwitch contained show class colormap container visual |
| 71 | " listbox, menu |
| 72 | syn keyword tcltkWidgetSwitch contained selectmode postcommand selectcolor tearoff tearoffcommand title type |
| 73 | " menubutton, message |
| 74 | syn keyword tcltkWidgetSwitch contained direction aspect justify |
| 75 | " scale |
| 76 | syn keyword tcltkWidgetSwitch contained bigincrement digits from length resolution showvalue sliderlength sliderrelief tickinterval to |
| 77 | " scrollbar |
| 78 | syn keyword tcltkWidgetSwitch contained activerelief elementborderwidth |
| 79 | " image |
| 80 | syn keyword tcltkWidgetSwitch contained delete names types create |
| 81 | " variable reference |
| 82 | " ::optional::namespaces |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 83 | syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_]*::\)*\)\a[[:alnum:]_]*" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 84 | " ${...} may contain any character except '}' |
| 85 | syn match tclVarRef "${[^}]*}" |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 86 | |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 87 | " Used to facilitate hack to utilize string background for certain color |
| 88 | " schemes, e.g. inkpot and lettuce. |
| 89 | syn cluster tclVarRefC add=tclVarRef |
| 90 | syn cluster tclSpecialC add=tclSpecial |
| 91 | |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 92 | " The syntactic unquote-splicing replacement for [expand]. |
| 93 | syn match tclExpand '\s{\*}' |
| 94 | syn match tclExpand '^{\*}' |
| 95 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 96 | " menu, mane add |
| 97 | syn keyword tcltkWidgetSwitch contained active end last none cascade checkbutton command radiobutton separator |
| 98 | syn keyword tcltkWidgetSwitch contained activebackground actveforeground accelerator background bitmap columnbreak |
| 99 | syn keyword tcltkWidgetSwitch contained font foreground hidemargin image indicatoron label menu offvalue onvalue |
| 100 | syn keyword tcltkWidgetSwitch contained selectcolor selectimage state underline value variable |
| 101 | syn keyword tcltkWidgetSwitch contained add clone configure delete entrycget entryconfigure index insert invoke |
| 102 | syn keyword tcltkWidgetSwitch contained post postcascade type unpost yposition activate |
| 103 | "syn keyword tcltkWidgetSwitch contained |
| 104 | "syn match tcltkWidgetSwitch contained |
| 105 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<button\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 106 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<scale\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 107 | |
| 108 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<canvas\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 109 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<checkbutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 110 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<entry\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 111 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<frame\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 112 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<image\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 113 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<listbox\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 114 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<menubutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 115 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<message\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 116 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<radiobutton\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 117 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="\<scrollbar\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 118 | " These words are dual purpose. |
| 119 | " match switches |
| 120 | "syn match tcltkWidgetSwitch contained "-text"hs=s+1 |
| 121 | syn match tcltkWidgetSwitch contained "-text\(var\)\?"hs=s+1 |
| 122 | syn match tcltkWidgetSwitch contained "-menu"hs=s+1 |
| 123 | syn match tcltkWidgetSwitch contained "-label"hs=s+1 |
| 124 | " match commands - 2 lines for pretty match. |
| 125 | "variable |
| 126 | " Special case - If a number follows a variable region, it must be at the end of |
| 127 | " the pattern, by definition. Therefore, (1) either include a number as the region |
| 128 | " end and exclude tclNumber from the contains list, or (2) make variable |
| 129 | " keepend. As (1) would put variable out of step with everything else, use (2). |
| 130 | syn region tcltkCommand matchgroup=tcltkCommandColor start="^\<variable\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tclString,tclNumber,tclVarRef,tcltkCommand |
| 131 | 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 |
| 132 | " menu |
| 133 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<menu\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 134 | 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 |
| 135 | " label |
| 136 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<label\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef |
| 137 | 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 |
| 138 | " text |
| 139 | syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\<text\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidget,tcltkWidgetSwitch,tcltkSwitch,tclNumber,tclVarRef,tclString |
| 140 | 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 |
| 141 | |
| 142 | " This isn't contained (I don't think) so it's OK to just associate with the Color group. |
| 143 | " TODO: This could be wrong. |
| 144 | syn keyword tcltkWidgetColor toplevel |
| 145 | |
| 146 | |
| 147 | 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 |
| 148 | syn region tcltkPackConf matchgroup=tcltkPackConfColor start="\<cget\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tcltkPackConfSwitch,tclNumber,tclVarRef |
| 149 | |
| 150 | |
| 151 | " NAMESPACE |
| 152 | " commands associated with namespace |
| 153 | syn keyword tcltkNamespaceSwitch contained children code current delete eval |
| 154 | syn keyword tcltkNamespaceSwitch contained export forget import inscope origin |
| 155 | syn keyword tcltkNamespaceSwitch contained parent qualifiers tail which command variable |
| 156 | syn region tcltkCommand matchgroup=tcltkCommandColor start="\<namespace\>" matchgroup=NONE skip="^\s*$" end="{\|}\|]\|\"\|[^\\]*\s*$"me=e-1 contains=tclLineContinue,tcltkNamespaceSwitch |
| 157 | |
| 158 | " EXPR |
| 159 | " commands associated with expr |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 160 | syn keyword tcltkMaths contained abs acos asin atan atan2 bool ceil cos cosh double entier |
| 161 | syn keyword tcltkMaths contained exp floor fmod hypot int isqrt log log10 max min pow rand |
| 162 | syn keyword tcltkMaths contained round sin sinh sqrt srand tan tanh wide |
| 163 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 164 | 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 |
| 165 | |
| 166 | " format |
| 167 | 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 |
| 168 | |
| 169 | " PACK |
| 170 | " commands associated with pack |
| 171 | syn keyword tcltkPackSwitch contained forget info propogate slaves |
| 172 | syn keyword tcltkPackConfSwitch contained after anchor before expand fill in ipadx ipady padx pady side |
| 173 | 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 |
| 174 | |
| 175 | " STRING |
| 176 | " commands associated with string |
| 177 | syn keyword tcltkStringSwitch contained compare first index last length match range tolower toupper trim trimleft trimright wordstart wordend |
| 178 | syn region tcltkCommand matchgroup=tcltkCommandColor start="\<string\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkStringSwitch,tclNumber,tclVarRef,tclString,tcltkCommand |
| 179 | |
| 180 | " ARRAY |
| 181 | " commands associated with array |
| 182 | syn keyword tcltkArraySwitch contained anymore donesearch exists get names nextelement size startsearch set |
| 183 | " match from command name to ] or EOL |
| 184 | syn region tcltkCommand matchgroup=tcltkCommandColor start="\<array\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkArraySwitch,tclNumber,tclVarRef,tclString,tcltkCommand |
| 185 | |
| 186 | " LSORT |
| 187 | " switches for lsort |
| 188 | syn keyword tcltkLsortSwitch contained ascii dictionary integer real command increasing decreasing index |
| 189 | " match from command name to ] or EOL |
| 190 | syn region tcltkCommand matchgroup=tcltkCommandColor start="\<lsort\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkLsortSwitch,tclNumber,tclVarRef,tclString,tcltkCommand |
| 191 | |
| 192 | syn keyword tclTodo contained TODO |
| 193 | |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 194 | " Sequences which are backslash-escaped: http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M16 |
| 195 | " Octal, hexadecimal, unicode codepoints, and the classics. |
| 196 | " Tcl takes as many valid characters in a row as it can, so \xAZ in a string is newline followed by 'Z'. |
| 197 | syn match tclSpecial contained '\\\([0-7]\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)' |
| 198 | syn match tclSpecial contained '\\[\[\]\{\}\"\$]' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 199 | |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 200 | " Command appearing inside another command or inside a string. |
| 201 | syn region tclEmbeddedStatement start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 202 | " A string needs the skip argument as it may legitimately contain \". |
| 203 | " Match at start of line |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 204 | syn region tclString start=+^"+ end=+"+ contains=@tclSpecialC skip=+\\\\\|\\"+ |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 205 | "Match all other legal strings. |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 206 | syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=@tclSpecialC,@tclVarRefC,tclEmbeddedStatement skip=+\\\\\|\\"+ |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 207 | |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 208 | " Line continuation is backslash immediately followed by newline. |
| 209 | syn match tclLineContinue '\\$' |
| 210 | |
| 211 | if exists('g:tcl_warn_continuation') |
| 212 | syn match tclNotLineContinue '\\\s\+$' |
| 213 | endif |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 214 | |
| 215 | "integer number, or floating point number without a dot and with "f". |
| 216 | syn case ignore |
| 217 | syn match tclNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" |
| 218 | "floating point number, with dot, optional exponent |
| 219 | syn match tclNumber "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" |
| 220 | "floating point number, starting with a dot, optional exponent |
| 221 | syn match tclNumber "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" |
| 222 | "floating point number, without dot, with exponent |
| 223 | syn match tclNumber "\<\d\+e[-+]\=\d\+[fl]\=\>" |
| 224 | "hex number |
| 225 | syn match tclNumber "0x[0-9a-f]\+\(u\=l\=\|lu\)\>" |
| 226 | "syn match tclIdentifier "\<[a-z_][a-z0-9_]*\>" |
| 227 | syn case match |
| 228 | |
| 229 | syn region tclComment start="^\s*\#" skip="\\$" end="$" contains=tclTodo |
| 230 | syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo |
| 231 | |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 232 | "syn match tclComment /^\s*\#.*$/ |
| 233 | "syn match tclComment /;\s*\#.*$/hs=s+1 |
| 234 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 235 | "syn sync ccomment tclComment |
| 236 | |
| 237 | " Define the default highlighting. |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 238 | " Only when an item doesn't have highlighting yet |
| 239 | command -nargs=+ HiLink hi def link <args> |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 240 | |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 241 | HiLink tcltkSwitch Special |
| 242 | HiLink tclExpand Special |
| 243 | HiLink tclLabel Label |
| 244 | HiLink tclConditional Conditional |
| 245 | HiLink tclRepeat Repeat |
| 246 | HiLink tclNumber Number |
| 247 | HiLink tclError Error |
| 248 | HiLink tclCommand Statement |
| 249 | HiLink tclProcCommand Type |
| 250 | HiLink tclString String |
| 251 | HiLink tclComment Comment |
| 252 | HiLink tclSpecial Special |
| 253 | HiLink tclTodo Todo |
| 254 | " Below here are the commands and their options. |
| 255 | HiLink tcltkCommandColor Statement |
| 256 | HiLink tcltkWidgetColor Structure |
| 257 | HiLink tclLineContinue WarningMsg |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 258 | if exists('g:tcl_warn_continuation') |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 259 | HiLink tclNotLineContinue ErrorMsg |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 260 | endif |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 261 | HiLink tcltkStringSwitch Special |
| 262 | HiLink tcltkArraySwitch Special |
| 263 | HiLink tcltkLsortSwitch Special |
| 264 | HiLink tcltkPackSwitch Special |
| 265 | HiLink tcltkPackConfSwitch Special |
| 266 | HiLink tcltkMaths Special |
| 267 | HiLink tcltkNamespaceSwitch Special |
| 268 | HiLink tcltkWidgetSwitch Special |
| 269 | HiLink tcltkPackConfColor Identifier |
| 270 | HiLink tclVarRef Identifier |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 271 | |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 272 | delcommand HiLink |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 273 | |
| 274 | let b:current_syntax = "tcl" |
| 275 | |
Bram Moolenaar | 251835e | 2014-02-24 02:51:51 +0100 | [diff] [blame] | 276 | " vim: ts=8 noet nolist |