runtime(vim): Update base-syntax, fix issue #14135 (#14136)

Commit: 
https://github.com/vim/vim/commit/691aee8b070506e6eea8ec166bf69d9a03002790
Author: dkearns <dougkea...@gmail.com>
Date:   Mon Mar 4 05:02:47 2024 +1100

    runtime(vim): Update base-syntax, fix issue 
https://github.com/vim/vim/issues/14135 
(https://github.com/vim/vim/issues/14136)
    
    Fix incorrect error highlighting for function calls in :command
    definitions.  vimFunctionError should be restricted to :function header
    lines.
    
    fixes: #14135
    
    Signed-off-by: Doug Kearns <dougkea...@gmail.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/syntax/generator/vim.vim.base 
b/runtime/syntax/generator/vim.vim.base
index 9e959b8ac..4cb75d4ac 100644
--- a/runtime/syntax/generator/vim.vim.base
+++ b/runtime/syntax/generator/vim.vim.base
@@ -3,7 +3,7 @@
 " Maintainer:  Hirohito Higashi <h.east.727 ATMARK gmail.com>
 "      Doug Kearns <dougkea...@gmail.com>
 " URL: https://github.com/vim-jp/syntax-vim-ex
-" Last Change: Mar 02, 2024
+" Last Change: Mar 03, 2024
 " Former Maintainer: Charles E. Campbell
 " Base File URL:     http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
 " Base File Version: 9.0-25
@@ -208,7 +208,7 @@ syn keyword vimFTOption contained   detect indent off on 
plugin
 
 " Augroup : vimAugroupError removed because long augroups caused sync'ing 
problems. {{{2
 " ======= : Trade-off: Increasing synclines with slower editing vs augroup END 
error checking.
-syn cluster vimAugroupList     
contains=@vimCmdList,vimFilter,vimFunc,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vim9Comment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
+syn cluster vimAugroupList     
contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vim9Comment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
 syn match   vimAugroup "\<aug\%[roup]\>" contains=vimAugroupKey,vimAugroupBang 
skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup
 if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a'
   syn region  vimAugroup  fold 
start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+" matchgroup=vimAugroupKey 
end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" 
contains=vimAutoCmd,@vimAugroupList,vimAugroupkey skipwhite 
nextgroup=vimAugroupEnd
@@ -286,7 +286,7 @@ syn match   vimSpecFileMod  "\(:[phtre]\)\+"        
contained
 
 " User-Specified Commands: {{{2
 " =======================
-syn cluster    vimUserCmdList  
contains=@vimCmdList,vimCmplxRepeat,vimComment,vim9Comment,vimCtrlChar,vimEscapeBrace,vimFunc,vimFunctionError,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
+syn cluster    vimUserCmdList  
contains=@vimCmdList,vimCmplxRepeat,vimComment,vim9Comment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
 syn keyword    vimUserCommand  contained       com[mand]
 syn match      vimUserCmd      "\<com\%[mand]!\=\>.*$" 
contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter
 syn match      vimUserAttrbError       contained       "- \+\ze\s"
diff --git a/runtime/syntax/testdir/dumps/vim_ex_command_00.dump 
b/runtime/syntax/testdir/dumps/vim_ex_command_00.dump
new file mode 100644
index 000000000..31238891a
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_command_00.dump
@@ -0,0 +1,20 @@
+>"+0#0000e05#ffffff0| |V|i|m| |:|c|o|m@1|a|n|d| |c|o|m@1|a|n|d| +0#0000000&@52
+@75
+|"+0#0000e05&| |I|s@1|u|e| |#|1|4|1|3|5| +0#0000000&@60
+@75
+|c+0#af5f00255&|o|m| +0#0000000&|F|o@1| |c+0#af5f00255&|a|l@1| 
+0#0000000&|s+0#00e0e07&|y|s|t|e|m|(+0#0000000&|'+0#e000002&|l|s|'|)+0#0000000&|
 @49
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|,|1| @10|A|l@1| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_command_99.dump 
b/runtime/syntax/testdir/dumps/vim_ex_command_99.dump
new file mode 100644
index 000000000..96cfa16d4
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_command_99.dump
@@ -0,0 +1,20 @@
+|"+0#0000e05#ffffff0| |V|i|m| |:|c|o|m@1|a|n|d| |c|o|m@1|a|n|d| +0#0000000&@52
+@75
+|"+0#0000e05&| |I|s@1|u|e| |#|1|4|1|3|5| +0#0000000&@60
+@75
+>c+0#af5f00255&|o|m| +0#0000000&|F|o@1| |c+0#af5f00255&|a|l@1| 
+0#0000000&|s+0#00e0e07&|y|s|t|e|m|(+0#0000000&|'+0#e000002&|l|s|'|)+0#0000000&|
 @49
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|5|,|1| @10|A|l@1| 
diff --git a/runtime/syntax/testdir/input/vim_ex_command.vim 
b/runtime/syntax/testdir/input/vim_ex_command.vim
new file mode 100644
index 000000000..9e982965b
--- /dev/null
+++ b/runtime/syntax/testdir/input/vim_ex_command.vim
@@ -0,0 +1,5 @@
+" Vim :command command
+
+" Issue #14135
+
+com Foo call system('ls')
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 0d30a2d9b..c5db912e7 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -3,7 +3,7 @@
 " Maintainer:  Hirohito Higashi <h.east.727 ATMARK gmail.com>
 "      Doug Kearns <dougkea...@gmail.com>
 " URL: https://github.com/vim-jp/syntax-vim-ex
-" Last Change: Mar 02, 2024
+" Last Change: Mar 04, 2024
 " Former Maintainer: Charles E. Campbell
 " Base File URL:     http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
 " Base File Version: 9.0-25
@@ -52,21 +52,21 @@ syn keyword vimOption contained imst imstyle inc include 
inex includeexpr is inc
 syn keyword vimOption contained mh mousehide mousem mousemodel mousemev 
mousemoveevent mouses mouseshape mouset mousetime mzq mzquantum mzschemedll 
mzschemegcdll nf nrformats nu number nuw numberwidth ofu omnifunc odev 
opendevice opfunc operatorfunc pp packpath para paragraphs paste pt pastetoggle 
pex patchexpr pm patchmode pa path perldll pi preserveindent pvh previewheight 
pvp previewpopup pvw previewwindow pdev printdevice penc printencoding pexpr 
printexpr pfn printfont pheader printheader pmbcs printmbcharset pmbfn 
printmbfont popt printoptions prompt ph pumheight pw pumwidth pythondll 
pythonhome pythonthreedll pythonthreehome pyx pyxversion qftf quickfixtextfunc 
qe quoteescape ro readonly rdt redrawtime re regexpengine rnu relativenumber 
remap rop renderoptions
 syn keyword vimOption contained report rs restorescreen ri revins rl rightleft 
rlc rightleftcmd rubydll ru ruler ruf rulerformat rtp runtimepath scr scroll 
scb scrollbind scf scrollfocus sj scrolljump so scrolloff sbo scrollopt sect 
sections secure sel selection slm selectmode ssop sessionoptions sh shell shcf 
shellcmdflag sp shellpipe shq shellquote srr shellredir ssl shellslash stmp 
shelltemp st shelltype sxe shellxescape sxq shellxquote sr shiftround sw 
shiftwidth shm shortmess sn shortname sbr showbreak sc showcmd sloc showcmdloc 
sft showfulltag sm showmatch smd showmode stal showtabline ss sidescroll siso 
sidescrolloff scl signcolumn scs smartcase si smartindent sta smarttab sms 
smoothscroll sts softtabstop spell spc spellcapcheck spf spellfile spl spelllang
 syn keyword vimOption contained spo spelloptions sps spellsuggest sb 
splitbelow spk splitkeep spr splitright sol startofline stl statusline su 
suffixes sua suffixesadd swf swapfile sws swapsync swb switchbuf smc synmaxcol 
syn syntax tal tabline tpm tabpagemax ts tabstop tbs tagbsearch tc tagcase tfu 
tagfunc tl taglength tr tagrelative tag tags tgst tagstack tcldll term tbidi 
termbidi tenc termencoding tgc termguicolors twk termwinkey twsl termwinscroll 
tws termwinsize twt termwintype terse ta textauto tx textmode tw textwidth tsr 
thesaurus tsrfu thesaurusfunc top tildeop to timeout tm timeoutlen title 
titlelen titleold titlestring tb toolbar tbis toolbariconsize ttimeout ttm 
ttimeoutlen tbi ttybuiltin tf ttyfast ttym ttymouse tsl ttyscroll tty ttytype 
udir undodir
-syn keyword vimOption contained udf undofile ul undolevels ur undoreload uc 
updatecount ut updatetime vsts varsofttabstop vts vartabstop vbs verbose vfile 
verbosefile vdir viewdir vop viewoptions vi viminfo vif viminfofile ve 
virtualedit vb visualbell warn wiv weirdinvert ww whichwrap wc wildchar wcm 
wildcharm wig wildignore wic wildignorecase wmnu wildmenu wim wildmode wop 
wildoptions wak winaltkeys wcr wincolor wi window wfh winfixheight wfw 
winfixwidth wh winheight wmh winminheight wmw winminwidth winptydll wiw 
winwidth wrap wm wrapmargin ws wrapscan write wa writeany wb writebackup wd 
writedelay xtermcodes
+syn keyword vimOption contained udf undofile ul undolevels ur undoreload uc 
updatecount ut updatetime vsts varsofttabstop vts vartabstop vbs verbose vfile 
verbosefile vdir viewdir vop viewoptions vi viminfo vif viminfofile ve 
virtualedit vb visualbell warn wiv weirdinvert ww whichwrap wc wildchar wcm 
wildcharm wig wildignore wic wildignorecase wmnu wildmenu wim wildmode wop 
wildoptions wak winaltkeys wcr wincolor wi window wfb winfixbuf wfh 
winfixheight wfw winfixwidth wh winheight wmh winminheight wmw winminwidth 
winptydll wiw winwidth wrap wm wrapmargin ws wrapscan write wa writeany wb 
writebackup wd writedelay xtermcodes
 
 " vimOptions: These are the turn-off setting variants {{{2
 " GEN_SYN_VIM: vimOption turn-off, START_STR='syn keyword vimOption 
contained', END_STR=''
 syn keyword vimOption contained noari noallowrevins noarab noarabic noarshape 
noarabicshape noacd noautochdir noai noautoindent noar noautoread noasd 
noautoshelldir noaw noautowrite noawa noautowriteall nobk nobackup nobeval 
noballooneval nobevalterm noballoonevalterm nobin nobinary nobomb nobri 
nobreakindent nobl nobuflisted nocdh nocdhome nocin nocindent nocp nocompatible 
nocf noconfirm noci nocopyindent nocsre nocscoperelative nocst nocscopetag 
nocsverb nocscopeverbose nocrb nocursorbind nocuc nocursorcolumn nocul 
nocursorline nodeco nodelcombine nodiff nodg nodigraph noed noedcompatible 
noemo noemoji noeof noendoffile noeol noendofline noea noequalalways noeb 
noerrorbells noek noesckeys noet noexpandtab noex noexrc nofic nofileignorecase 
nofixeol nofixendofline
 syn keyword vimOption contained nofen nofoldenable nofs nofsync nogd 
nogdefault noguipty nohid nohidden nohk nohkmap nohkp nohkmapp nohls nohlsearch 
noicon noic noignorecase noimc noimcmdline noimd noimdisable nois noincsearch 
noinf noinfercase noim noinsertmode nojs nojoinspaces nolnr nolangnoremap nolrm 
nolangremap nolz nolazyredraw nolbr nolinebreak nolisp nolist nolpl 
noloadplugins nomagic noml nomodeline nomle nomodelineexpr noma nomodifiable 
nomod nomodified nomore nomousef nomousefocus nomh nomousehide nomousemev 
nomousemoveevent nonu nonumber noodev noopendevice nopaste nopi 
nopreserveindent nopvw nopreviewwindow noprompt noro noreadonly nornu 
norelativenumber noremap nors norestorescreen nori norevins norl norightleft 
noru noruler noscb noscrollbind noscf noscrollfocus
-syn keyword vimOption contained nosecure nossl noshellslash nostmp noshelltemp 
nosr noshiftround nosn noshortname nosc noshowcmd nosft noshowfulltag nosm 
noshowmatch nosmd noshowmode noscs nosmartcase nosi nosmartindent nosta 
nosmarttab nosms nosmoothscroll nospell nosb nosplitbelow nospr nosplitright 
nosol nostartofline noswf noswapfile notbs notagbsearch notr notagrelative 
notgst notagstack notbidi notermbidi notgc notermguicolors noterse nota 
notextauto notx notextmode notop notildeop noto notimeout notitle nottimeout 
notbi nottybuiltin notf nottyfast noudf noundofile novb novisualbell nowarn 
nowiv noweirdinvert nowic nowildignorecase nowmnu nowildmenu nowfh 
nowinfixheight nowfw nowinfixwidth nowrap nows nowrapscan nowrite nowa 
nowriteany nowb nowritebackup
-syn keyword vimOption contained noxtermcodes
+syn keyword vimOption contained nosecure nossl noshellslash nostmp noshelltemp 
nosr noshiftround nosn noshortname nosc noshowcmd nosft noshowfulltag nosm 
noshowmatch nosmd noshowmode noscs nosmartcase nosi nosmartindent nosta 
nosmarttab nosms nosmoothscroll nospell nosb nosplitbelow nospr nosplitright 
nosol nostartofline noswf noswapfile notbs notagbsearch notr notagrelative 
notgst notagstack notbidi notermbidi notgc notermguicolors noterse nota 
notextauto notx notextmode notop notildeop noto notimeout notitle nottimeout 
notbi nottybuiltin notf nottyfast noudf noundofile novb novisualbell nowarn 
nowiv noweirdinvert nowic nowildignorecase nowmnu nowildmenu nowfb nowinfixbuf 
nowfh nowinfixheight nowfw nowinfixwidth nowrap nows nowrapscan nowrite nowa 
nowriteany
+syn keyword vimOption contained nowb nowritebackup noxtermcodes
 
 " vimOptions: These are the invertible variants {{{2
 " GEN_SYN_VIM: vimOption invertible, START_STR='syn keyword vimOption 
contained', END_STR=''
 syn keyword vimOption contained invari invallowrevins invarab invarabic 
invarshape invarabicshape invacd invautochdir invai invautoindent invar 
invautoread invasd invautoshelldir invaw invautowrite invawa invautowriteall 
invbk invbackup invbeval invballooneval invbevalterm invballoonevalterm invbin 
invbinary invbomb invbri invbreakindent invbl invbuflisted invcdh invcdhome 
invcin invcindent invcp invcompatible invcf invconfirm invci invcopyindent 
invcsre invcscoperelative invcst invcscopetag invcsverb invcscopeverbose invcrb 
invcursorbind invcuc invcursorcolumn invcul invcursorline invdeco invdelcombine 
invdiff invdg invdigraph inved invedcompatible invemo invemoji inveof 
invendoffile inveol invendofline invea invequalalways inveb inverrorbells invek 
invesckeys
 syn keyword vimOption contained invet invexpandtab invex invexrc invfic 
invfileignorecase invfixeol invfixendofline invfen invfoldenable invfs invfsync 
invgd invgdefault invguipty invhid invhidden invhk invhkmap invhkp invhkmapp 
invhls invhlsearch invicon invic invignorecase invimc invimcmdline invimd 
invimdisable invis invincsearch invinf invinfercase invim invinsertmode invjs 
invjoinspaces invlnr invlangnoremap invlrm invlangremap invlz invlazyredraw 
invlbr invlinebreak invlisp invlist invlpl invloadplugins invmagic invml 
invmodeline invmle invmodelineexpr invma invmodifiable invmod invmodified 
invmore invmousef invmousefocus invmh invmousehide invmousemev 
invmousemoveevent invnu invnumber invodev invopendevice invpaste invpi 
invpreserveindent invpvw invpreviewwindow
 syn keyword vimOption contained invprompt invro invreadonly invrnu 
invrelativenumber invremap invrs invrestorescreen invri invrevins invrl 
invrightleft invru invruler invscb invscrollbind invscf invscrollfocus 
invsecure invssl invshellslash invstmp invshelltemp invsr invshiftround invsn 
invshortname invsc invshowcmd invsft invshowfulltag invsm invshowmatch invsmd 
invshowmode invscs invsmartcase invsi invsmartindent invsta invsmarttab invsms 
invsmoothscroll invspell invsb invsplitbelow invspr invsplitright invsol 
invstartofline invswf invswapfile invtbs invtagbsearch invtr invtagrelative 
invtgst invtagstack invtbidi invtermbidi invtgc invtermguicolors invterse invta 
invtextauto invtx invtextmode invtop invtildeop invto invtimeout invtitle 
invttimeout invtbi invttybuiltin
-syn keyword vimOption contained invtf invttyfast invudf invundofile invvb 
invvisualbell invwarn invwiv invweirdinvert invwic invwildignorecase invwmnu 
invwildmenu invwfh invwinfixheight invwfw invwinfixwidth invwrap invws 
invwrapscan invwrite invwa invwriteany invwb invwritebackup invxtermcodes
+syn keyword vimOption contained invtf invttyfast invudf invundofile invvb 
invvisualbell invwarn invwiv invweirdinvert invwic invwildignorecase invwmnu 
invwildmenu invwfb invwinfixbuf invwfh invwinfixheight invwfw invwinfixwidth 
invwrap invws invwrapscan invwrite invwa invwriteany invwb invwritebackup 
invxtermcodes
 
 " termcap codes (which can also be set) {{{2
 " GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption 
contained', END_STR=''
@@ -246,7 +246,7 @@ syn keyword vimFTOption contained   detect indent off on 
plugin
 
 " Augroup : vimAugroupError removed because long augroups caused sync'ing 
problems. {{{2
 " ======= : Trade-off: Increasing synclines with slower editing vs augroup END 
error checking.
-syn cluster vimAugroupList     
contains=@vimCmdList,vimFilter,vimFunc,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vim9Comment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
+syn cluster vimAugroupList     
contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vim9Comment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
 syn match   vimAugroup "\<aug\%[roup]\>" contains=vimAugroupKey,vimAugroupBang 
skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup
 if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a'
   syn region  vimAugroup  fold 
start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+" matchgroup=vimAugroupKey 
end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" 
contains=vimAutoCmd,@vimAugroupList,vimAugroupkey skipwhite 
nextgroup=vimAugroupEnd
@@ -324,7 +324,7 @@ syn match   vimSpecFileMod  "\(:[phtre]\)\+"        
contained
 
 " User-Specified Commands: {{{2
 " =======================
-syn cluster    vimUserCmdList  
contains=@vimCmdList,vimCmplxRepeat,vimComment,vim9Comment,vimCtrlChar,vimEscapeBrace,vimFunc,vimFunctionError,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
+syn cluster    vimUserCmdList  
contains=@vimCmdList,vimCmplxRepeat,vimComment,vim9Comment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
 syn keyword    vimUserCommand  contained       com[mand]
 syn match      vimUserCmd      "\<com\%[mand]!\=\>.*$" 
contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter
 syn match      vimUserAttrbError       contained       "- \+\ze\s"

-- 
-- 
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 vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1rgqMY-00EvqW-NL%40256bit.org.

Raspunde prin e-mail lui