runtime(vim): Update base-syntax, improve :match command highlighting

Commit: 
https://github.com/vim/vim/commit/e85fdc730e2a538db9af72a255207aa3d5f3fafc
Author: Doug Kearns <dougkea...@gmail.com>
Date:   Sun Jul 7 20:45:37 2024 +0200

    runtime(vim): Update base-syntax, improve :match command highlighting
    
    Match group and pattern arguments to :match commands.
    
    closes: #15096
    
    Signed-off-by: Doug Kearns <dougkea...@gmail.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/syntax/generator/gen_syntax_vim.vim 
b/runtime/syntax/generator/gen_syntax_vim.vim
index 8b7677574..94135da41 100644
--- a/runtime/syntax/generator/gen_syntax_vim.vim
+++ b/runtime/syntax/generator/gen_syntax_vim.vim
@@ -275,6 +275,8 @@ function! s:get_vim_command_type(cmd_name)
        let menu_prefix = '^\%([acinostvx]\?\|tl\)'
        let map_prefix  = '^[acilnostvx]\?'
        let exclude_list =<< trim EOL
+               2match
+               3match
                Next
                Print
                X
@@ -301,6 +303,7 @@ function! s:get_vim_command_type(cmd_name)
                insert
                map
                mapclear
+               match
                new
                normal
                popup
diff --git a/runtime/syntax/generator/vim.vim.base 
b/runtime/syntax/generator/vim.vim.base
index 6bb2d44c8..4f571a490 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:    2024 Jun 21
+" Last Change:    2024 Jul 05
 " Former Maintainer: Charles E. Campbell
 
 " DO NOT CHANGE DIRECTLY.
@@ -29,8 +29,6 @@ syn cluster vimCommentGroup   contains=vimTodo,@Spell
 " regular vim commands {{{2
 " GEN_SYN_VIM: vimCommand normal, START_STR='syn keyword vimCommand 
contained', END_STR=''
 
-syn keyword vimCommand contained       2mat[ch] 3mat[ch]
-
 " Lower priority for _new_ to distinguish constructors from the command.
 syn match   vimCommand contained       "\<new\>(\@!"
 syn match   vimCommand contained       "\<z[-+^.=]\=\>"
@@ -175,7 +173,7 @@ syn match   vimNumber       '\%(^\|\A\)\zs#\x\{6}'          
skipwhite nextgroup=vimGlobal,vimSub
 syn case match
 
 " All vimCommands are contained by vimIsCommand. {{{2
-syn cluster vimCmdList 
contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate
+syn cluster vimCmdList 
contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate
 syn match vimCmdSep    "[:|]\+"        skipwhite 
nextgroup=@vimCmdList,vimSubst1
 syn match vimIsCommand "\<\%(\h\w*\|[23]mat\%[ch]\)\>" contains=vimCommand
 syn match vimVar             contained "\<\h[a-zA-Z0-9#_]*\>"
@@ -652,6 +650,15 @@ endif
 
 syn match vimNotFunc   "\<if\>\|\<el\%[seif]\>\|\<retu\%[rn]\>\|\<while\>"     
skipwhite nextgroup=vimOper,vimOperParen,vimVar,vimFunc,vimNotation
 
+" Match: {{{2
+" =====
+syn match      vimMatch                "\<[23]\=mat\%[ch]\>" skipwhite 
nextgroup=vimMatchGroup,vimMatchNone
+syn match      vimMatchGroup   contained       "[[:alnum:]._-]\+"    skipwhite 
nextgroup=vimMatchPattern
+syn case ignore
+syn keyword    vimMatchNone    contained       none
+syn case match
+syn region     vimMatchPattern contained       matchgroup=Delimiter 
start="\z([!#$%&'()*+,-./:;<=>?@[\]^_`{}~]\)" skip="\\\|\\z1" end="\z1" 
contains=@vimSubstList oneline
+
 " Norm: {{{2
 " ====
 syn match      vimNorm         "\<norm\%[al]!\=" skipwhite 
nextgroup=vimNormCmds
@@ -1173,6 +1180,9 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimMap    vimCommand
  hi def link vimMark   Number
  hi def link vimMarkNumber     vimNumber
+ hi def link vimMatch  vimCommand
+ hi def link vimMatchGroup     vimGroup
+ hi def link vimMatchNone      vimGroup
  hi def link vimMenuBang       vimBang
  hi def link vimMenuClear      Special
  hi def link vimMenuMod        vimMapMod
diff --git a/runtime/syntax/testdir/dumps/vim_ex_match_00.dump 
b/runtime/syntax/testdir/dumps/vim_ex_match_00.dump
new file mode 100644
index 000000000..15052e522
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_match_00.dump
@@ -0,0 +1,20 @@
+>"+0#0000e05#ffffff0| |V|i|m| |:|m|a|t|c|h|,| |:|2|m|a|t|c|h| |a|n|d| 
|:|3|m|a|t|c|h| |c|o|m@1|a|n|d|s| +0#0000000&@32
+@75
+|m+0#af5f00255&|a|t|c|h| +0#0000000&|F+0#00e0003&|o@1|G|r|o|u|p| 
+0#0000000&|/+0#e000e06&|F+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@54
+|m+0#af5f00255&|a|t|c|h| +0#0000000&@69
+|m+0#af5f00255&|a|t|c|h| +0#0000000&|n+0#00e0003&|o|n|e| +0#0000000&@64
+@75
+|2+0#af5f00255&|m|a|t|c|h| +0#0000000&|F+0#00e0003&|o@1|G|r|o|u|p| 
+0#0000000&|/+0#e000e06&|F+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@53
+|2+0#af5f00255&|m|a|t|c|h| +0#0000000&@68
+|2+0#af5f00255&|m|a|t|c|h| +0#0000000&|n+0#00e0003&|o|n|e| +0#0000000&@63
+@75
+|3+0#af5f00255&|m|a|t|c|h| +0#0000000&|F+0#00e0003&|o@1|G|r|o|u|p| 
+0#0000000&|/+0#e000e06&|F+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@53
+|3+0#af5f00255&|m|a|t|c|h| +0#0000000&@68
+|3+0#af5f00255&|m|a|t|c|h| +0#0000000&|n+0#00e0003&|o|n|e| +0#0000000&@63
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|,|1| @10|A|l@1| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_match_99.dump 
b/runtime/syntax/testdir/dumps/vim_ex_match_99.dump
new file mode 100644
index 000000000..522e3c576
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_match_99.dump
@@ -0,0 +1,20 @@
+|"+0#0000e05#ffffff0| |V|i|m| |:|m|a|t|c|h|,| |:|2|m|a|t|c|h| |a|n|d| 
|:|3|m|a|t|c|h| |c|o|m@1|a|n|d|s| +0#0000000&@32
+@75
+|m+0#af5f00255&|a|t|c|h| +0#0000000&|F+0#00e0003&|o@1|G|r|o|u|p| 
+0#0000000&|/+0#e000e06&|F+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@54
+|m+0#af5f00255&|a|t|c|h| +0#0000000&@69
+|m+0#af5f00255&|a|t|c|h| +0#0000000&|n+0#00e0003&|o|n|e| +0#0000000&@64
+@75
+|2+0#af5f00255&|m|a|t|c|h| +0#0000000&|F+0#00e0003&|o@1|G|r|o|u|p| 
+0#0000000&|/+0#e000e06&|F+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@53
+|2+0#af5f00255&|m|a|t|c|h| +0#0000000&@68
+|2+0#af5f00255&|m|a|t|c|h| +0#0000000&|n+0#00e0003&|o|n|e| +0#0000000&@63
+@75
+|3+0#af5f00255&|m|a|t|c|h| +0#0000000&|F+0#00e0003&|o@1|G|r|o|u|p| 
+0#0000000&|/+0#e000e06&|F+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@53
+|3+0#af5f00255&|m|a|t|c|h| +0#0000000&@68
+>3+0#af5f00255&|m|a|t|c|h| +0#0000000&|n+0#00e0003&|o|n|e| +0#0000000&@63
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|3|,|1| @9|A|l@1| 
diff --git a/runtime/syntax/testdir/input/vim_ex_match.vim 
b/runtime/syntax/testdir/input/vim_ex_match.vim
new file mode 100644
index 000000000..bb56330a8
--- /dev/null
+++ b/runtime/syntax/testdir/input/vim_ex_match.vim
@@ -0,0 +1,13 @@
+" Vim :match, :2match and :3match commands
+
+match FooGroup /Foo/
+match
+match none
+
+2match FooGroup /Foo/
+2match
+2match none
+
+3match FooGroup /Foo/
+3match
+3match none
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index ca23000d9..ee3301a10 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:    2024 Jun 21
+" Last Change:    2024 Jul 05
 " Former Maintainer: Charles E. Campbell
 
 " DO NOT CHANGE DIRECTLY.
@@ -31,12 +31,10 @@ syn cluster vimCommentGroup contains=vimTodo,@Spell
 syn keyword vimCommand contained abo[veleft] abs[tract] al[l] ar[gs] arga[dd] 
argd[elete] argdo argded[upe] arge[dit] argg[lobal] argl[ocal] argu[ment] 
as[cii] b[uffer] bN[ext] ba[ll] bad[d] balt bd[elete] bel[owright] bf[irst] 
bl[ast] bm[odified] bn[ext] bo[tright] bp[revious] br[ewind] brea[k] breaka[dd] 
breakd[el] breakl[ist] bro[wse] buffers bufd[o] bun[load] bw[ipeout] c[hange] 
cN[ext] cNf[ile] cabo[ve] cad[dbuffer] cadde[xpr] caddf[ile] caf[ter] cal[l] 
cb[uffer] cbe[fore] cbel[ow] cbo[ttom] cc ccl[ose] cd cdo ce[nter] cex[pr] 
cf[ile] cfd[o] cfir[st] cg[etfile] cgetb[uffer] cgete[xpr] chd[ir] changes 
che[ckpath] checkt[ime] chi[story] cl[ist] cla[st] class clo[se] cle[arjumps] 
cn[ext] cnew[er] cnf[ile] co[py] col[der] colo[rscheme] com[mand] comc[lear] 
comp[iler]
 syn keyword vimCommand contained con[tinue] conf[irm] cons[t] cope[n] 
cp[revious] cpf[ile] cq[uit] cr[ewind] cs[cope] cst[ag] cw[indow] d[elete] 
delm[arks] deb[ug] debugg[reedy] defc[ompile] defe[r] delc[ommand] 
delf[unction] di[splay] dif[fupdate] diffg[et] diffo[ff] diffp[atch] diffpu[t] 
diffs[plit] difft[his] dig[raphs] disa[ssemble] dj[ump] dli[st] dr[op] 
ds[earch] dsp[lit] e[dit] ea[rlier] el[se] elsei[f] em[enu] en[dif] 
endin[terface] endc[lass] ende[num] endfo[r] endt[ry] endw[hile] ene[w] enu[m] 
ev[al] ex exi[t] exp[ort] exu[sage] f[ile] files filet[ype] filt[er] fin[d] 
fina[l] finall[y] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] foldd[oopen] 
folddoc[losed] foldo[pen] for g[lobal] go[to] gr[ep] grepa[dd] gu[i] gv[im] 
h[elp] helpc[lose] helpf[ind] helpg[rep]
 syn keyword vimCommand contained helpt[ags] ha[rdcopy] hi[ghlight] hid[e] 
his[tory] ho[rizontal] if ij[ump] il[ist] imp[ort] int[ro] inte[rface] 
is[earch] isp[lit] j[oin] ju[mps] k kee[pmarks] keepj[umps] keepp[atterns] 
keepa[lt] l[ist] lN[ext] lNf[ile] la[st] lab[ove] lan[guage] lad[dexpr] 
laddb[uffer] laddf[ile] laf[ter] lat[er] lb[uffer] lbe[fore] lbel[ow] lbo[ttom] 
lc[d] lch[dir] lcl[ose] lcs[cope] ld[o] le[ft] lefta[bove] let lex[pr] leg[acy] 
lf[ile] lfd[o] lfir[st] lg[etfile] lgetb[uffer] lgete[xpr] lgr[ep] lgrepa[dd] 
lh[elpgrep] lhi[story] ll lla[st] lli[st] lmak[e] lne[xt] lnew[er] lnf[ile] 
lo[adview] loadk[eymap] loc[kmarks] lockv[ar] lol[der] lop[en] lp[revious] 
lpf[ile] lr[ewind] lt[ag] lua luad[o] luaf[ile] lv[imgrep] lvimgrepa[dd] 
lw[indow] ls m[ove]
-syn keyword vimCommand contained ma[rk] mak[e] marks mat[ch] menut[ranslate] 
mes[sages] mk[exrc] mks[ession] mksp[ell] mkv[imrc] mkvie[w] mod[e] mz[scheme] 
mzf[ile] n[ext] nb[key] nbc[lose] nbs[tart] noa[utocmd] noh[lsearch] 
nos[wapfile] nu[mber] o[pen] ol[dfiles] on[ly] opt[ions] ow[nsyntax] p[rint] 
pa[ckadd] packl[oadall] pc[lose] pe[rl] perld[o] ped[it] po[p] pp[op] 
pre[serve] prev[ious] pro[mptfind] promptr[epl] prof[ile] profd[el] ps[earch] 
pt[ag] ptN[ext] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptp[revious] ptr[ewind] 
pts[elect] pu[t] pub[lic] pw[d] py[thon] pyd[o] pyf[ile] py3 py3d[o] python3 
py3f[ile] pyx pyxd[o] pythonx pyxf[ile] q[uit] quita[ll] qa[ll] r[ead] 
rec[over] red[o] redi[r] redr[aw] redraws[tatus] redrawt[abline] reg[isters] 
res[ize] ret[ab] retu[rn]
+syn keyword vimCommand contained ma[rk] mak[e] marks menut[ranslate] 
mes[sages] mk[exrc] mks[ession] mksp[ell] mkv[imrc] mkvie[w] mod[e] mz[scheme] 
mzf[ile] n[ext] nb[key] nbc[lose] nbs[tart] noa[utocmd] noh[lsearch] 
nos[wapfile] nu[mber] o[pen] ol[dfiles] on[ly] opt[ions] ow[nsyntax] p[rint] 
pa[ckadd] packl[oadall] pc[lose] pe[rl] perld[o] ped[it] po[p] pp[op] 
pre[serve] prev[ious] pro[mptfind] promptr[epl] prof[ile] profd[el] ps[earch] 
pt[ag] ptN[ext] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptp[revious] ptr[ewind] 
pts[elect] pu[t] pub[lic] pw[d] py[thon] pyd[o] pyf[ile] py3 py3d[o] python3 
py3f[ile] pyx pyxd[o] pythonx pyxf[ile] q[uit] quita[ll] qa[ll] r[ead] 
rec[over] red[o] redi[r] redr[aw] redraws[tatus] redrawt[abline] reg[isters] 
res[ize] ret[ab] retu[rn]
 syn keyword vimCommand contained rew[ind] ri[ght] rightb[elow] ru[ntime] 
rub[y] rubyd[o] rubyf[ile] rund[o] rv[iminfo] sN[ext] sa[rgument] sal[l] 
san[dbox] sav[eas] sb[uffer] sbN[ext] sba[ll] sbf[irst] sbl[ast] sbm[odified] 
sbn[ext] sbp[revious] sbr[ewind] sc[riptnames] scripte[ncoding] scriptv[ersion] 
scs[cope] setf[iletype] sf[ind] sfir[st] sh[ell] si[malt] sig[n] sil[ent] 
sla[st] sn[ext] so[urce] sor[t] sp[lit] spe[llgood] spelld[ump] spelli[nfo] 
spellr[epall] spellra[re] spellu[ndo] spellw[rong] spr[evious] sr[ewind] st[op] 
sta[g] star[tinsert] startg[replace] startr[eplace] stat[ic] stopi[nsert] 
stj[ump] sts[elect] sun[hide] sus[pend] sv[iew] sw[apname] synti[me] sync[bind] 
smi[le] t tN[ext] ta[g] tags tab tabc[lose] tabd[o] tabe[dit] tabf[ind] 
tabfir[st]
 syn keyword vimCommand contained tabm[ove] tabl[ast] tabn[ext] tabnew 
tabo[nly] tabp[revious] tabN[ext] tabr[ewind] tabs tc[d] tch[dir] tcl tcld[o] 
tclf[ile] te[aroff] ter[minal] tf[irst] thi[s] tj[ump] tl[ast] tn[ext] 
to[pleft] tp[revious] tr[ewind] try ts[elect] ty[pe] u[ndo] undoj[oin] 
undol[ist] unh[ide] unl[et] unlo[ckvar] uns[ilent] up[date] v[global] ve[rsion] 
verb[ose] vert[ical] vi[sual] vie[w] vim[grep] vimgrepa[dd] vim9[cmd] viu[sage] 
vne[w] vs[plit] w[rite] wN[ext] wa[ll] wh[ile] wi[nsize] winc[md] wind[o] 
winp[os] wn[ext] wp[revious] wq wqa[ll] wu[ndo] wv[iminfo] x[it] xa[ll] 
xr[estore] y[ank] z dl dell delel deletl deletel dp dep delp delep deletp 
deletep a i
 
-syn keyword vimCommand contained       2mat[ch] 3mat[ch]
-
 " Lower priority for _new_ to distinguish constructors from the command.
 syn match   vimCommand contained       "\<new\>(\@!"
 syn match   vimCommand contained       "\<z[-+^.=]\=\>"
@@ -90,8 +88,8 @@ syn keyword vimErrSetting contained invakm invaltkeymap 
invanti invantialias inv
 " AutoCmd Events {{{2
 syn case ignore
 " GEN_SYN_VIM: vimAutoEvent, START_STR='syn keyword vimAutoEvent contained', 
END_STR=''
-syn keyword vimAutoEvent contained BufAdd BufCreate BufDelete BufEnter 
BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd 
BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite 
BufWriteCmd BufWritePost BufWritePre CmdlineChanged CmdlineEnter CmdlineLeave 
CmdUndefined CmdwinEnter CmdwinLeave ColorScheme ColorSchemePre CompleteChanged 
CompleteDone CompleteDonePre CursorHold CursorHoldI CursorMoved CursorMovedI 
DiffUpdated DirChanged DirChangedPre EncodingChanged ExitPre FileAppendCmd 
FileAppendPost FileAppendPre FileChangedRO FileChangedShell 
FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType 
FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre 
FilterWritePost FilterWritePre
-syn keyword vimAutoEvent contained FocusGained FocusLost FuncUndefined 
GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave 
InsertLeavePre MenuPopup ModeChanged OptionSet QuickFixCmdPost QuickFixCmdPre 
QuitPre RemoteReply SafeState SafeStateAgain SessionLoadPost SessionWritePost 
ShellCmdPost ShellFilterPost SigUSR1 SourceCmd SourcePost SourcePre 
SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed 
TabEnter TabLeave TabNew TermChanged TerminalOpen TerminalWinOpen TermResponse 
TermResponseAll TextChanged TextChangedI TextChangedP TextChangedT TextYankPost 
User VimEnter VimLeave VimLeavePre VimResized VimResume VimSuspend WinClosed 
WinEnter WinLeave WinNew WinNewPre WinResized WinScrolled
+syn keyword vimAutoEvent contained BufAdd BufCreate BufDelete BufEnter 
BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd 
BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite 
BufWriteCmd BufWritePost BufWritePre CmdlineChanged CmdlineEnter CmdlineLeave 
CmdUndefined CmdwinEnter CmdwinLeave ColorScheme ColorSchemePre CompleteChanged 
CompleteDone CompleteDonePre CursorHold CursorHoldI CursorMoved CursorMovedC 
CursorMovedI DiffUpdated DirChanged DirChangedPre EncodingChanged ExitPre 
FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell 
FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType 
FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre 
FilterWritePost
+syn keyword vimAutoEvent contained FilterWritePre FocusGained FocusLost 
FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter 
InsertLeave InsertLeavePre MenuPopup ModeChanged OptionSet QuickFixCmdPost 
QuickFixCmdPre QuitPre RemoteReply SafeState SafeStateAgain SessionLoadPost 
SessionWritePost ShellCmdPost ShellFilterPost SigUSR1 SourceCmd SourcePost 
SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax 
TabClosed TabEnter TabLeave TabNew TermChanged TerminalOpen TerminalWinOpen 
TermResponse TermResponseAll TextChanged TextChangedI TextChangedP TextChangedT 
TextYankPost User VimEnter VimLeave VimLeavePre VimResized VimResume VimSuspend 
WinClosed WinEnter WinLeave WinNew WinNewPre WinResized WinScrolled
 
 " Highlight commonly used Groupnames {{{2
 syn keyword vimGroup contained Comment Constant String Character Number 
Boolean Float Identifier Function Statement Conditional Repeat Label Operator 
Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass 
Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug 
Underlined Ignore Error Todo
@@ -104,15 +102,15 @@ syn case match
 
 " Function Names {{{2
 " GEN_SYN_VIM: vimFuncName, START_STR='syn keyword vimFuncName contained', 
END_STR=''
-syn keyword vimFuncName contained abs acos add and append appendbufline argc 
argidx arglistid argv asin assert_beeps assert_equal assert_equalfile 
assert_exception assert_fails assert_false assert_inrange assert_match 
assert_nobeep assert_notequal assert_notmatch assert_report assert_true atan 
atan2 autocmd_add autocmd_delete autocmd_get balloon_gettext balloon_show 
balloon_split blob2list browse browsedir bufadd bufexists buflisted bufload 
bufloaded bufname bufnr bufwinid bufwinnr byte2line byteidx byteidxcomp call 
ceil ch_canread ch_close ch_close_in ch_evalexpr ch_evalraw ch_getbufnr 
ch_getjob ch_info ch_log ch_logfile ch_open ch_read ch_readblob ch_readraw 
ch_sendexpr ch_sendraw ch_setoptions ch_status changenr char2nr charclass 
charcol charidx chdir cindent
-syn keyword vimFuncName contained clearmatches col complete complete_add 
complete_check complete_info confirm copy cos cosh count cscope_connection 
cursor debugbreak deepcopy delete deletebufline did_filetype diff diff_filler 
diff_hlID digraph_get digraph_getlist digraph_set digraph_setlist echoraw empty 
environ err_teapot escape eval eventhandler executable execute exepath exists 
exists_compiled exp expand expandcmd extend extendnew feedkeys filecopy 
filereadable filewritable filter finddir findfile flatten flattennew float2nr 
floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext 
foldtextresult foreach foreground fullcommand funcref function garbagecollect 
get getbufinfo getbufline getbufoneline getbufvar getcellwidths getchangelist 
getchar
-syn keyword vimFuncName contained getcharmod getcharpos getcharsearch 
getcharstr getcmdcompltype getcmdline getcmdpos getcmdscreenpos getcmdtype 
getcmdwintype getcompletion getcurpos getcursorcharpos getcwd getenv 
getfontname getfperm getfsize getftime getftype getimstatus getjumplist getline 
getloclist getmarklist getmatches getmousepos getmouseshape getpid getpos 
getqflist getreg getreginfo getregion getregionpos getregtype getscriptinfo 
gettabinfo gettabvar gettabwinvar gettagstack gettext getwininfo getwinpos 
getwinposx getwinposy getwinvar glob glob2regpat globpath has has_key 
haslocaldir hasmapto histadd histdel histget histnr hlID hlexists hlget hlset 
hostname iconv indent index indexof input inputdialog inputlist inputrestore 
inputsave inputsecret insert
-syn keyword vimFuncName contained instanceof interrupt invert isabsolutepath 
isdirectory isinf islocked isnan items job_getchannel job_info job_setoptions 
job_start job_status job_stop join js_decode js_encode json_decode json_encode 
keys keytrans len libcall libcallnr line line2byte lispindent list2blob 
list2str listener_add listener_flush listener_remove localtime log log10 
luaeval map maparg mapcheck maplist mapnew mapset match matchadd matchaddpos 
matcharg matchbufline matchdelete matchend matchfuzzy matchfuzzypos matchlist 
matchstr matchstrlist matchstrpos max menu_info min mkdir mode mzeval 
nextnonblank nr2char or pathshorten perleval popup_atcursor popup_beval 
popup_clear popup_close popup_create popup_dialog popup_filter_menu 
popup_filter_yesno popup_findecho
-syn keyword vimFuncName contained popup_findinfo popup_findpreview 
popup_getoptions popup_getpos popup_hide popup_list popup_locate popup_menu 
popup_move popup_notification popup_setbuf popup_setoptions popup_settext 
popup_show pow prevnonblank printf prompt_getprompt prompt_setcallback 
prompt_setinterrupt prompt_setprompt prop_add prop_add_list prop_clear 
prop_find prop_list prop_remove prop_type_add prop_type_change prop_type_delete 
prop_type_get prop_type_list pum_getpos pumvisible py3eval pyeval pyxeval rand 
range readblob readdir readdirex readfile reduce reg_executing reg_recording 
reltime reltimefloat reltimestr remote_expr remote_foreground remote_peek 
remote_read remote_send remote_startserver remove rename repeat resolve reverse 
round rubyeval screenattr
-syn keyword vimFuncName contained screenchar screenchars screencol screenpos 
screenrow screenstring search searchcount searchdecl searchpair searchpairpos 
searchpos server2client serverlist setbufline setbufvar setcellwidths 
setcharpos setcharsearch setcmdline setcmdpos setcursorcharpos setenv setfperm 
setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar 
settagstack setwinvar sha256 shellescape shiftwidth sign_define sign_getdefined 
sign_getplaced sign_jump sign_place sign_placelist sign_undefine sign_unplace 
sign_unplacelist simplify sin sinh slice sort sound_clear sound_playevent 
sound_playfile sound_stop soundfold spellbadword spellsuggest split sqrt srand 
state str2float str2list str2nr strcharlen strcharpart strchars strdisplaywidth
-syn keyword vimFuncName contained strftime strgetchar stridx string strlen 
strpart strptime strridx strtrans strutf16len strwidth submatch substitute 
swapfilelist swapinfo swapname synID synIDattr synIDtrans synconcealed synstack 
system systemlist tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tan 
tanh tempname term_dumpdiff term_dumpload term_dumpwrite term_getaltscreen 
term_getansicolors term_getattr term_getcursor term_getjob term_getline 
term_getscrolled term_getsize term_getstatus term_gettitle term_gettty 
term_list term_scrape term_sendkeys term_setansicolors term_setapi term_setkill 
term_setrestore term_setsize term_start term_wait terminalprops test_alloc_fail 
test_autochdir test_feedinput test_garbagecollect_now test_garbagecollect_soon 
test_getvalue
-syn keyword vimFuncName contained test_gui_event test_ignore_error 
test_mswin_event test_null_blob test_null_channel test_null_dict 
test_null_function test_null_job test_null_list test_null_partial 
test_null_string test_option_not_set test_override test_refcount test_setmouse 
test_settime test_srand_seed test_unknown test_void timer_info timer_pause 
timer_start timer_stop timer_stopall tolower toupper tr trim trunc type 
typename undofile undotree uniq utf16idx values virtcol virtcol2col visualmode 
wildmenumode win_execute win_findbuf win_getid win_gettype win_gotoid 
win_id2tabwin win_id2win win_move_separator win_move_statusline win_screenpos 
win_splitmove winbufnr wincol windowsversion winheight winlayout winline winnr 
winrestcmd winrestview winsaveview winwidth
-syn keyword vimFuncName contained wordcount writefile xor
+syn keyword vimFuncName contained abs acos add and append appendbufline argc 
argidx arglistid argv asin assert_beeps assert_equal assert_equalfile 
assert_exception assert_fails assert_false assert_inrange assert_match 
assert_nobeep assert_notequal assert_notmatch assert_report assert_true atan 
atan2 autocmd_add autocmd_delete autocmd_get balloon_gettext balloon_show 
balloon_split bindtextdomain blob2list browse browsedir bufadd bufexists 
buflisted bufload bufloaded bufname bufnr bufwinid bufwinnr byte2line byteidx 
byteidxcomp call ceil ch_canread ch_close ch_close_in ch_evalexpr ch_evalraw 
ch_getbufnr ch_getjob ch_info ch_log ch_logfile ch_open ch_read ch_readblob 
ch_readraw ch_sendexpr ch_sendraw ch_setoptions ch_status changenr char2nr 
charclass charcol charidx
+syn keyword vimFuncName contained chdir cindent clearmatches col complete 
complete_add complete_check complete_info confirm copy cos cosh count 
cscope_connection cursor debugbreak deepcopy delete deletebufline did_filetype 
diff diff_filler diff_hlID digraph_get digraph_getlist digraph_set 
digraph_setlist echoraw empty environ err_teapot escape eval eventhandler 
executable execute exepath exists exists_compiled exp expand expandcmd extend 
extendnew feedkeys filecopy filereadable filewritable filter finddir findfile 
flatten flattennew float2nr floor fmod fnameescape fnamemodify foldclosed 
foldclosedend foldlevel foldtext foldtextresult foreach foreground fullcommand 
funcref function garbagecollect get getbufinfo getbufline getbufoneline 
getbufvar getcellwidths getchangelist
+syn keyword vimFuncName contained getchar getcharmod getcharpos getcharsearch 
getcharstr getcmdcompltype getcmdline getcmdpos getcmdscreenpos getcmdtype 
getcmdwintype getcompletion getcurpos getcursorcharpos getcwd getenv 
getfontname getfperm getfsize getftime getftype getimstatus getjumplist getline 
getloclist getmarklist getmatches getmousepos getmouseshape getpid getpos 
getqflist getreg getreginfo getregion getregionpos getregtype getscriptinfo 
gettabinfo gettabvar gettabwinvar gettagstack gettext getwininfo getwinpos 
getwinposx getwinposy getwinvar glob glob2regpat globpath has has_key 
haslocaldir hasmapto histadd histdel histget histnr hlID hlexists hlget hlset 
hostname iconv indent index indexof input inputdialog inputlist inputrestore 
inputsave inputsecret
+syn keyword vimFuncName contained insert instanceof interrupt invert 
isabsolutepath isdirectory isinf islocked isnan items job_getchannel job_info 
job_setoptions job_start job_status job_stop join js_decode js_encode 
json_decode json_encode keys keytrans len libcall libcallnr line line2byte 
lispindent list2blob list2str listener_add listener_flush listener_remove 
localtime log log10 luaeval map maparg mapcheck maplist mapnew mapset match 
matchadd matchaddpos matcharg matchbufline matchdelete matchend matchfuzzy 
matchfuzzypos matchlist matchstr matchstrlist matchstrpos max menu_info min 
mkdir mode mzeval nextnonblank nr2char or pathshorten perleval popup_atcursor 
popup_beval popup_clear popup_close popup_create popup_dialog popup_filter_menu 
popup_filter_yesno
+syn keyword vimFuncName contained popup_findecho popup_findinfo 
popup_findpreview popup_getoptions popup_getpos popup_hide popup_list 
popup_locate popup_menu popup_move popup_notification popup_setbuf 
popup_setoptions popup_settext popup_show pow prevnonblank printf 
prompt_getprompt prompt_setcallback prompt_setinterrupt prompt_setprompt 
prop_add prop_add_list prop_clear prop_find prop_list prop_remove prop_type_add 
prop_type_change prop_type_delete prop_type_get prop_type_list pum_getpos 
pumvisible py3eval pyeval pyxeval rand range readblob readdir readdirex 
readfile reduce reg_executing reg_recording reltime reltimefloat reltimestr 
remote_expr remote_foreground remote_peek remote_read remote_send 
remote_startserver remove rename repeat resolve reverse round
+syn keyword vimFuncName contained rubyeval screenattr screenchar screenchars 
screencol screenpos screenrow screenstring search searchcount searchdecl 
searchpair searchpairpos searchpos server2client serverlist setbufline 
setbufvar setcellwidths setcharpos setcharsearch setcmdline setcmdpos 
setcursorcharpos setenv setfperm setline setloclist setmatches setpos setqflist 
setreg settabvar settabwinvar settagstack setwinvar sha256 shellescape 
shiftwidth sign_define sign_getdefined sign_getplaced sign_jump sign_place 
sign_placelist sign_undefine sign_unplace sign_unplacelist simplify sin sinh 
slice sort sound_clear sound_playevent sound_playfile sound_stop soundfold 
spellbadword spellsuggest split sqrt srand state str2float str2list str2nr 
strcharlen strcharpart strchars
+syn keyword vimFuncName contained strdisplaywidth strftime strgetchar stridx 
string strlen strpart strptime strridx strtrans strutf16len strwidth submatch 
substitute swapfilelist swapinfo swapname synID synIDattr synIDtrans 
synconcealed synstack system systemlist tabpagebuflist tabpagenr tabpagewinnr 
tagfiles taglist tan tanh tempname term_dumpdiff term_dumpload term_dumpwrite 
term_getaltscreen term_getansicolors term_getattr term_getcursor term_getjob 
term_getline term_getscrolled term_getsize term_getstatus term_gettitle 
term_gettty term_list term_scrape term_sendkeys term_setansicolors term_setapi 
term_setkill term_setrestore term_setsize term_start term_wait terminalprops 
test_alloc_fail test_autochdir test_feedinput test_garbagecollect_now 
test_garbagecollect_soon
+syn keyword vimFuncName contained test_getvalue test_gui_event 
test_ignore_error test_mswin_event test_null_blob test_null_channel 
test_null_dict test_null_function test_null_job test_null_list 
test_null_partial test_null_string test_option_not_set test_override 
test_refcount test_setmouse test_settime test_srand_seed test_unknown test_void 
timer_info timer_pause timer_start timer_stop timer_stopall tolower toupper tr 
trim trunc type typename undofile undotree uniq utf16idx values virtcol 
virtcol2col visualmode wildmenumode win_execute win_findbuf win_getid 
win_gettype win_gotoid win_id2tabwin win_id2win win_move_separator 
win_move_statusline win_screenpos win_splitmove winbufnr wincol windowsversion 
winheight winlayout winline winnr winrestcmd winrestview winsaveview
+syn keyword vimFuncName contained winwidth wordcount writefile xor
 
 "--- syntax here and above generated by mkvimvim ---
 " Special Vim Highlighting (not automatic) {{{1
@@ -213,7 +211,7 @@ syn match   vimNumber       '\%(^\|\A\)\zs#\x\{6}'          
skipwhite nextgroup=vimGlobal,vimSub
 syn case match
 
 " All vimCommands are contained by vimIsCommand. {{{2
-syn cluster vimCmdList 
contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate
+syn cluster vimCmdList 
contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate
 syn match vimCmdSep    "[:|]\+"        skipwhite 
nextgroup=@vimCmdList,vimSubst1
 syn match vimIsCommand "\<\%(\h\w*\|[23]mat\%[ch]\)\>" contains=vimCommand
 syn match vimVar             contained "\<\h[a-zA-Z0-9#_]*\>"
@@ -697,6 +695,15 @@ endif
 
 syn match vimNotFunc   "\<if\>\|\<el\%[seif]\>\|\<retu\%[rn]\>\|\<while\>"     
skipwhite nextgroup=vimOper,vimOperParen,vimVar,vimFunc,vimNotation
 
+" Match: {{{2
+" =====
+syn match      vimMatch                "\<[23]\=mat\%[ch]\>" skipwhite 
nextgroup=vimMatchGroup,vimMatchNone
+syn match      vimMatchGroup   contained       "[[:alnum:]._-]\+"    skipwhite 
nextgroup=vimMatchPattern
+syn case ignore
+syn keyword    vimMatchNone    contained       none
+syn case match
+syn region     vimMatchPattern contained       matchgroup=Delimiter 
start="\z([!#$%&'()*+,-./:;<=>?@[\]^_`{}~]\)" skip="\\\|\\z1" end="\z1" 
contains=@vimSubstList oneline
+
 " Norm: {{{2
 " ====
 syn match      vimNorm         "\<norm\%[al]!\=" skipwhite 
nextgroup=vimNormCmds
@@ -1218,6 +1225,9 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimMap    vimCommand
  hi def link vimMark   Number
  hi def link vimMarkNumber     vimNumber
+ hi def link vimMatch  vimCommand
+ hi def link vimMatchGroup     vimGroup
+ hi def link vimMatchNone      vimGroup
  hi def link vimMenuBang       vimBang
  hi def link vimMenuClear      Special
  hi def link vimMenuMod        vimMapMod

-- 
-- 
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/E1sQX7K-009BHE-Nm%40256bit.org.

Raspunde prin e-mail lui