Skip to content

Commit 8869800

Browse files
dkearnschrisbra
authored andcommitted
runtime(vim): Update base syntax, match :*do command arg
Match the Ex command arg to all :*do commands. closes: #18700 Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
1 parent a795aab commit 8869800

8 files changed

Lines changed: 182 additions & 10 deletions

File tree

runtime/syntax/generator/gen_syntax_vim.vim

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
" Vim syntax file generator
22
" Language: Vim script
33
" Maintainer: Hirohito Higashi (h_east)
4-
" Last Change: 2025 Oct 11
4+
" Last Change: 2025 Nov 08
55

66
let s:keepcpo= &cpo
77
set cpo&vim
@@ -299,13 +299,17 @@ function s:get_vim_command_type(cmd_name)
299299
Print
300300
X
301301
abstract
302+
argdo
302303
append
303304
augroup
304305
autocmd
305306
behave
306307
browse
308+
bufdo
307309
call
308310
catch
311+
cdo
312+
cfdo
309313
chdir
310314
change
311315
class
@@ -343,6 +347,8 @@ function s:get_vim_command_type(cmd_name)
343347
filetype
344348
filter
345349
final
350+
folddoopen
351+
folddoclosed
346352
for
347353
function
348354
grep
@@ -356,6 +362,8 @@ function s:get_vim_command_type(cmd_name)
356362
join
357363
k
358364
let
365+
ldo
366+
lfdo
359367
loadkeymap
360368
lhelpgrep
361369
lgrep
@@ -411,6 +419,7 @@ function s:get_vim_command_type(cmd_name)
411419
swapname
412420
syntax
413421
syntime
422+
tabdo
414423
tcl
415424
tcldo
416425
tclfile
@@ -428,6 +437,7 @@ function s:get_vim_command_type(cmd_name)
428437
vimgrepadd
429438
while
430439
wincmd
440+
windo
431441
EOL
432442
" Required for original behavior
433443
" \ 'global', 'vglobal'

runtime/syntax/generator/vim.vim.base

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
" Language: Vim script
33
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
44
" Doug Kearns <dougkearns@gmail.com>
5-
" Last Change: 2025 Nov 07
5+
" Last Change: 2025 Nov 08
66
" Former Maintainer: Charles E. Campbell
77

88
" DO NOT CHANGE DIRECTLY.
@@ -246,7 +246,7 @@ syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vi
246246
syn case match
247247

248248
" All vimCommands are contained by vimIsCommand. {{{2
249-
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAt,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDefer,vimDelcommand,vimDelFunction,@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
249+
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
250250
syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
251251
syn match vimCmdSep "\\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,@vimFunc
252252
syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1
@@ -320,6 +320,16 @@ syn match vimDebuggreedy "\<0\=debugg\%[reedy]\>" contains=vimCount
320320
" =====
321321
syn match vimDefer "\<defer\=\>" skipwhite nextgroup=@vimFunc,vim9LambdaParams
322322

323+
" *Do commands {{{2
324+
" ============
325+
syn match vimDoCommandBang contained "\a\@1<=!" skipwhite nextgroup=@vimCmdList
326+
327+
syn keyword vimDoCommand argdo bufd[o] skipwhite nextgroup=vimDoCommandBang,@vimCmdList
328+
syn keyword vimDoCommand tabd[o] wind[o] skipwhite nextgroup=@vimCmdList
329+
syn keyword vimDoCommand cdo cfd[o] skipwhite nextgroup=vimDoCommandBang,@vimCmdList
330+
syn keyword vimDoCommand ld[o] lfd[o] skipwhite nextgroup=vimDoCommandBang,@vimCmdList
331+
syn keyword vimDoCommand foldd[oopen] folddoc[losed] skipwhite nextgroup=@vimCmdList
332+
323333
" Exception Handling {{{2
324334
syn keyword vimThrow th[row] skipwhite nextgroup=@vimExprList
325335
syn keyword vimCatch cat[ch] skipwhite nextgroup=vimCatchPattern
@@ -2376,6 +2386,8 @@ if !exists("skip_vim_syntax_inits")
23762386
hi def link vimDelfunctionBang vimBang
23772387
hi def link vimDoautocmd vimCommand
23782388
hi def link vimDoautocmdMod Special
2389+
hi def link vimDoCommand vimCommand
2390+
hi def link vimDoCommandBang vimBang
23792391
hi def link vimEcho vimCommand
23802392
hi def link vimEchohlNone vimGroup
23812393
hi def link vimEchohl vimCommand
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
>"+0#0000e05#ffffff0| |V|i|m| |:|*|d|o| |c|o|m@1|a|n|d|s| +0#0000000&@55
2+
@75
3+
@75
4+
|a+0#af5f00255&|r|g|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@57
5+
|a+0#af5f00255&|r|g|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@57
6+
@75
7+
|b+0#af5f00255&|u|f|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@57
8+
|b+0#af5f00255&|u|f|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@57
9+
@75
10+
|c+0#af5f00255&|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@59
11+
|c+0#af5f00255&|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@59
12+
@75
13+
|c+0#af5f00255&|f|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@58
14+
|c+0#af5f00255&|f|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@58
15+
@75
16+
|f+0#af5f00255&|o|l|d@1|o|c|l|o|s|e|d| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@51
17+
@75
18+
|f+0#af5f00255&|o|l|d@1|o@1|p|e|n| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@53
19+
@75
20+
@57|1|,|1| @10|T|o|p|
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
|c+0#af5f00255#ffffff0|f|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@58
2+
@75
3+
|f+0#af5f00255&|o|l|d@1|o|c|l|o|s|e|d| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@51
4+
@75
5+
|f+0#af5f00255&|o|l|d@1|o@1|p|e|n| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@53
6+
> @74
7+
|l+0#af5f00255&|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@59
8+
|l+0#af5f00255&|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@59
9+
@75
10+
|l+0#af5f00255&|f|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@58
11+
|l+0#af5f00255&|f|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@58
12+
@75
13+
|t+0#af5f00255&|a|b|d|o| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@58
14+
@75
15+
|w+0#af5f00255&|i|n|d|o| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@58
16+
@75
17+
@75
18+
|d+0#af5f00255&|e|f| +0#0000000&|V|i|m|9|C|o|n|t|e|x|t|(+0#e000e06&|)| +0#0000000&@57
19+
@2|a+0#af5f00255&|r|g|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@55
20+
@57|1|9|,|0|-|1| @7|3@1|%|
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
| +0&#ffffff0@1|a+0#af5f00255&|r|g|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@55
2+
@2|a+0#af5f00255&|r|g|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@55
3+
@75
4+
@2|b+0#af5f00255&|u|f|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@55
5+
@2|b+0#af5f00255&|u|f|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@55
6+
> @74
7+
@2|c+0#af5f00255&|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@57
8+
@2|c+0#af5f00255&|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@57
9+
@75
10+
@2|c+0#af5f00255&|f|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@56
11+
@2|c+0#af5f00255&|f|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@56
12+
@75
13+
@2|f+0#af5f00255&|o|l|d@1|o|c|l|o|s|e|d| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@49
14+
@75
15+
@2|f+0#af5f00255&|o|l|d@1|o@1|p|e|n| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@51
16+
@75
17+
@2|l+0#af5f00255&|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@57
18+
@2|l+0#af5f00255&|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@57
19+
@75
20+
@57|3|7|,|0|-|1| @7|7|9|%|
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
| +0&#ffffff0@74
2+
@2|l+0#af5f00255&|f|d|o| +0#0000000&@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@56
3+
@2|l+0#af5f00255&|f|d|o|!| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@56
4+
@75
5+
@2|t+0#af5f00255&|a|b|d|o| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@56
6+
> @74
7+
@2|w+0#af5f00255&|i|n|d|o| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@56
8+
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
9+
@75
10+
|~+0#4040ff13&| @73
11+
|~| @73
12+
|~| @73
13+
|~| @73
14+
|~| @73
15+
|~| @73
16+
|~| @73
17+
|~| @73
18+
|~| @73
19+
|~| @73
20+
| +0#0000000&@56|5@1|,|0|-|1| @7|B|o|t|
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
" Vim :*do commands
2+
3+
4+
argdo echo "..."
5+
argdo! echo "..."
6+
7+
bufdo echo "..."
8+
bufdo! echo "..."
9+
10+
cdo echo "..."
11+
cdo! echo "..."
12+
13+
cfdo echo "..."
14+
cfdo! echo "..."
15+
16+
folddoclosed echo "..."
17+
18+
folddoopen echo "..."
19+
20+
ldo echo "..."
21+
ldo! echo "..."
22+
23+
lfdo echo "..."
24+
lfdo! echo "..."
25+
26+
tabdo echo "..."
27+
28+
windo echo "..."
29+
30+
31+
def Vim9Context()
32+
argdo echo "..."
33+
argdo! echo "..."
34+
35+
bufdo echo "..."
36+
bufdo! echo "..."
37+
38+
cdo echo "..."
39+
cdo! echo "..."
40+
41+
cfdo echo "..."
42+
cfdo! echo "..."
43+
44+
folddoclosed echo "..."
45+
46+
folddoopen echo "..."
47+
48+
ldo echo "..."
49+
ldo! echo "..."
50+
51+
lfdo echo "..."
52+
lfdo! echo "..."
53+
54+
tabdo echo "..."
55+
56+
windo echo "..."
57+
enddef
58+

0 commit comments

Comments
 (0)