mirror of
https://github.com/vim/vim.git
synced 2025-11-13 22:54:27 -05:00
runtime(vim): Update base syntax, improve :@ highlighting
- Highlight :@ as a normal Ex command rather than something special. - Fix erroneous matching of the Ex command as a register variable. closes: #18624 Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
00e8452191
commit
842c7788a5
@@ -2,7 +2,7 @@
|
|||||||
" Language: Vim script
|
" Language: Vim script
|
||||||
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
|
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
|
||||||
" Doug Kearns <dougkearns@gmail.com>
|
" Doug Kearns <dougkearns@gmail.com>
|
||||||
" Last Change: 2025 Oct 09
|
" Last Change: 2025 Oct 22
|
||||||
" Former Maintainer: Charles E. Campbell
|
" Former Maintainer: Charles E. Campbell
|
||||||
|
|
||||||
" DO NOT CHANGE DIRECTLY.
|
" DO NOT CHANGE DIRECTLY.
|
||||||
@@ -246,7 +246,7 @@ syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vi
|
|||||||
syn case match
|
syn case match
|
||||||
|
|
||||||
" All vimCommands are contained by vimIsCommand. {{{2
|
" All vimCommands are contained by vimIsCommand. {{{2
|
||||||
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDefer,vimDelcommand,vimDelFunction,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimEval,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFiletype,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSyntime,vimSynColor,vimSynLink,vimTerminal,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimWincmd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl
|
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAt,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDefer,vimDelcommand,vimDelFunction,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimEval,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFiletype,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSyntime,vimSynColor,vimSynLink,vimTerminal,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimWincmd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl
|
||||||
syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
|
syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
|
||||||
syn match vimCmdSep "\\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,@vimFunc
|
syn match vimCmdSep "\\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,@vimFunc
|
||||||
syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1
|
syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1
|
||||||
@@ -1029,7 +1029,13 @@ syn match vimComFilter contained "|!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vi
|
|||||||
" Complex Repeats: (:h complex-repeat) {{{2
|
" Complex Repeats: (:h complex-repeat) {{{2
|
||||||
" ===============
|
" ===============
|
||||||
syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1
|
syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1
|
||||||
syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
|
|
||||||
|
" NOTE: :* as an alias for :@ is not supported, this is considered a :range,
|
||||||
|
" see :help cpo-star
|
||||||
|
syn match vimAtArg contained +@\@1<=[0-9a-z".=*+:@]+
|
||||||
|
syn match vimAt +@[0-9a-z".=*+:@]\ze\s*\%($\|[|"#]\)+ skipwhite nextgroup=vimCmdSep,vimComment,vim9Comment contains=vimAtArg
|
||||||
|
" Vim9: avoid LHS assignment mismatching of :@["#]
|
||||||
|
syn match vimAt +@\ze\s*\%($\||\|\s["#]\)+ skipwhite nextgroup=vimCmdSep,vimComment,vim9Comment
|
||||||
|
|
||||||
" Set command and associated set-options (vimOptions) with comment {{{2
|
" Set command and associated set-options (vimOptions) with comment {{{2
|
||||||
syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skipwhite nextgroup=vimSetBang,vimCmdSep,vimComment,vimSetArgs
|
syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skipwhite nextgroup=vimSetBang,vimCmdSep,vimComment,vimSetArgs
|
||||||
@@ -2309,6 +2315,8 @@ if !exists("skip_vim_syntax_inits")
|
|||||||
|
|
||||||
hi def link vimAbb vimCommand
|
hi def link vimAbb vimCommand
|
||||||
hi def link vimAddress vimMark
|
hi def link vimAddress vimMark
|
||||||
|
hi def link vimAt vimCommand
|
||||||
|
hi def link vimAtArg Special
|
||||||
hi def link vimAugroupBang vimBang
|
hi def link vimAugroupBang vimBang
|
||||||
hi def link vimAugroupError vimError
|
hi def link vimAugroupError vimError
|
||||||
hi def link vimAugroupKey vimCommand
|
hi def link vimAugroupKey vimCommand
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
@75
|
@75
|
||||||
@75
|
@75
|
||||||
|#+0#0000e05&| |S|T|A|R|T| |N|O|T| |M|A|T|C|H|E|D| +0#0000000&@55
|
|#+0#0000e05&| |S|T|A|R|T| |N|O|T| |M|A|T|C|H|E|D| +0#0000000&@55
|
||||||
|:|@| @72
|
|
||||||
|:|@+0#e000e06&@1| +0#0000000&@71
|
|
||||||
|:|N|e|x|t| @69
|
|:|N|e|x|t| @69
|
||||||
|:|X| @72
|
|:|X| @72
|
||||||
|#+0#0000e05&| |E|N|D| |N|O|T| |M|A|T|C|H|E|D| +0#0000000&@57
|
|#+0#0000e05&| |E|N|D| |N|O|T| |M|A|T|C|H|E|D| +0#0000000&@57
|
||||||
@@ -14,6 +12,8 @@
|
|||||||
|:| |h+0#af5f00255&|e|l|p| +0#0000000&@68
|
|:| |h+0#af5f00255&|e|l|p| +0#0000000&@68
|
||||||
@1|:+0#af5f00255&| +0#0000000&|h+0#00e0e07&|e|l|p| +0#0000000&|#+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@59
|
@1|:+0#af5f00255&| +0#0000000&|h+0#00e0e07&|e|l|p| +0#0000000&|#+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@59
|
||||||
@75
|
@75
|
||||||
|
|:|@+0#af5f00255&| +0#0000000&@72
|
||||||
|
@75
|
||||||
|:|a+0#af5f00255&|b@1|r|e|v|i|a|t|e| +0#0000000&@63
|
|:|a+0#af5f00255&|b@1|r|e|v|i|a|t|e| +0#0000000&@63
|
||||||
|:|a+0#af5f00255&|b|c|l|e|a|r| +0#0000000&@66
|
|:|a+0#af5f00255&|b|c|l|e|a|r| +0#0000000&@66
|
||||||
|:|a+0#af5f00255&|b|o|v|e|l|e|f|t| +0#0000000&@64
|
|:|a+0#af5f00255&|b|o|v|e|l|e|f|t| +0#0000000&@64
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
|:+0&#ffffff0| |h+0#af5f00255&|e|l|p| +0#0000000&@68
|
| +0&#ffffff0@74
|
||||||
@1|:+0#af5f00255&| +0#0000000&|h+0#00e0e07&|e|l|p| +0#0000000&|#+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@59
|
|:|@+0#af5f00255&| +0#0000000&@72
|
||||||
@75
|
@75
|
||||||
|:|a+0#af5f00255&|b@1|r|e|v|i|a|t|e| +0#0000000&@63
|
|:|a+0#af5f00255&|b@1|r|e|v|i|a|t|e| +0#0000000&@63
|
||||||
|:|a+0#af5f00255&|b|c|l|e|a|r| +0#0000000&@66
|
|:|a+0#af5f00255&|b|c|l|e|a|r| +0#0000000&@66
|
||||||
|
|||||||
20
runtime/syntax/testdir/dumps/vim_ex_at_00.dump
Normal file
20
runtime/syntax/testdir/dumps/vim_ex_at_00.dump
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
>"+0#0000e05#ffffff0| |V|i|m| |:|@| |c|o|m@1|a|n|d| +0#0000000&@58
|
||||||
|
@75
|
||||||
|
@75
|
||||||
|
|@+0#af5f00255&|0+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|1+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|2+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|3+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|4+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|5+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|6+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|7+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|8+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|9+0#e000e06&| +0#0000000&@72
|
||||||
|
@75
|
||||||
|
|@+0#af5f00255&|a+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|k+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|z+0#e000e06&| +0#0000000&@72
|
||||||
|
@75
|
||||||
|
|@+0#af5f00255&|"+0#e000e06&| +0#0000000&@72
|
||||||
|
@57|1|,|1| @10|T|o|p|
|
||||||
20
runtime/syntax/testdir/dumps/vim_ex_at_01.dump
Normal file
20
runtime/syntax/testdir/dumps/vim_ex_at_01.dump
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
| +0&#ffffff0@74
|
||||||
|
|@+0#af5f00255&|a+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|k+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|z+0#e000e06&| +0#0000000&@72
|
||||||
|
@75
|
||||||
|
>@+0#af5f00255&|"+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|.+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|=+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|*+0#e000e06&| +0#0000000&@72
|
||||||
|
|@+0#af5f00255&|++0#e000e06&| +0#0000000&@72
|
||||||
|
@75
|
||||||
|
|@+0#af5f00255&|:+0#e000e06&| +0#0000000&@72
|
||||||
|
@75
|
||||||
|
|"+0#0000e05&| |r|e|p|e|a|t|s| +0#0000000&@65
|
||||||
|
|@+0#af5f00255&| +0#0000000&@73
|
||||||
|
|@+0#af5f00255&|@+0#e000e06&| +0#0000000&@72
|
||||||
|
@75
|
||||||
|
|@+0#af5f00255&|a+0#e000e06&| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@59
|
||||||
|
|@+0#af5f00255&|a+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@62
|
||||||
|
@57|1|9|,|1| @9|2|7|%|
|
||||||
20
runtime/syntax/testdir/dumps/vim_ex_at_02.dump
Normal file
20
runtime/syntax/testdir/dumps/vim_ex_at_02.dump
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
|@+0#af5f00255#ffffff0|a+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@62
|
||||||
|
@75
|
||||||
|
@75
|
||||||
|
|d+0#af5f00255&|e|f| +0#0000000&|V|i|m|9|C|o|n|t|e|x|t|(+0#e000e06&|)| +0#0000000&@57
|
||||||
|
@2|:|@+0#af5f00255&|0+0#e000e06&| +0#0000000&@69
|
||||||
|
@2>:|@+0#af5f00255&|1+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|2+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|3+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|4+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|5+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|6+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|7+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|8+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|9+0#e000e06&| +0#0000000&@69
|
||||||
|
@75
|
||||||
|
@2|:|@+0#af5f00255&|a+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|k+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|z+0#e000e06&| +0#0000000&@69
|
||||||
|
@75
|
||||||
|
@57|3|7|,|3| @9|6|5|%|
|
||||||
20
runtime/syntax/testdir/dumps/vim_ex_at_03.dump
Normal file
20
runtime/syntax/testdir/dumps/vim_ex_at_03.dump
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
| +0&#ffffff0@74
|
||||||
|
@2|:|@+0#af5f00255&|"+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|.+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|=+0#e000e06&| +0#0000000&@69
|
||||||
|
@2|:|@+0#af5f00255&|*+0#e000e06&| +0#0000000&@69
|
||||||
|
@2>:|@+0#af5f00255&|++0#e000e06&| +0#0000000&@69
|
||||||
|
@75
|
||||||
|
@2|:|@+0#af5f00255&|:+0#e000e06&| +0#0000000&@69
|
||||||
|
@75
|
||||||
|
@2|#+0#0000e05&| |r|e|p|e|a|t|s| +0#0000000&@63
|
||||||
|
@2|:|@+0#af5f00255&| +0#0000000&@70
|
||||||
|
@2|:|@+0#af5f00255&|@+0#e000e06&| +0#0000000&@69
|
||||||
|
@75
|
||||||
|
@2|:|@+0#af5f00255&|a+0#e000e06&| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@56
|
||||||
|
@2|:|@+0#af5f00255&|a+0#e000e06&| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@59
|
||||||
|
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
|
||||||
|
@75
|
||||||
|
|~+0#4040ff13&| @73
|
||||||
|
|~| @73
|
||||||
|
| +0#0000000&@56|5@1|,|3| @9|B|o|t|
|
||||||
@@ -2,8 +2,6 @@
|
|||||||
@75
|
@75
|
||||||
@75
|
@75
|
||||||
|"+0#0000e05&| |S|T|A|R|T| |N|O|T| |M|A|T|C|H|E|D| +0#0000000&@55
|
|"+0#0000e05&| |S|T|A|R|T| |N|O|T| |M|A|T|C|H|E|D| +0#0000000&@55
|
||||||
|:|@| @72
|
|
||||||
|:|@+0#e000e06&@1| +0#0000000&@71
|
|
||||||
|:|N|e|x|t| @69
|
|:|N|e|x|t| @69
|
||||||
|:|P|r|i|n|t| @68
|
|:|P|r|i|n|t| @68
|
||||||
|:|X| @72
|
|:|X| @72
|
||||||
@@ -14,6 +12,8 @@
|
|||||||
|:| |h+0#af5f00255&|e|l|p| +0#0000000&@68
|
|:| |h+0#af5f00255&|e|l|p| +0#0000000&@68
|
||||||
@1|:+0#af5f00255&| +0#0000000&|h+0#00e0e07&|e|l|p| +0#0000000&|#| |F|I|X|M|E| @59
|
@1|:+0#af5f00255&| +0#0000000&|h+0#00e0e07&|e|l|p| +0#0000000&|#| |F|I|X|M|E| @59
|
||||||
@75
|
@75
|
||||||
|
|:|@+0#af5f00255&| +0#0000000&@72
|
||||||
|
@75
|
||||||
|:+0#af5f00255&|a|p@1|e|n|d| +0#0000000&@67
|
|:+0#af5f00255&|a|p@1|e|n|d| +0#0000000&@67
|
||||||
| +0#e000002&@3|t|e|x|t| +0#0000000&@66
|
| +0#e000002&@3|t|e|x|t| +0#0000000&@66
|
||||||
|.+0#af5f00255&| +0#0000000&@73
|
|.+0#af5f00255&| +0#0000000&@73
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
|:+0&#ffffff0| |h+0#af5f00255&|e|l|p| +0#0000000&@68
|
| +0&#ffffff0@74
|
||||||
@1|:+0#af5f00255&| +0#0000000&|h+0#00e0e07&|e|l|p| +0#0000000&|#| |F|I|X|M|E| @59
|
|:|@+0#af5f00255&| +0#0000000&@72
|
||||||
@75
|
@75
|
||||||
|:+0#af5f00255&|a|p@1|e|n|d| +0#0000000&@67
|
|:+0#af5f00255&|a|p@1|e|n|d| +0#0000000&@67
|
||||||
| +0#e000002&@3|t|e|x|t| +0#0000000&@66
|
| +0#e000002&@3|t|e|x|t| +0#0000000&@66
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ vim9script
|
|||||||
|
|
||||||
|
|
||||||
# START NOT MATCHED
|
# START NOT MATCHED
|
||||||
:@
|
|
||||||
:@@
|
|
||||||
:Next
|
:Next
|
||||||
:X
|
:X
|
||||||
# END NOT MATCHED
|
# END NOT MATCHED
|
||||||
@@ -14,6 +12,8 @@ vim9script
|
|||||||
: help
|
: help
|
||||||
: help # FIXME
|
: help # FIXME
|
||||||
|
|
||||||
|
:@
|
||||||
|
|
||||||
:abbreviate
|
:abbreviate
|
||||||
:abclear
|
:abclear
|
||||||
:aboveleft
|
:aboveleft
|
||||||
|
|||||||
66
runtime/syntax/testdir/input/vim_ex_at.vim
Normal file
66
runtime/syntax/testdir/input/vim_ex_at.vim
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
" Vim :@ command
|
||||||
|
|
||||||
|
|
||||||
|
@0
|
||||||
|
@1
|
||||||
|
@2
|
||||||
|
@3
|
||||||
|
@4
|
||||||
|
@5
|
||||||
|
@6
|
||||||
|
@7
|
||||||
|
@8
|
||||||
|
@9
|
||||||
|
|
||||||
|
@a
|
||||||
|
@k
|
||||||
|
@z
|
||||||
|
|
||||||
|
@"
|
||||||
|
@.
|
||||||
|
@=
|
||||||
|
@*
|
||||||
|
@+
|
||||||
|
|
||||||
|
@:
|
||||||
|
|
||||||
|
" repeats
|
||||||
|
@
|
||||||
|
@@
|
||||||
|
|
||||||
|
@a | echo "..."
|
||||||
|
@a " comment
|
||||||
|
|
||||||
|
|
||||||
|
def Vim9Context()
|
||||||
|
:@0
|
||||||
|
:@1
|
||||||
|
:@2
|
||||||
|
:@3
|
||||||
|
:@4
|
||||||
|
:@5
|
||||||
|
:@6
|
||||||
|
:@7
|
||||||
|
:@8
|
||||||
|
:@9
|
||||||
|
|
||||||
|
:@a
|
||||||
|
:@k
|
||||||
|
:@z
|
||||||
|
|
||||||
|
:@"
|
||||||
|
:@.
|
||||||
|
:@=
|
||||||
|
:@*
|
||||||
|
:@+
|
||||||
|
|
||||||
|
:@:
|
||||||
|
|
||||||
|
# repeats
|
||||||
|
:@
|
||||||
|
:@@
|
||||||
|
|
||||||
|
:@a | echo "..."
|
||||||
|
:@a # comment
|
||||||
|
enddef
|
||||||
|
|
||||||
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
|
|
||||||
" START NOT MATCHED
|
" START NOT MATCHED
|
||||||
:@
|
|
||||||
:@@
|
|
||||||
:Next
|
:Next
|
||||||
:Print
|
:Print
|
||||||
:X
|
:X
|
||||||
@@ -14,6 +12,8 @@
|
|||||||
: help
|
: help
|
||||||
: help # FIXME
|
: help # FIXME
|
||||||
|
|
||||||
|
:@
|
||||||
|
|
||||||
:append
|
:append
|
||||||
text
|
text
|
||||||
.
|
.
|
||||||
|
|||||||
@@ -300,7 +300,7 @@ syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vi
|
|||||||
syn case match
|
syn case match
|
||||||
|
|
||||||
" All vimCommands are contained by vimIsCommand. {{{2
|
" All vimCommands are contained by vimIsCommand. {{{2
|
||||||
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDefer,vimDelcommand,vimDelFunction,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimEval,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFiletype,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSyntime,vimSynColor,vimSynLink,vimTerminal,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimWincmd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl
|
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAt,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDefer,vimDelcommand,vimDelFunction,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimEval,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFiletype,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSyntime,vimSynColor,vimSynLink,vimTerminal,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimWincmd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl
|
||||||
syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
|
syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
|
||||||
syn match vimCmdSep "\\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,@vimFunc
|
syn match vimCmdSep "\\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,@vimFunc
|
||||||
syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1
|
syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1
|
||||||
@@ -1085,7 +1085,13 @@ syn match vimComFilter contained "|!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vi
|
|||||||
" Complex Repeats: (:h complex-repeat) {{{2
|
" Complex Repeats: (:h complex-repeat) {{{2
|
||||||
" ===============
|
" ===============
|
||||||
syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1
|
syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1
|
||||||
syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
|
|
||||||
|
" NOTE: :* as an alias for :@ is not supported, this is considered a :range,
|
||||||
|
" see :help cpo-star
|
||||||
|
syn match vimAtArg contained +@\@1<=[0-9a-z".=*+:@]+
|
||||||
|
syn match vimAt +@[0-9a-z".=*+:@]\ze\s*\%($\|[|"#]\)+ skipwhite nextgroup=vimCmdSep,vimComment,vim9Comment contains=vimAtArg
|
||||||
|
" Vim9: avoid LHS assignment mismatching of :@["#]
|
||||||
|
syn match vimAt +@\ze\s*\%($\||\|\s["#]\)+ skipwhite nextgroup=vimCmdSep,vimComment,vim9Comment
|
||||||
|
|
||||||
" Set command and associated set-options (vimOptions) with comment {{{2
|
" Set command and associated set-options (vimOptions) with comment {{{2
|
||||||
syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skipwhite nextgroup=vimSetBang,vimCmdSep,vimComment,vimSetArgs
|
syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skipwhite nextgroup=vimSetBang,vimCmdSep,vimComment,vimSetArgs
|
||||||
@@ -2371,6 +2377,8 @@ if !exists("skip_vim_syntax_inits")
|
|||||||
|
|
||||||
hi def link vimAbb vimCommand
|
hi def link vimAbb vimCommand
|
||||||
hi def link vimAddress vimMark
|
hi def link vimAddress vimMark
|
||||||
|
hi def link vimAt vimCommand
|
||||||
|
hi def link vimAtArg Special
|
||||||
hi def link vimAugroupBang vimBang
|
hi def link vimAugroupBang vimBang
|
||||||
hi def link vimAugroupError vimError
|
hi def link vimAugroupError vimError
|
||||||
hi def link vimAugroupKey vimCommand
|
hi def link vimAugroupKey vimCommand
|
||||||
|
|||||||
Reference in New Issue
Block a user