Skip to content

Commit e1e3474

Browse files
dkearnschrisbra
authored andcommitted
runtime(vim): Update base syntax, fix :augroup error matching
Only terminate the :augroup END argument at whitespace, comments and trailing bars. closes: #18711 Signed-off-by: Doug Kearns <[email protected]> Signed-off-by: Christian Brabandt <[email protected]>
1 parent acf928a commit e1e3474

7 files changed

Lines changed: 58 additions & 29 deletions

File tree

runtime/syntax/generator/vim.vim.base

Lines changed: 4 additions & 4 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 <[email protected]>
5-
" Last Change: 2025 Nov 08
5+
" Last Change: 2025 Nov 10
66
" Former Maintainer: Charles E. Campbell
77

88
" DO NOT CHANGE DIRECTLY.
@@ -397,13 +397,13 @@ syn cluster vimAugroupList contains=@vimCmdList,vimFilter,@vimFunc,vimLineCommen
397397

398398
" define
399399
VimFolda syn region vimAugroup
400-
\ start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+"
400+
\ start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\%($\|[[:space:]|"#]\)\)\@!\S"
401401
\ matchgroup=vimAugroupKey
402-
\ end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>"
402+
\ end="\<aug\%[roup]\ze\s\+[eE][nN][dD]\s*\%($\|[|"#]\)"
403403
\ skipwhite nextgroup=vimAugroupEnd
404404
\ contains=vimAutocmd,@vimAugroupList,vimAugroupkey
405405
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror")
406-
syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>"
406+
syn match vimAugroupError "\<aug\%[roup]\s\+[eE][nN][dD]\ze\s*\%($\|[|"#]\)"
407407
endif
408408

409409
" TODO: Vim9 comment

runtime/syntax/testdir/dumps/vim_ex_augroup_01.dump

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@
1717
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
1818
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@1|\+0#0000001#ffff4012|||e|c|h|o|\||| +0#0000000#ffffff0||| |a+0#af5f00255&|u|t|o|c|m|d|!| +0#0000000&||| |a+0#af5f00255&|u|g|r|o|u|p| +0#0000000&|E|N|D| @30
1919
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p|!| +0#0000000&|\+0#0000001#ffff4012|||e|c|h|o|\||| +0#0000000#ffffff0@55
20-
@57|1|9|,|1| @9|3|0|%|
20+
@57|1|9|,|1| @9|2|5|%|

runtime/syntax/testdir/dumps/vim_ex_augroup_02.dump

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p|!| +0#0000000&|\+0#0000001#ffff4012|"|\||| +0#0000000#ffffff0@59
1111
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
1212
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
13+
| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |t|r|a|i|l|i|n|g| |b|a|r| |a|n|d| |t|a|i|l| |c|o|m@1|e|n|t|s| +0#0000000&@40
14+
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
1315
|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@1|f+0#0000001#ffff4012|o@1|"+0#0000e05#ffffff0|c|o|m@1|e|n|t| +0#0000000&@52
14-
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u|!| +0#0000000&@67
15-
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u| +0#0000000&|B+0#00e0003&|u|f|R|e|a|d| +0#0000000&|*+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@47
16+
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u|t|o|c|m|d|!| +0#0000000&@62
17+
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|R|e|a|d| +0#0000000&|*+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@42
1618
||+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&|E|N|D|"+0#0000e05&|c|o|m@1|e|n|t| +0#0000000&@53
1719
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
18-
|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@1|f+0#0000001#ffff4012|o@1||+0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@49
19-
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u|!| +0#0000000&@67
20-
@57|3|7|,|1| @9|7|2|%|
20+
@57|3|7|,|1| @9|5|9|%|
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u|!| +0#0000000&@67
2-
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u| +0#0000000&|B+0#00e0003&|u|f|R|e|a|d| +0#0000000&|*+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@47
3-
||+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&|E|N|D|||e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@50
41
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
2+
|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@1|f+0#0000001#ffff4012|o@1||+0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@49
3+
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u|t|o|c|m|d|!| +0#0000000&@62
4+
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&|B+0#00e0003&|u|f|R|e|a|d| +0#0000000&|*+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@42
5+
||+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&|E|N|D|||e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@50
6+
| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
57
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p|!| +0#0000000&|f+0#0000001#ffff4012|o@1|"+0#0000e05#ffffff0|c|o|m@1|e|n|t| +0#0000000&@52
6-
| +0#0000e05#a8a8a8255@1>a+0#af5f00255#ffffff0|u|g|r|o|u|p|!| +0#0000000&|f+0#0000001#ffff4012|o@1||+0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@49
8+
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p|!| +0#0000000&|f+0#0000001#ffff4012|o@1||+0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@49
79
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
810
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
911
| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |l|i|s|t| |g|r|o|u|p|s| +0#0000000&@59
12+
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
1013
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&@65
1114
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@52
1215
| +0#0000e05#a8a8a8255@1|a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@55
1316
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
14-
|~+0#4040ff13&| @73
15-
|~| @73
16-
|~| @73
17-
|~| @73
18-
|~| @73
19-
|~| @73
20-
| +0#0000000&@56|5@1|,|1| @9|B|o|t|
17+
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
18+
| +0#0000e05#a8a8a8255@1|"+0&#ffffff0| |g|r|o|u|p|s| |n|a|m|e|d| |E|N|D|*| +0#0000000&@53
19+
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
20+
@57|5@1|,|0|-|1| @7|9|4|%|
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
2+
|-+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&|e+0#0000001#ffff4012|n|d|i|n|g| +0#0000000#ffffff0@58
3+
||+0#0000e05#a8a8a8255| |a+0#af5f00255#ffffff0|u|g|r|o|u|p| +0#0000000&|E|N|D| @61
4+
| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
5+
|~+0#4040ff13&| @73
6+
|~| @73
7+
|~| @73
8+
|~| @73
9+
|~| @73
10+
|~| @73
11+
|~| @73
12+
|~| @73
13+
|~| @73
14+
|~| @73
15+
|~| @73
16+
|~| @73
17+
|~| @73
18+
|~| @73
19+
|~| @73
20+
| +0#0000000&@56|7|1|,|0|-|1| @7|B|o|t|

runtime/syntax/testdir/input/vim_ex_augroup.vim

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,31 @@ augroup \"\| | autocmd! | augroup END
4141
augroup! \"\|
4242

4343

44+
" trailing bar and tail comments
45+
4446
augroup foo"comment
45-
au!
46-
au BufRead * echo "Foo"
47+
autocmd!
48+
autocmd BufRead * echo "Foo"
4749
augroup END"comment
4850

4951
augroup foo|echo "Foo"
50-
au!
51-
au BufRead * echo "Foo"
52+
autocmd!
53+
autocmd BufRead * echo "Foo"
5254
augroup END|echo "Foo"
5355

5456
augroup! foo"comment
5557
augroup! foo|echo "Foo"
5658

5759

5860
" list groups
61+
5962
augroup
6063
augroup | echo "Foo"
6164
augroup " comment
6265

66+
67+
" groups named END*
68+
69+
augroup ending
70+
augroup END
71+

runtime/syntax/vim.vim

Lines changed: 4 additions & 4 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 <[email protected]>
5-
" Last Change: 2025 Nov 08
5+
" Last Change: 2025 Nov 10
66
" Former Maintainer: Charles E. Campbell
77

88
" DO NOT CHANGE DIRECTLY.
@@ -451,13 +451,13 @@ syn cluster vimAugroupList contains=@vimCmdList,vimFilter,@vimFunc,vimLineCommen
451451

452452
" define
453453
VimFolda syn region vimAugroup
454-
\ start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+"
454+
\ start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\%($\|[[:space:]|"#]\)\)\@!\S"
455455
\ matchgroup=vimAugroupKey
456-
\ end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>"
456+
\ end="\<aug\%[roup]\ze\s\+[eE][nN][dD]\s*\%($\|[|"#]\)"
457457
\ skipwhite nextgroup=vimAugroupEnd
458458
\ contains=vimAutocmd,@vimAugroupList,vimAugroupkey
459459
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror")
460-
syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>"
460+
syn match vimAugroupError "\<aug\%[roup]\s\+[eE][nN][dD]\ze\s*\%($\|[|"#]\)"
461461
endif
462462

463463
" TODO: Vim9 comment

0 commit comments

Comments
 (0)