changeset 34326:8aeb5e1daea6

runtime(vim): Update syntax file (#14009) Commit: https://github.com/vim/vim/commit/b614b284ee06523511308f8381b47db34d921d39 Author: dkearns <dougkearns@gmail.com> Date: Mon Feb 12 03:13:34 2024 +1100 runtime(vim): Update syntax file (https://github.com/vim/vim/issues/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>
author Christian Brabandt <cb@256bit.org>
date Sun, 11 Feb 2024 17:15:07 +0100
parents 9cc43f955f1b
children cb3d20e3dcd9
files runtime/syntax/testdir/dumps/vim_map_00.dump runtime/syntax/testdir/dumps/vim_map_99.dump runtime/syntax/testdir/input/vim_map.vim runtime/syntax/vim.vim
diffstat 4 files changed, 74 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /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| 
new file mode 100644
--- /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| 
new file mode 100644
--- /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')
--- 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	"!"	skipwh
 
 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	"'[
 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