0
0
mirror of https://github.com/vim/vim.git synced 2025-11-14 23:04:02 -05:00

runtime(vim): Update base syntax, match :prompt command args

closes: #18732

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Doug Kearns
2025-11-12 19:17:11 +00:00
committed by Christian Brabandt
parent 89f0a3a574
commit 4f19d2768a
7 changed files with 134 additions and 6 deletions

View File

@@ -1,7 +1,7 @@
" Vim syntax file generator
" Language: Vim script
" Maintainer: Hirohito Higashi (h_east)
" Last Change: 2025 Nov 08
" Last Change: 2025 Nov 11
let s:keepcpo= &cpo
set cpo&vim
@@ -389,6 +389,8 @@ function s:get_vim_command_type(cmd_name)
popup
profdel
profile
promptfind
promptrepl
public
python
pyfile

View File

@@ -246,7 +246,7 @@ syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vi
syn case match
" All vimCommands are contained by vimIsCommand. {{{2
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAt,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDefer,vimDelcommand,vimDelFunction,vimDoCommand,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimEval,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFiletype,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSyntime,vimSynColor,vimSynLink,vimTerminal,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimWincmd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAt,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDefer,vimDelcommand,vimDelFunction,vimDoCommand,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimEval,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFiletype,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimPrompt,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSyntime,vimSynColor,vimSynLink,vimTerminal,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimWincmd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl
syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
syn match vimCmdSep "\\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,@vimFunc
syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1
@@ -1591,6 +1591,15 @@ syn keyword vimProfdelArg contained file skipwhite nextgroup=vimProfilePattern
syn keyword vimProfdelArg contained here skipwhite nextgroup=vimCmdSep,@vimComment
syn match vimProfdel "\<profd\%[el]\>" skipwhite nextgroup=vimProfdelArg
" Prompt{find,repl}: {{{2
" =================
syn region vimPromptArg contained
\ start="\S"
\ skip=+\n\s*\%(\\\|["#]\\ \)+
\ end="$"
\ contains=@vimContinue
syn keyword vimPrompt promptf[ind] promptr[epl] skipwhite nextgroup=vimPromptArg
" Redir: {{{2
" =====
syn match vimRedir "\<redir\=\>" skipwhite nextgroup=vimRedirBang,vimRedirFileOperator,vimRedirVariableOperator,vimRedirRegister,vimRedirEnd
@@ -2519,6 +2528,7 @@ if !exists("skip_vim_syntax_inits")
hi def link vimProfileBang vimBang
hi def link vimProfdel vimCommand
hi def link vimProfdelArg vimSpecial
hi def link vimPrompt vimCommand
hi def link vimPython vimCommand
hi def link vimPython3 vimCommand
hi def link vimPythonX vimCommand

View File

@@ -0,0 +1,20 @@
>"+0#0000e05#ffffff0| |V|i|m| |:|p|r|o|m|p|t|{|f|i|n|d|,|r|e|p|l|}| |c|o|m@1|a|n|d|s| +0#0000000&@41
@75
@75
|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&|f|o@1| @60
|p+0#af5f00255&|r|o|m|p|t|r|e|p|l| +0#0000000&|f|o@1| @60
@75
|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&|a| @62
@6|\+0#e000e06&| +0#0000000&|r|e|a|l@1|y| @60
@6|\+0#e000e06&| +0#0000000&|l|o|n|g| @62
@6|\+0#e000e06&| +0#0000000&|s|e|a|r|c|h| @60
@6|\+0#e000e06&| +0#0000000&|s|t|r|i|n|g| @60
|p+0#af5f00255&|r|o|m|p|t|r|e|p|l| +0#0000000&|a| @62
@6|\+0#e000e06&| +0#0000000&|r|e|a|l@1|y| @60
@6|\+0#e000e06&| +0#0000000&|l|o|n|g| @62
@6|\+0#e000e06&| +0#0000000&|s|e|a|r|c|h| @60
@6|\+0#e000e06&| +0#0000000&|s|t|r|i|n|g| @60
@75
@75
|"+0#0000e05&| |n|o| |t|a|i|l| |c|o|m@1|e|n|t| |o|r| |t|r|a|i|l|i|n|g| |b|a|r| +0#0000000&@41
@57|1|,|1| @10|T|o|p|

View File

@@ -0,0 +1,20 @@
| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|l|o|n|g| @62
@6|\+0#e000e06&| +0#0000000&|s|e|a|r|c|h| @60
@6|\+0#e000e06&| +0#0000000&|s|t|r|i|n|g| @60
@75
@75
>"+0#0000e05&| |n|o| |t|a|i|l| |c|o|m@1|e|n|t| |o|r| |t|r|a|i|l|i|n|g| |b|a|r| +0#0000000&@41
@75
|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&|f|o@1| |"| |m|o|r|e| |s|e|a|r|c|h| |s|t|r|i|n|g| @39
|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&|f|o@1| ||| |m|o|r|e| |s|e|a|r|c|h| |s|t|r|i|n|g| @39
@75
@75
|d+0#af5f00255&|e|f| +0#0000000&|V|i|m|9|C|o|n|t|e|x|t|(+0#e000e06&|)| +0#0000000&@57
@2|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&|f|o@1| @58
@2|p+0#af5f00255&|r|o|m|p|t|r|e|p|l| +0#0000000&|f|o@1| @58
@75
@2|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&|a| @60
@8|\+0#e000e06&| +0#0000000&|r|e|a|l@1|y| @58
@8|\+0#e000e06&| +0#0000000&|l|o|n|g| @60
@8|\+0#e000e06&| +0#0000000&|s|e|a|r|c|h| @58
@57|1|9|,|1| @9|4|8|%|

View File

@@ -0,0 +1,20 @@
| +0&#ffffff0@7|\+0#e000e06&| +0#0000000&|s|e|a|r|c|h| @58
@8|\+0#e000e06&| +0#0000000&|s|t|r|i|n|g| @58
@2|p+0#af5f00255&|r|o|m|p|t|r|e|p|l| +0#0000000&|a| @60
@8|\+0#e000e06&| +0#0000000&|r|e|a|l@1|y| @58
@8|\+0#e000e06&| +0#0000000&|l|o|n|g| @60
@8>\+0#e000e06&| +0#0000000&|s|e|a|r|c|h| @58
@8|\+0#e000e06&| +0#0000000&|s|t|r|i|n|g| @58
@75
@75
@2|#+0#0000e05&| |n|o| |t|a|i|l| |c|o|m@1|e|n|t| |o|r| |t|r|a|i|l|i|n|g| |b|a|r| +0#0000000&@39
@75
@2|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&|f|o@1| |#| |m|o|r|e| |s|e|a|r|c|h| |s|t|r|i|n|g| @37
@2|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&|f|o@1| ||| |m|o|r|e| |s|e|a|r|c|h| |s|t|r|i|n|g| @37
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
@75
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
| +0#0000000&@56|3|7|,|2|-|9| @7|B|o|t|

View File

@@ -0,0 +1,46 @@
" Vim :prompt{find,repl} commands
promptfind foo
promptrepl foo
promptfind a
\ really
\ long
\ search
\ string
promptrepl a
\ really
\ long
\ search
\ string
" no tail comment or trailing bar
promptfind foo " more search string
promptfind foo | more search string
def Vim9Context()
promptfind foo
promptrepl foo
promptfind a
\ really
\ long
\ search
\ string
promptrepl a
\ really
\ long
\ search
\ string
# no tail comment or trailing bar
promptfind foo # more search string
promptfind foo | more search string
enddef

View File

@@ -36,9 +36,9 @@ syn cluster vimCommentGroup contains=vimTodo,@Spell
" GEN_SYN_VIM: vimCommand normal, START_STR='syn keyword vimCommand contained', END_STR='nextgroup=vimBang'
syn keyword vimCommand contained al[l] ar[gs] arga[dd] argd[elete] argded[upe] arge[dit] argg[lobal] argl[ocal] argu[ment] as[cii] b[uffer] bN[ext] ba[ll] bad[d] balt bd[elete] bf[irst] bl[ast] bm[odified] bn[ext] bp[revious] br[ewind] brea[k] breaka[dd] breakd[el] breakl[ist] buffers bun[load] bw[ipeout] cN[ext] cNf[ile] cabo[ve] cad[dbuffer] cadde[xpr] caddf[ile] caf[ter] cb[uffer] cbe[fore] cbel[ow] cbo[ttom] cc ccl[ose] cd ce[nter] cex[pr] cf[ile] cfir[st] cg[etfile] cgetb[uffer] cgete[xpr] changes che[ckpath] checkt[ime] chi[story] cl[ist] clip[reset] cla[st] clo[se] cle[arjumps] cn[ext] cnew[er] cnf[ile] col[der] colo[rscheme] comc[lear] comp[iler] con[tinue] cope[n] cp[revious] cpf[ile] cq[uit] cr[ewind] cs[cope] cst[ag] cw[indow] delm[arks] deb[ug] defc[ompile] nextgroup=vimBang
syn keyword vimCommand contained 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] em[enu] endfo[r] endt[ry] endw[hile] ene[w] ex exi[t] exu[sage] f[ile] files fin[d] fina[lly] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] foldo[pen] g[lobal] go[to] gu[i] gv[im] h[elp] helpc[lose] helpf[ind] helpt[ags] ha[rdcopy] his[tory] ij[ump] il[ist] int[ro] ip[ut] is[earch] isp[lit] ju[mps] 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] le[ft] lex[pr] lf[ile] lfir[st] lg[etfile] lgetb[uffer] lgete[xpr] lhi[story] ll lla[st] lli[st] nextgroup=vimBang
syn keyword vimCommand contained lmak[e] lne[xt] lnew[er] lnf[ile] lo[adview] lockv[ar] lol[der] lop[en] lp[revious] lpf[ile] lr[ewind] lt[ag] lw[indow] ls m[ove] marks mes[sages] mk[exrc] mks[ession] mksp[ell] mkv[imrc] mkvie[w] mod[e] n[ext] nb[key] nbc[lose] nbs[tart] noh[lsearch] nu[mber] o[pen] ol[dfiles] on[ly] opt[ions] ow[nsyntax] p[rint] pa[ckadd] packl[oadall] pb[uffer] pc[lose] ped[it] po[p] pp[op] pre[serve] prev[ious] pro[mptfind] promptr[epl] ps[earch] pt[ag] ptN[ext] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] q[uit] quita[ll] qa[ll] r[ead] rec[over] red[o] redr[aw] redraws[tatus] redrawt[abline] redrawtabp[anel] reg[isters] res[ize] ret[ab] rew[ind] ri[ght] ru[ntime] rund[o] rv[iminfo] sN[ext] sa[rgument] nextgroup=vimBang
syn keyword vimCommand contained sal[l] sav[eas] sb[uffer] sbN[ext] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbp[revious] sbr[ewind] scr[iptnames] scripte[ncoding] scriptv[ersion] scs[cope] setf[iletype] sf[ind] sfir[st] sh[ell] sim[alt] sig[n] sla[st] sn[ext] so[urce] spe[llgood] spelld[ump] spelli[nfo] spellr[epall] spellra[re] spellu[ndo] spellw[rong] spr[evious] sre[wind] st[op] sta[g] star[tinsert] startg[replace] startr[eplace] stopi[nsert] stj[ump] sts[elect] sun[hide] sus[pend] sv[iew] sync[bind] smi[le] t tN[ext] ta[g] tags tabc[lose] tabe[dit] tabf[ind] tabfir[st] tabm[ove] tabl[ast] tabn[ext] tabnew tabo[nly] tabp[revious] tabN[ext] tabr[ewind] tabs tc[d] tch[dir] te[aroff] tf[irst] tj[ump] tl[ast] tn[ext] tp[revious] tr[ewind] try ts[elect] nextgroup=vimBang
syn keyword vimCommand contained u[ndo] undoj[oin] undol[ist] unh[ide] up[date] v[global] ve[rsion] vi[sual] vie[w] viu[sage] vne[w] vs[plit] w[rite] wN[ext] wa[ll] wi[nsize] winp[os] wl[restore] 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 nextgroup=vimBang
syn keyword vimCommand contained lmak[e] lne[xt] lnew[er] lnf[ile] lo[adview] lockv[ar] lol[der] lop[en] lp[revious] lpf[ile] lr[ewind] lt[ag] lw[indow] ls m[ove] marks mes[sages] mk[exrc] mks[ession] mksp[ell] mkv[imrc] mkvie[w] mod[e] n[ext] nb[key] nbc[lose] nbs[tart] noh[lsearch] nu[mber] o[pen] ol[dfiles] on[ly] opt[ions] ow[nsyntax] p[rint] pa[ckadd] packl[oadall] pb[uffer] pc[lose] ped[it] po[p] pp[op] pre[serve] prev[ious] ps[earch] pt[ag] ptN[ext] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] q[uit] quita[ll] qa[ll] r[ead] rec[over] red[o] redr[aw] redraws[tatus] redrawt[abline] redrawtabp[anel] reg[isters] res[ize] ret[ab] rew[ind] ri[ght] ru[ntime] rund[o] rv[iminfo] sN[ext] sa[rgument] sal[l] sav[eas] sb[uffer] nextgroup=vimBang
syn keyword vimCommand contained sbN[ext] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbp[revious] sbr[ewind] scr[iptnames] scripte[ncoding] scriptv[ersion] scs[cope] setf[iletype] sf[ind] sfir[st] sh[ell] sim[alt] sig[n] sla[st] sn[ext] so[urce] spe[llgood] spelld[ump] spelli[nfo] spellr[epall] spellra[re] spellu[ndo] spellw[rong] spr[evious] sre[wind] st[op] sta[g] star[tinsert] startg[replace] startr[eplace] stopi[nsert] stj[ump] sts[elect] sun[hide] sus[pend] sv[iew] sync[bind] smi[le] t tN[ext] ta[g] tags tabc[lose] tabe[dit] tabf[ind] tabfir[st] tabm[ove] tabl[ast] tabn[ext] tabnew tabo[nly] tabp[revious] tabN[ext] tabr[ewind] tabs tc[d] tch[dir] te[aroff] tf[irst] tj[ump] tl[ast] tn[ext] tp[revious] tr[ewind] try ts[elect] u[ndo] undoj[oin] undol[ist] nextgroup=vimBang
syn keyword vimCommand contained unh[ide] up[date] v[global] ve[rsion] vi[sual] vie[w] viu[sage] vne[w] vs[plit] w[rite] wN[ext] wa[ll] wi[nsize] winp[os] wl[restore] 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 nextgroup=vimBang
" Lower priority :syn-match to allow for :command/function() distinction
syn match vimCommand "\<chd\%[ir]\>" nextgroup=vimBang
@@ -300,7 +300,7 @@ syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vi
syn case match
" All vimCommands are contained by vimIsCommand. {{{2
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAt,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDefer,vimDelcommand,vimDelFunction,vimDoCommand,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimEval,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFiletype,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSyntime,vimSynColor,vimSynLink,vimTerminal,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimWincmd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAt,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDefer,vimDelcommand,vimDelFunction,vimDoCommand,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimEval,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFiletype,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimPrompt,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSyntime,vimSynColor,vimSynLink,vimTerminal,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimWincmd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl
syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
syn match vimCmdSep "\\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,@vimFunc
syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1
@@ -1653,6 +1653,15 @@ syn keyword vimProfdelArg contained file skipwhite nextgroup=vimProfilePattern
syn keyword vimProfdelArg contained here skipwhite nextgroup=vimCmdSep,@vimComment
syn match vimProfdel "\<profd\%[el]\>" skipwhite nextgroup=vimProfdelArg
" Prompt{find,repl}: {{{2
" =================
syn region vimPromptArg contained
\ start="\S"
\ skip=+\n\s*\%(\\\|["#]\\ \)+
\ end="$"
\ contains=@vimContinue
syn keyword vimPrompt promptf[ind] promptr[epl] skipwhite nextgroup=vimPromptArg
" Redir: {{{2
" =====
syn match vimRedir "\<redir\=\>" skipwhite nextgroup=vimRedirBang,vimRedirFileOperator,vimRedirVariableOperator,vimRedirRegister,vimRedirEnd
@@ -2581,6 +2590,7 @@ if !exists("skip_vim_syntax_inits")
hi def link vimProfileBang vimBang
hi def link vimProfdel vimCommand
hi def link vimProfdelArg vimSpecial
hi def link vimPrompt vimCommand
hi def link vimPython vimCommand
hi def link vimPython3 vimCommand
hi def link vimPythonX vimCommand