comparison runtime/syntax/vim.vim @ 34870:3f9703c1bbea

runtime(vim): Improve Vim9 and legacy-script comment highlighting (#13104) Commit: https://github.com/vim/vim/commit/04e5363b823827f144409df011376d00ea6df750 Author: dkearns <dougkearns@gmail.com> Date: Thu Apr 11 06:18:37 2024 +1000 runtime(vim): Improve Vim9 and legacy-script comment highlighting (https://github.com/vim/vim/issues/13104) This is a first-pass attempt to limit matching of Vim9 and legacy-script comments to the appropriate syntactic contexts. Vim9-script comments are highlighted at top level in a Vim9-script file, in all :def functions, and in all :autocmd and :commmand command blocks. Legacy-script comments are highlighted at top level in a legacy script file, in all :func functions and in the Vim9-script preamble before the :vim9script marker command. Fixes #13047, #11307 and #9587. Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Wed, 10 Apr 2024 22:30:04 +0200
parents b8b18dafd432
children 4f97b92f4451
comparison
equal deleted inserted replaced
34869:cd2cbfd9d646 34870:3f9703c1bbea
1 " Vim syntax file 1 " Vim syntax file
2 " Language: Vim script 2 " Language: Vim script
3 " Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com> 3 " Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
4 " Doug Kearns <dougkearns@gmail.com> 4 " Doug Kearns <dougkearns@gmail.com>
5 " URL: https://github.com/vim-jp/syntax-vim-ex 5 " URL: https://github.com/vim-jp/syntax-vim-ex
6 " Last Change: 2024 Apr 09 6 " Last Change: 2024 Apr 11
7 " Former Maintainer: Charles E. Campbell 7 " Former Maintainer: Charles E. Campbell
8 8
9 " DO NOT CHANGE DIRECTLY. 9 " DO NOT CHANGE DIRECTLY.
10 " THIS FILE PARTLY GENERATED BY gen_syntax_vim.vim. 10 " THIS FILE PARTLY GENERATED BY gen_syntax_vim.vim.
11 " (Search string "GEN_SYN_VIM:" in this file) 11 " (Search string "GEN_SYN_VIM:" in this file)
16 if exists("b:current_syntax") 16 if exists("b:current_syntax")
17 finish 17 finish
18 endif 18 endif
19 let s:keepcpo= &cpo 19 let s:keepcpo= &cpo
20 set cpo&vim 20 set cpo&vim
21
22 let s:vim9script = "\n" .. getline(1, 32)->join("\n") =~# '\n\s*vim9\%[script]\>'
21 23
22 " vimTodo: contains common special-notices for comments {{{2 24 " vimTodo: contains common special-notices for comments {{{2
23 " Use the vimCommentGroup cluster to add your own. 25 " Use the vimCommentGroup cluster to add your own.
24 syn keyword vimTodo contained COMBAK FIXME TODO XXX 26 syn keyword vimTodo contained COMBAK FIXME TODO XXX
25 syn cluster vimCommentGroup contains=vimTodo,@Spell 27 syn cluster vimCommentGroup contains=vimTodo,@Spell
29 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] cat[ch] 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] 31 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] cat[ch] 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]
30 syn keyword vimCommand contained comp[iler] 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] 32 syn keyword vimCommand contained comp[iler] 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]
31 syn keyword vimCommand contained helpg[rep] 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] 33 syn keyword vimCommand contained helpg[rep] 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]
32 syn keyword vimCommand contained ls m[ove] 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] 34 syn keyword vimCommand contained ls m[ove] 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]
33 syn keyword vimCommand contained ret[ab] retu[rn] 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] sl[eep] 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] 35 syn keyword vimCommand contained ret[ab] retu[rn] 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] sl[eep] 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]
34 syn keyword vimCommand contained tabf[ind] tabfir[st] 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] th[row] 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] vim9s[cript] 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 36 syn keyword vimCommand contained tabf[ind] tabfir[st] 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] th[row] 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
35 37
36 syn keyword vimCommand contained 2mat[ch] 3mat[ch] 38 syn keyword vimCommand contained 2mat[ch] 3mat[ch]
37 39
38 " Lower priority for _new_ to distinguish constructors from the command. 40 " Lower priority for _new_ to distinguish constructors from the command.
39 syn match vimCommand contained "\<new\>(\@!" 41 syn match vimCommand contained "\<new\>(\@!"
191 endif 193 endif
192 194
193 " Numbers {{{2 195 " Numbers {{{2
194 " ======= 196 " =======
195 syn case ignore 197 syn case ignore
196 syn match vimNumber '\<\d\+\%(\.\d\+\%(e[+-]\=\d\+\)\=\)\=' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment 198 syn match vimNumber '\<\d\+\%(\.\d\+\%(e[+-]\=\d\+\)\=\)\=' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
197 syn match vimNumber '\<0b[01]\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment 199 syn match vimNumber '\<0b[01]\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
198 syn match vimNumber '\<0o\=\o\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment 200 syn match vimNumber '\<0o\=\o\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
199 syn match vimNumber '\<0x\x\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment 201 syn match vimNumber '\<0x\x\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
200 syn match vimNumber '\<0z\>' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment 202 syn match vimNumber '\<0z\>' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
201 syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment 203 syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
202 syn match vimNumber '\%(^\|\A\)\zs#\x\{6}' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment 204 syn match vimNumber '\%(^\|\A\)\zs#\x\{6}' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,@vimComment
203 syn case match 205 syn case match
204 206
205 " All vimCommands are contained by vimIsCommand. {{{2 207 " All vimCommands are contained by vimIsCommand. {{{2
206 syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimNotFunc,vimNorm,vimSet,vimSyntax,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate 208 syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimNotFunc,vimNorm,vimSet,vimSyntax,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate
207 syn match vimCmdSep "[:|]\+" skipwhite nextgroup=@vimCmdList,vimSubst1 209 syn match vimCmdSep "[:|]\+" skipwhite nextgroup=@vimCmdList,vimSubst1
243 syn keyword vimFTCmd contained filet[ype] 245 syn keyword vimFTCmd contained filet[ype]
244 syn keyword vimFTOption contained detect indent off on plugin 246 syn keyword vimFTOption contained detect indent off on plugin
245 247
246 " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 248 " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
247 " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. 249 " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
248 syn cluster vimAugroupList contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vim9Comment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimNotation,vimCtrlChar,vimFuncVar,vimContinue 250 syn cluster vimAugroupList contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,@vimComment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
249 syn match vimAugroup "\<aug\%[roup]\>" contains=vimAugroupKey,vimAugroupBang skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup 251 syn match vimAugroup "\<aug\%[roup]\>" contains=vimAugroupKey,vimAugroupBang skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup
250 if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a' 252 if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a'
251 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 253 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
252 else 254 else
253 syn region vimAugroup 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 255 syn region vimAugroup 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
334 syn region vimCompoundType contained matchgroup=vimType start="\<\%(list\|dict\)<" end=">" contains=@vimType oneline transparent 336 syn region vimCompoundType contained matchgroup=vimType start="\<\%(list\|dict\)<" end=">" contains=@vimType oneline transparent
335 syn match vimUserType contained "\<\u\w*\>" 337 syn match vimUserType contained "\<\u\w*\>"
336 338
337 syn cluster vimType contains=vimType,vimCompoundType,vimUserType 339 syn cluster vimType contains=vimType,vimCompoundType,vimUserType
338 340
339 " Keymaps: (Vim Project Addition) {{{2 341 " Keymaps: {{{2
340 " ======= 342 " =======
341 343
342 " TODO: handle Vim9 script comments when something like #13104 is merged 344 syn match vimKeymapStart "^" contained skipwhite nextgroup=vimKeymapLhs,@vimKeymapLineComment
343 syn match vimKeymapStart "^" contained skipwhite nextgroup=vimKeymapLhs,vimKeymapLineComment
344 syn match vimKeymapLhs "\S\+" contained skipwhite nextgroup=vimKeymapRhs contains=vimNotation 345 syn match vimKeymapLhs "\S\+" contained skipwhite nextgroup=vimKeymapRhs contains=vimNotation
345 syn match vimKeymapRhs "\S\+" contained skipwhite nextgroup=vimKeymapTailComment contains=vimNotation 346 syn match vimKeymapRhs "\S\+" contained skipwhite nextgroup=vimKeymapTailComment contains=vimNotation
346 syn match vimKeymapTailComment "\S.*" contained 347 syn match vimKeymapTailComment "\S.*" contained
347 syn match vimKeymapLineComment +".*+ contained contains=@vimCommentGroup,vimCommentString,vimCommentTitle 348
349 " TODO: remove when :" comment is matched in parts as "ex-colon comment" --djk
350 if s:vim9script
351 syn match vim9KeymapLineComment "#.*" contained contains=@vimCommentGroup,vimCommentString,vim9CommentTitle
352 else
353 syn match vimKeymapLineComment +".*+ contained contains=@vimCommentGroup,vimCommentString,vimCommentTitle
354 endif
355 syn cluster vimKeymapLineComment contains=vim9\=KeymapLineComment
348 356
349 syn region vimKeymap matchgroup=vimCommand start="\<loadk\%[eymap]\>" end="\%$" contains=vimKeymapStart 357 syn region vimKeymap matchgroup=vimCommand start="\<loadk\%[eymap]\>" end="\%$" contains=vimKeymapStart
350 358
351 " Special Filenames, Modifiers, Extension Removal: {{{2 359 " Special Filenames, Modifiers, Extension Removal: {{{2
352 " =============================================== 360 " ===============================================
358 syn match vimSpecFile "#\d\+\|[#%]<\>" nextgroup=vimSpecFileMod,vimSubst1 366 syn match vimSpecFile "#\d\+\|[#%]<\>" nextgroup=vimSpecFileMod,vimSubst1
359 syn match vimSpecFileMod "\(:[phtre]\)\+" contained 367 syn match vimSpecFileMod "\(:[phtre]\)\+" contained
360 368
361 " User-Specified Commands: {{{2 369 " User-Specified Commands: {{{2
362 " ======================= 370 " =======================
363 syn cluster vimUserCmdList contains=@vimCmdList,vimCmplxRepeat,vimComment,vim9Comment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange 371 syn cluster vimUserCmdList contains=@vimCmdList,vimCmplxRepeat,@vimComment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange
364 syn keyword vimUserCommand contained com[mand] 372 syn keyword vimUserCommand contained com[mand]
365 syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter 373 syn match vimUserCmdName contained "\<\u\w*\>" nextgroup=vimUserCmdBlock skipwhite
374 syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter,vimCmdBlock,vimUserCmdName
366 syn match vimUserAttrbError contained "-\a\+\ze\s" 375 syn match vimUserAttrbError contained "-\a\+\ze\s"
367 syn match vimUserAttrb contained "-nargs=[01*?+]" contains=vimUserAttrbKey,vimOper 376 syn match vimUserAttrb contained "-nargs=[01*?+]" contains=vimUserAttrbKey,vimOper
368 syn match vimUserAttrb contained "-complete=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError 377 syn match vimUserAttrb contained "-complete=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
369 syn match vimUserAttrb contained "-range\(=%\|=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey 378 syn match vimUserAttrb contained "-range\(=%\|=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey
370 syn match vimUserAttrb contained "-count\(=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey 379 syn match vimUserAttrb contained "-count\(=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey
383 syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError 392 syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError
384 393
385 syn case match 394 syn case match
386 syn match vimUserAttrbCmplt contained "custom,\u\w*" 395 syn match vimUserAttrbCmplt contained "custom,\u\w*"
387 396
397 syn region vimUserCmdBlock contained matchgroup=vimSep start="{" end="}" contains=@vimDefBodyList
398
388 " Lower Priority Comments: after some vim commands... {{{2 399 " Lower Priority Comments: after some vim commands... {{{2
389 " ======================= 400 " =======================
390 syn match vimComment excludenl +\s"[^\-:.%#=*].*$+lc=1 contains=@vimCommentGroup,vimCommentString 401 syn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"'
391 syn match vimComment +\<endif\s\+".*$+lc=5 contains=@vimCommentGroup,vimCommentString 402
392 syn match vimComment +\<else\s\+".*$+lc=4 contains=@vimCommentGroup,vimCommentString 403 if s:vim9script
393 syn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"' 404 syn match vimComment excludenl +\s"[^\-:.%#=*].*$+lc=1 contains=@vimCommentGroup,vimCommentString contained
394 " Vim9 comments - TODO: might be highlighted while they don't work 405 syn match vimComment +\<endif\s\+".*$+lc=5 contains=@vimCommentGroup,vimCommentString contained
395 syn match vim9Comment excludenl +\s#[^{].*$+lc=1 contains=@vimCommentGroup,vimCommentString 406 syn match vimComment +\<else\s\+".*$+lc=4 contains=@vimCommentGroup,vimCommentString contained
396 syn match vim9Comment +\<endif\s\+#[^{].*$+lc=5 contains=@vimCommentGroup,vimCommentString 407 " Vim9 comments - TODO: might be highlighted while they don't work
397 syn match vim9Comment +\<else\s\+#[^{].*$+lc=4 contains=@vimCommentGroup,vimCommentString 408 syn match vim9Comment excludenl +\s#[^{].*$+lc=1 contains=@vimCommentGroup,vimCommentString
398 " Vim9 comment inside expression 409 syn match vim9Comment +\<endif\s\+#[^{].*$+lc=5 contains=@vimCommentGroup,vimCommentString
399 syn match vim9Comment +\s\zs#[^{].*$+ms=s+1 contains=@vimCommentGroup,vimCommentString 410 syn match vim9Comment +\<else\s\+#[^{].*$+lc=4 contains=@vimCommentGroup,vimCommentString
400 syn match vim9Comment +^\s*#[^{].*$+ contains=@vimCommentGroup,vimCommentString 411 " Vim9 comment inside expression
401 syn match vim9Comment +^\s*#$+ contains=@vimCommentGroup,vimCommentString 412 " syn match vim9Comment +\s\zs#[^{].*$+ms=s+1 contains=@vimCommentGroup,vimCommentString
413 " syn match vim9Comment +^\s*#[^{].*$+ contains=@vimCommentGroup,vimCommentString
414 " syn match vim9Comment +^\s*#$+ contains=@vimCommentGroup,vimCommentString
415
416 syn cluster vimComment contains=vim9Comment
417 else
418 syn match vimComment excludenl +\s"[^\-:.%#=*].*$+lc=1 contains=@vimCommentGroup,vimCommentString
419 syn match vimComment +\<endif\s\+".*$+lc=5 contains=@vimCommentGroup,vimCommentString
420 syn match vimComment +\<else\s\+".*$+lc=4 contains=@vimCommentGroup,vimCommentString
421 " Vim9 comments - TODO: might be highlighted while they don't work
422 syn match vim9Comment excludenl +\s#[^{].*$+lc=1 contains=@vimCommentGroup,vimCommentString contained
423 syn match vim9Comment +\<endif\s\+#[^{].*$+lc=5 contains=@vimCommentGroup,vimCommentString contained
424 syn match vim9Comment +\<else\s\+#[^{].*$+lc=4 contains=@vimCommentGroup,vimCommentString contained
425 " Vim9 comment inside expression
426 syn match vim9Comment +\s\zs#[^{].*$+ms=s+1 contains=@vimCommentGroup,vimCommentString contained
427 syn match vim9Comment +^\s*#[^{].*$+ contains=@vimCommentGroup,vimCommentString contained
428 syn match vim9Comment +^\s*#$+ contains=@vimCommentGroup,vimCommentString contained
429
430 syn cluster vimComment contains=vimComment
431 endif
402 432
403 " Environment Variables: {{{2 433 " Environment Variables: {{{2
404 " ===================== 434 " =====================
405 syn match vimEnvvar "\$\I\i*" 435 syn match vimEnvvar "\$\I\i*"
406 syn match vimEnvvar "\${\I\i*}" 436 syn match vimEnvvar "\${\I\i*}"
486 " =============== 516 " ===============
487 syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1 517 syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1
488 syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)' 518 syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
489 519
490 " Set command and associated set-options (vimOptions) with comment {{{2 520 " Set command and associated set-options (vimOptions) with comment {{{2
491 syn region vimSet matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\.\n\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vim9Comment,vimSetString,vimSetMod 521 syn region vimSet matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\.\n\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=vimSetEqual,vimOption,vimErrSetting,@vimComment,vimSetString,vimSetMod
492 syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]"me=e-1 end="$" contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar 522 syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]"me=e-1 end="$" contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar
493 syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar 523 syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar
494 syn match vimSetSep contained "[,:]" 524 syn match vimSetSep contained "[,:]"
495 syn match vimSetMod contained "&vim\=\|[!&?<]\|all&" 525 syn match vimSetMod contained "&vim\=\|[!&?<]\|all&"
496 526
520 550
521 " Autocmd: {{{2 551 " Autocmd: {{{2
522 " ======= 552 " =======
523 syn match vimAutoEventList contained "\(!\s\+\)\=\(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace 553 syn match vimAutoEventList contained "\(!\s\+\)\=\(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace
524 syn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList 554 syn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList
525 syn match vimAutoCmdSfxList contained "\S*" skipwhite nextgroup=vimAutoCmdMod 555 syn match vimAutoCmdSfxList contained "\S*" skipwhite nextgroup=vimAutoCmdMod,vimAutoCmdBlock
526 syn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList 556 syn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList
527 syn match vimAutoCmdMod "\(++\)\=\(once\|nested\)" 557 syn match vimAutoCmdMod "\(++\)\=\(once\|nested\)" skipwhite nextgroup=vimAutoCmdBlock
558 syn region vimAutoCmdBlock contained matchgroup=vimSep start="{" end="}" contains=@vimDefBodyList
528 559
529 " Echo And Execute: -- prefer strings! {{{2 560 " Echo And Execute: -- prefer strings! {{{2
530 " ================ 561 " ================
531 " NOTE: No trailing comments 562 " NOTE: No trailing comments
532 563
666 " no whitespace allowed after '=' 697 " no whitespace allowed after '='
667 syn match vimSynCchar contained "\<cchar=" nextgroup=vimSynCcharValue 698 syn match vimSynCchar contained "\<cchar=" nextgroup=vimSynCcharValue
668 syn match vimSynCcharValue contained "\S" 699 syn match vimSynCcharValue contained "\S"
669 endif 700 endif
670 701
671 syn match vimSyntax "\<sy\%[ntax]\>" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment,vim9Comment 702 syn match vimSyntax "\<sy\%[ntax]\>" contains=vimCommand skipwhite nextgroup=vimSynType,@vimComment
672 syn cluster vimFuncBodyList add=vimSyntax 703 syn cluster vimFuncBodyList add=vimSyntax
673 704
674 " Syntax: case {{{2 705 " Syntax: case {{{2
675 syn keyword vimSynType contained case skipwhite nextgroup=vimSynCase,vimSynCaseError 706 syn keyword vimSynType contained case skipwhite nextgroup=vimSynCase,vimSynCaseError
676 if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsyncaseerror") 707 if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsyncaseerror")
755 " ==================== 786 " ====================
756 syn match vimIsCommand "<Bar>\s*\a\+" transparent contains=vimCommand,vimNotation 787 syn match vimIsCommand "<Bar>\s*\a\+" transparent contains=vimCommand,vimNotation
757 788
758 " Highlighting: {{{2 789 " Highlighting: {{{2
759 " ============ 790 " ============
760 syn cluster vimHighlightCluster contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment,vim9Comment 791 syn cluster vimHighlightCluster contains=vimHiLink,vimHiClear,vimHiKeyList,@vimComment
761 if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror") 792 if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror")
762 syn match vimHiCtermError contained "\D\i*" 793 syn match vimHiCtermError contained "\D\i*"
763 endif 794 endif
764 syn match vimHighlight "\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster 795 syn match vimHighlight "\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster
765 syn match vimHiBang contained "\a\@1<=!" skipwhite nextgroup=@vimHighlightCluster 796 syn match vimHiBang contained "\a\@1<=!" skipwhite nextgroup=@vimHighlightCluster
811 " ================== 842 " ==================
812 syn match vimCtrlChar "[- -]" 843 syn match vimCtrlChar "[- -]"
813 844
814 " Beginners - Patterns that involve ^ {{{2 845 " Beginners - Patterns that involve ^ {{{2
815 " ========= 846 " =========
816 syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle,vimComment 847 if s:vim9script
817 syn match vimLineComment +^[ \t:]*"\("[^"]*"\|[^"]\)*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle 848 syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle contained
818 syn match vim9LineComment +^[ \t:]\+#.*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle 849 syn match vim9LineComment +^[ \t:]*#.*$+ contains=@vimCommentGroup,vimCommentString,vim9CommentTitle
850 else
851 syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle
852 syn match vim9LineComment +^[ \t:]*#.*$+ contains=@vimCommentGroup,vimCommentString,vim9CommentTitle contained
853 endif
819 syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup 854 syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
820 " Note: Look-behind to work around nextgroup skipnl consuming leading whitespace and preventing a match 855 syn match vim9CommentTitle '#\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vim9CommentTitleLeader,vimTodo,@vimCommentGroup
821 syn match vimContinue "^\s*\zs\\" 856 syn match vimContinue "^\s*\zs\\"
822 syn match vimContinueComment '^\s*\zs["#]\\ .*' contained 857 syn match vimContinueComment '^\s*\zs["#]\\ .*' contained
823 syn cluster vimContinue contains=vimContinue,vimContinueComment 858 syn cluster vimContinue contains=vimContinue,vimContinueComment
824 syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue 859 syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
825 syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained 860 syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained
861 syn match vim9CommentTitleLeader '#\s\+'ms=s+1 contained
826 862
827 " Searches And Globals: {{{2 863 " Searches And Globals: {{{2
828 " ==================== 864 " ====================
829 syn match vimSearch '^\s*[/?].*' contains=vimSearchDelim 865 syn match vimSearch '^\s*[/?].*' contains=vimSearchDelim
830 syn match vimSearchDelim '^\s*\zs[/?]\|[/?]$' contained 866 syn match vimSearchDelim '^\s*\zs[/?]\|[/?]$' contained
831 syn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst1 867 syn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst1
832 syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst1 868 syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst1
869
870 " Vim9 Script Regions: {{{2
871 " ==================
872
873 if s:vim9script
874 syn cluster vimLegacyTop contains=TOP,vimPreVim9script,vim9Comment,vim9LineComment
875 syn region vimPreVim9script start="\%^" end="^\ze\s*vim9s\%[cript]\>" contains=@vimLegacyTop,vimComment,vimLineComment
876
877 syn keyword vim9ScriptArg noclear
878 syn keyword vimCommand vim9s[cript] nextgroup=vim9ScriptArg skipwhite
879 endif
833 880
834 " Embedded Scripts: {{{2 881 " Embedded Scripts: {{{2
835 " ================ 882 " ================
836 " perl,ruby : Benoit Cerrina 883 " perl,ruby : Benoit Cerrina
837 " python,tcl : Johannes Zellner 884 " python,tcl : Johannes Zellner
1036 hi def link vimSynCaseError vimError 1083 hi def link vimSynCaseError vimError
1037 hi def link vimSynFoldMethodError vimError 1084 hi def link vimSynFoldMethodError vimError
1038 hi def link vimBufnrWarn vimWarn 1085 hi def link vimBufnrWarn vimWarn
1039 endif 1086 endif
1040 1087
1088 hi def link vim9ScriptArg Special
1041 hi def link vimAbb vimCommand 1089 hi def link vimAbb vimCommand
1042 hi def link vimAddress vimMark 1090 hi def link vimAddress vimMark
1043 hi def link vimAugroupBang vimBang 1091 hi def link vimAugroupBang vimBang
1044 hi def link vimAugroupError vimError 1092 hi def link vimAugroupError vimError
1045 hi def link vimAugroupKey vimCommand 1093 hi def link vimAugroupKey vimCommand
1055 hi def link vimCommand Statement 1103 hi def link vimCommand Statement
1056 hi def link vimComment Comment 1104 hi def link vimComment Comment
1057 hi def link vim9Comment Comment 1105 hi def link vim9Comment Comment
1058 hi def link vimCommentString vimString 1106 hi def link vimCommentString vimString
1059 hi def link vimCommentTitle PreProc 1107 hi def link vimCommentTitle PreProc
1108 hi def link vim9CommentTitle PreProc
1060 hi def link vimCondHL vimCommand 1109 hi def link vimCondHL vimCommand
1061 hi def link vimConst vimCommand 1110 hi def link vimConst vimCommand
1062 hi def link vimContinue Special 1111 hi def link vimContinue Special
1063 hi def link vimContinueComment vimComment 1112 hi def link vimContinueComment vimComment
1064 hi def link vimCtrlChar SpecialChar 1113 hi def link vimCtrlChar SpecialChar
1112 hi def link vimHiStartStop vimHiTerm 1161 hi def link vimHiStartStop vimHiTerm
1113 hi def link vimHiTerm Type 1162 hi def link vimHiTerm Type
1114 hi def link vimHLGroup vimGroup 1163 hi def link vimHLGroup vimGroup
1115 hi def link vimInsert vimString 1164 hi def link vimInsert vimString
1116 hi def link vimIskSep Delimiter 1165 hi def link vimIskSep Delimiter
1166 hi def link vim9KeymapLineComment vimKeymapLineComment
1117 hi def link vimKeymapLineComment vimComment 1167 hi def link vimKeymapLineComment vimComment
1118 hi def link vimKeymapTailComment vimComment 1168 hi def link vimKeymapTailComment vimComment
1119 hi def link vimLet vimCommand 1169 hi def link vimLet vimCommand
1120 hi def link vimLetHereDoc vimString 1170 hi def link vimLetHereDoc vimString
1121 hi def link vimLetHereDocStart Special 1171 hi def link vimLetHereDocStart Special
1234 delc VimFoldp 1284 delc VimFoldp
1235 delc VimFoldP 1285 delc VimFoldP
1236 delc VimFoldr 1286 delc VimFoldr
1237 delc VimFoldt 1287 delc VimFoldt
1238 let &cpo = s:keepcpo 1288 let &cpo = s:keepcpo
1239 unlet s:keepcpo 1289 unlet s:keepcpo s:vim9script
1240 " vim:ts=18 fdm=marker ft=vim 1290 " vim:ts=18 fdm=marker ft=vim