runtime(vim): Update syntax file (#14009)

Commit: 
https://github.com/vim/vim/commit/b614b284ee06523511308f8381b47db34d921d39
Author: dkearns <[email protected]>
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 <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

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 000000000..d3a290e9b
--- /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 000000000..f8710b953
--- /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 000000000..7c73b996f
--- /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 e9feb35b5..983c2639a 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -2,19 +2,22 @@
 " Language:    Vim 9.0 script
 " Maintainer:  Charles E. Campbell <[email protected]>
 " 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

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1rZCTz-0096NT-J4%40256bit.org.

Raspunde prin e-mail lui