" Vim syntax file " Language: Tcl/Tk " Maintainer: Dean Copsey " (previously Matt Neumann ) " (previously Allan Kelly ) " Original: Robin Becker " Last Change: 2004 May 16 " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif " Command substitution. syn region tclCommandSub matchgroup=tclCmdSubRegion start="\(\(^\|[^\\]\)\(\\\\\)*\)\@<=\[" end="\(\(^\|[^\\]\)\(\\\\\)*\)\@<=\]" contains=@tclCommandSubList " variable reference " ::optional::namespaces syn match tclVarRef "$[a-zA-Z0-9_:]\+" " ${...} may contain any character except '}' syn match tclVarRef "${[^}]*}" " String and Character constants " Highlight special characters (those which have a backslash) differently syn match tclSpecial "\\\d\d\d\=\|\\." " A string needs the skip argument as it may legitimately contain \". " Match at start of line syn region tclString start=+^"+ end=+"+ skip=+\\\\\|\\"+ contains=@tclStringList "Match all other legal strings. syn region tclString start=+[^\\]"+ms=s+1 end=+"+ skip=+\\\\\|\\"+ contains=@tclStringList syn match tclLineContinue "\\\s*$" "integer number, or floating point number without a dot and with "f". syn case ignore syn match tclNumber "-\?\<\d\+\(u\=l\=\|lu\|f\)\>" contains=tclCommandSub "floating point number, with dot, optional exponent syn match tclNumber "-\?\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" contains=tclCommandSub "floating point number, starting with a dot, optional exponent syn match tclNumber "-\?\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" contains=tclCommandSub "floating point number, without dot, with exponent syn match tclNumber "-\?\<\d\+e[-+]\=\d\+[fl]\=\>" contains=tclCommandSub "hex number syn match tclNumber "-\?0x[0-9a-f]\+\(u\=l\=\|lu\)\>" contains=tclCommandSub syn case match syn keyword tclTodo contained TODO XXX FIXME NOTE syn region tclComment start="^\s*\#" skip="\\$" end="$" contains=tclTodo syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo syn cluster tclCommandSubList contains=tclCommandSub,tclVarRef,tclSpecial,tclString,tclLineContinue,tclNumber,tclComment syn cluster tclStringList contains=tclCommandSub,tclVarRef,tclSpecial,tclLineContinue "syn sync ccomment tclComment " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_tcl_syntax_inits") if version < 508 let did_tcl_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink tclCommandSub Normal HiLink tclCmdSubRegion Statement HiLink tclNumber Number HiLink tclString String HiLink tclComment Comment HiLink tclSpecial Special HiLink tclTodo Todo HiLink tclLineContinue WarningMsg HiLink tclVarRef Type " Identifier delcommand HiLink endif let b:current_syntax = "tcl" " vim: ts=8