mirror of
https://github.com/neovim/neovim.git
synced 2026-01-03 01:46:31 +10:00
This reverts commits:
- 6b652a785033fd4164e049492a7327c1ed7c3e5f
- 2f689d5abde0ccddca9e20d8c93a0299bd054e32
- a025a46d4169587145fb54f04af349cd05cb6122
Several email addresses that are known to be valid caused bounces
due to an issue with my email setup. The previous commits incorrectly
marked these addresses as invalid. So revert the whole thing again.
62d8f3dab5
N/A patch:
vim-patch:2f689d5: runtime: mark more invalid email addresses
Co-authored-by: Christian Brabandt <cb@256bit.org>
275 lines
17 KiB
VimL
275 lines
17 KiB
VimL
" Vim syntax file
|
|
" Language: Tcl/Tk
|
|
" Maintainer: Taylor Venable <taylor@metasyntax.net>
|
|
" (previously Brett Cannon <brett@python.org>)
|
|
" (previously Dean Copsey <copsey@cs.ucdavis.edu>)
|
|
" (previously Matt Neumann <mattneu@purpleturtle.com>)
|
|
" (previously Allan Kelly <allan@fruitloaf.co.uk>)
|
|
" Original: Robin Becker <robin@jessikat.demon.co.uk>
|
|
" Last Change: 2021 Nov 16
|
|
" Version: 1.14 plus improvements from PR #8948
|
|
" URL: (removed, no longer worked)
|
|
|
|
" quit when a syntax file was already loaded
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
" 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
|
|
|
|
" Strings which expr accepts as boolean values, aside from zero / non-zero.
|
|
syn keyword tclBoolean true false on off yes no
|
|
|
|
syn keyword tclProcCommand apply coroutine proc return tailcall yield yieldto
|
|
syn keyword tclConditional if then else elseif switch
|
|
syn keyword tclConditional catch try throw finally
|
|
syn keyword tclLabel default
|
|
syn keyword tclRepeat while for foreach break continue
|
|
|
|
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
|
|
syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_]*::\)*\)\a[[:alnum:]_]*"
|
|
" ${...} may contain any character except '}'
|
|
syn match tclVarRef "${[^}]*}"
|
|
|
|
" 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
|
|
|
|
" The syntactic unquote-splicing replacement for [expand].
|
|
syn match tclExpand '\s{\*}'
|
|
syn match tclExpand '^{\*}'
|
|
|
|
" 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
|
|
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
|
|
|
|
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 propagate 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
|
|
|
|
" 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 '\\\(\o\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)'
|
|
syn match tclSpecial contained '\\[\[\]\{\}\"\$]'
|
|
|
|
" Command appearing inside another command or inside a string.
|
|
syn region tclEmbeddedStatement start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement
|
|
" A string needs the skip argument as it may legitimately contain \".
|
|
" Match at start of line
|
|
syn region tclString start=+^"+ end=+"+ contains=@tclSpecialC,@Spell skip=+\\\\\|\\"+
|
|
"Match all other legal strings.
|
|
syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=@tclSpecialC,@tclVarRefC,tclEmbeddedStatement,@Spell skip=+\\\\\|\\"+
|
|
|
|
" Line continuation is backslash immediately followed by newline.
|
|
syn match tclLineContinue '\\$'
|
|
|
|
if exists('g:tcl_warn_continuation')
|
|
syn match tclNotLineContinue '\\\s\+$'
|
|
endif
|
|
|
|
"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\x\+\(u\=l\=\|lu\)\>"
|
|
"syn match tclIdentifier "\<\h\w*\>"
|
|
syn case match
|
|
|
|
syn region tclComment start="^\s*\#" skip="\\$" end="$" contains=tclTodo,@Spell
|
|
syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo,@Spell
|
|
|
|
"syn match tclComment /^\s*\#.*$/
|
|
"syn match tclComment /;\s*\#.*$/hs=s+1
|
|
|
|
"syn sync ccomment tclComment
|
|
|
|
" Define the default highlighting.
|
|
" Only when an item doesn't have highlighting yet
|
|
|
|
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
|
|
" Below here are the commands and their options.
|
|
hi def link tcltkCommandColor Statement
|
|
hi def link tcltkWidgetColor Structure
|
|
hi def link tclLineContinue WarningMsg
|
|
if exists('g:tcl_warn_continuation')
|
|
hi def link tclNotLineContinue ErrorMsg
|
|
endif
|
|
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
|
|
|
|
|
|
let b:current_syntax = "tcl"
|
|
|
|
" vim: ts=8 noet nolist
|