diff options
author | dkearns <dougkearns@gmail.com> | 2024-02-12 03:13:34 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-11 17:13:34 +0100 |
commit | b614b284ee06523511308f8381b47db34d921d39 (patch) | |
tree | b8abe5dd65e20bd7aef5909dd4897bddeb457e38 | |
parent | be156a31c5400eb12025e480c477b1df88244801 (diff) |
runtime(vim): Update syntax file (#14009)
- allow comments after :highight commands
- match the bang in a :highlight[!] command
- highlight the bang in :map[!], :menu[!] and :unlet[!] with vimOper
like all other commands
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
-rw-r--r-- | runtime/syntax/testdir/dumps/vim_map_00.dump | 20 | ||||
-rw-r--r-- | runtime/syntax/testdir/dumps/vim_map_99.dump | 20 | ||||
-rw-r--r-- | runtime/syntax/testdir/input/vim_map.vim | 9 | ||||
-rw-r--r-- | runtime/syntax/vim.vim | 43 |
4 files changed, 74 insertions, 18 deletions
diff --git a/runtime/syntax/testdir/dumps/vim_map_00.dump b/runtime/syntax/testdir/dumps/vim_map_00.dump new file mode 100644 index 0000000000..d3a290e9b6 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_map_00.dump @@ -0,0 +1,20 @@ +>"+0#0000e05#ffffff0| |V|i|m| |m|a|p| |c|o|m@1|a|n|d|s| +0#0000000&@56 +@75 +|m+0#af5f00255&|a|p|!| +0#0000000&@70 +|m+0#af5f00255&|a|p|!| +0#0000000&|l|h|s| |r|h|s| @62 +|m+0#af5f00255&|a|p| +0#0000000&@71 +|m+0#af5f00255&|a|p| +0#0000000&|l|h|s| |r|h|s| @63 +@75 +|c+0#af5f00255&|a|l@1| +0#0000000&|m+0#00e0e07&|a|p|(+0#e000e06&|l+0#00e0e07&|i|s|t|,+0#0000000&| |'+0#e000002&|v|:|v|a|l|'|)+0#e000e06&| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|m+0#00e0e07&|a|p| +0#0000000&|(+0#e000e06&|l+0#00e0e07&|i|s|t|,+0#0000000&| |'+0#e000002&|v|:|v|a|l|'|)+0#e000e06&| +0#0000000&@50 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|"+0#0000000&|i|n|p|u|t|/|v|i|m|_|m|a|p|.|v|i|m|"| |9|L|,| |1|0|5|B| @28|1|,|1| @10|A|l@1| diff --git a/runtime/syntax/testdir/dumps/vim_map_99.dump b/runtime/syntax/testdir/dumps/vim_map_99.dump new file mode 100644 index 0000000000..f8710b9538 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_map_99.dump @@ -0,0 +1,20 @@ +|"+0#0000e05#ffffff0| |V|i|m| |m|a|p| |c|o|m@1|a|n|d|s| +0#0000000&@56 +@75 +|m+0#af5f00255&|a|p|!| +0#0000000&@70 +|m+0#af5f00255&|a|p|!| +0#0000000&|l|h|s| |r|h|s| @62 +|m+0#af5f00255&|a|p| +0#0000000&@71 +|m+0#af5f00255&|a|p| +0#0000000&|l|h|s| |r|h|s| @63 +@75 +|c+0#af5f00255&|a|l@1| +0#0000000&|m+0#00e0e07&|a|p|(+0#e000e06&|l+0#00e0e07&|i|s|t|,+0#0000000&| |'+0#e000002&|v|:|v|a|l|'|)+0#e000e06&| +0#0000000&@51 +>c+0#af5f00255&|a|l@1| +0#0000000&|m+0#00e0e07&|a|p| +0#0000000&|(+0#e000e06&|l+0#00e0e07&|i|s|t|,+0#0000000&| |'+0#e000002&|v|:|v|a|l|'|)+0#e000e06&| +0#0000000&@50 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|"+0#0000000&|i|n|p|u|t|/|v|i|m|_|m|a|p|.|v|i|m|"| |9|L|,| |1|0|5|B| @28|9|,|1| @10|A|l@1| diff --git a/runtime/syntax/testdir/input/vim_map.vim b/runtime/syntax/testdir/input/vim_map.vim new file mode 100644 index 0000000000..7c73b996f4 --- /dev/null +++ b/runtime/syntax/testdir/input/vim_map.vim @@ -0,0 +1,9 @@ +" Vim map commands + +map! +map! lhs rhs +map +map lhs rhs + +call map(list, 'v:val') +call map (list, 'v:val') diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index e9feb35b5b..983c2639a0 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -2,19 +2,22 @@ " Language: Vim 9.0 script " Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> " Last Change: May 09, 2023 -" 2023 Nov 12 by Vim Project (:let-heredoc improvements) -" 2023 Nov 20 by Vim Project (:loadkeymap improvements) -" 2023 Dec 06 by Vim Project (add missing assignment operators) -" 2023 Dec 10 by Vim Project (improve variable matching) -" 2023 Dec 21 by Vim Project (improve ex command matching) -" 2023 Dec 30 by Vim Project (:syntax improvements) -" 2024 Jan 14 by Vim Project (TermResponseAll autocommand) -" 2024 Jan 15 by Vim Project (:hi ctermfont attribute) -" 2024 Jan 23 by Vim Project (add :[23]match commands) -" 2024 Jan 25 by Vim Project (WinNewPre autocommand) -" 2024 Jan 27 by Vim Project (add foreach() function) -" 2024 Jan 28 by Vim Project (improve line-continuation matching & string interpolation) -" 2024 Feb 01 by Vim Project (improve special key matching) +" Vim Project changes: {{{1 +" 2023 Nov 12 (:let-heredoc improvements) +" 2023 Nov 20 (:loadkeymap improvements) +" 2023 Dec 06 (add missing assignment operators) +" 2023 Dec 10 (improve variable matching) +" 2023 Dec 21 (improve ex command matching) +" 2023 Dec 30 (:syntax improvements) +" 2024 Jan 14 (TermResponseAll autocommand) +" 2024 Jan 15 (:hi ctermfont attribute) +" 2024 Jan 23 (add :[23]match commands) +" 2024 Jan 25 (WinNewPre autocommand) +" 2024 Jan 27 (add foreach() function) +" 2024 Jan 28 (improve line-continuation matching & string interpolation) +" 2024 Feb 01 (improve special key matching) +" 2024 Feb 10 (improve :highlight and :map) +" }}} " Version: 9.0-25 " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM " Automatically generated keyword lists: {{{1 @@ -481,7 +484,8 @@ syn case match " Maps: {{{2 " ==== -syn match vimMap "\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs +syn match vimMap "\<map\>\ze\s*(\@!" skipwhite nextgroup=vimMapMod,vimMapLhs +syn match vimMap "\<map!" contains=vimMapBang skipwhite nextgroup=vimMapMod,vimMapLhs syn keyword vimMap cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] tno[remap] tm[ap] vm[ap] vmapc[lear] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs syn keyword vimMap mapc[lear] smapc[lear] syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] tunma[p] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs @@ -678,7 +682,7 @@ syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster syn match vimHiGroup contained "\i\+" syn case ignore -syn keyword vimHiAttrib contained none bold inverse italic nocombine reverse standout strikethrough underline undercurl +syn keyword vimHiAttrib contained none bold inverse italic nocombine reverse standout strikethrough underline undercurl underdashed underdotted underdouble syn keyword vimFgBgAttrib contained none bg background fg foreground syn case match syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib @@ -693,7 +697,7 @@ syn match vimHiGuiFontname contained "'[a-zA-Z\-* ]\+'" syn match vimHiGuiRgb contained "#\x\{6}" " Highlighting: hi group key=arg ... {{{2 -syn cluster vimHiCluster contains=vimGroup,vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiCtermul,vimHiCtermfont,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation +syn cluster vimHiCluster contains=vimGroup,vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiCtermul,vimHiCtermfont,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation,vimComment,vim9comment syn region vimHiKeyList contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||" contains=@vimHiCluster if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimhikeyerror") syn match vimHiKeyError contained "\i\+="he=e-1 @@ -960,6 +964,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimAutoEvent Type hi def link vimAutoCmdMod Special hi def link vimAutoSet vimCommand + hi def link vimBang vimOper hi def link vimBehaveModel vimBehave hi def link vimBehave vimCommand hi def link vimBracket Delimiter @@ -1000,6 +1005,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimGroupSpecial Special hi def link vimGroup Type hi def link vimHiAttrib PreProc + hi def link vimHiBang vimBang hi def link vimHiClear vimHighlight hi def link vimHiCtermFgBg vimHiTerm hi def link vimHiCTerm vimHiTerm @@ -1027,12 +1033,13 @@ if !exists("skip_vim_syntax_inits") hi def link vimLetRegister Special hi def link vimLineComment vimComment hi def link vim9LineComment vimComment - hi def link vimMapBang vimCommand + hi def link vimMapBang vimBang hi def link vimMapModKey vimFuncSID hi def link vimMapMod vimBracket hi def link vimMap vimCommand hi def link vimMark Number hi def link vimMarkNumber vimNumber + hi def link vimMenuBang vimBang hi def link vimMenuMod vimMapMod hi def link vimMenuNameMore vimMenuName hi def link vimMenuName PreProc @@ -1107,7 +1114,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimTodo Todo hi def link vimType Type hi def link vimUnlet vimCommand - hi def link vimUnletBang vimCommand + hi def link vimUnletBang vimBang hi def link vimUnmap vimMap hi def link vimUserAttrbCmpltFunc Special hi def link vimUserAttrbCmplt vimSpecial |