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

Match enum values and missing class keywords.

fixes: #15970

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Doug Kearns
2025-05-01 17:43:17 +02:00
committed by Christian Brabandt
parent 83cb8174c8
commit 1c58019a82
21 changed files with 471 additions and 49 deletions

View File

@ -2,7 +2,7 @@
" Language: Vim script
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
" Doug Kearns <dougkearns@gmail.com>
" Last Change: 2025 Apr 27
" Last Change: 2025 May 01
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@ -447,8 +447,6 @@ if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
syn region vimDefFold start="\<def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\)\+(" end="\<enddef\>" contains=vimDef fold keepend extend transparent
endif
syn match vimFuncBlank contained "\s\+"
" Types: {{{2
" =====
@ -478,6 +476,7 @@ syn cluster vimType contains=vimType,vimCompoundType,vimUserType
" =============================
if s:vim9script
" Methods {{{3
syn match vim9MethodDef contained "\<def\>" skipwhite nextgroup=vim9MethodDefName,vim9ConstructorDefName
syn match vim9MethodDefName contained "\<\h\w*\>" nextgroup=vim9MethodDefParams contains=@vim9MethodName
@ -557,10 +556,48 @@ if s:vim9script
VimFoldc syn region vim9ClassBody start="\<class\>" matchgroup=vimCommand end="\<endclass\>" contains=@vim9ClassBodyList transparent
" Enums {{{3
syn cluster vim9EnumBodyList contains=vim9Comment,vim9LineComment,@vim9Continue,vim9Enum,vim9Implements,@vim9MethodDef,vim9Const,vim9Final,vim9Var
syn cluster vim9EnumBodyList contains=vim9Comment,vim9LineComment,@vim9Continue,vim9Enum,@vimExprList,@vim9MethodDef,vim9Public,vim9Static,vim9Const,vim9Final,vim9This,vim9Var
syn match vim9Enum contained "\<enum\>" skipwhite nextgroup=vim9EnumName
syn match vim9EnumName contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Implements
syn match vim9Enum contained "\<enum\>" skipwhite nextgroup=vim9EnumName
syn match vim9EnumName contained "\<\u\w*\>" skipwhite skipempty nextgroup=vim9EnumNameTrailing,vim9EnumNameEmpty,vim9EnumNameComment,@vim9EnumNameContinue,vim9EnumImplements
syn match vim9EnumNameTrailing contained "\S.*"
syn region vim9EnumNameComment contained
\ start="#" skip="\n\s*\%(\\\|#\\ \)" end="$"
\ skipwhite skipempty nextgroup=vim9EnumNameComment,vim9EnumValue
\ contains=@vimCommentGroup,vimCommentString
" vim9EnumName's "skipempty" should only apply to comments and enum values and not implements clauses
syn match vim9EnumNameEmpty contained "^" skipwhite skipempty nextgroup=vim9EnumNameComment,vim9EnumValue
" allow line continuation between enum name and "implements"
syn match vim9EnumNameContinue contained
\ "^\s*\\"
\ skipwhite skipnl nextgroup=vim9EnumNameTrailing,vim9EnumNameEmpty,vim9EnumNameComment,@vim9EnumNameContinue,vim9EnumImplements
\ contains=vimWhitespace
syn match vim9EnumNameContinueComment contained
\ "^\s*#\\ .*"
\ skipwhite skipnl nextgroup=vim9EnumNameEmpty,vim9EnumNameComment,@vim9EnumNameContinue
\ contains=vimWhitespace
syn cluster vim9EnumNameContinue contains=vim9EnumNameContinue,vim9EnumNameContinueComment
" enforce enum value list location
syn match vim9EnumValue contained "\<\a\w*\>" nextgroup=vim9EnumValueArgList,vim9EnumValueListComma,vim9Comment
syn match vim9EnumValueListComma contained "," skipwhite skipempty nextgroup=vim9EnumValue,vim9EnumValueListCommaComment
syn region vim9EnumValueListCommaComment contained
\ start="#" skip="\n\s*\%(\\\|#\\ \)" end="$"
\ skipwhite skipempty nextgroup=vim9EnumValueListCommaComment,vim9EnumValue
\ contains=@vimCommentGroup,vimCommentString
syn region vim9EnumValueArgList contained
\ matchgroup=vimParenSep start="(" end=")"
\ nextgroup=vim9EnumValueListComma
\ contains=@vimExprList,vimContinueString,vim9Comment
syn keyword vim9EnumImplements contained implements skipwhite nextgroup=vim9EnumImplementedInterface
syn match vim9EnumImplementedInterface contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9EnumInterfaceListComma,vim9EnumImplementedInterfaceComment,vim9EnumValue
syn match vim9EnumInterfaceListComma contained "," skipwhite nextgroup=vim9EnumImplementedInterface
syn region vim9EnumImplementedInterfaceComment contained
\ start="#" skip="\n\s*\%(\\\|#\\ \)" end="$"
\ skipwhite skipempty nextgroup=vim9EnumImplementedInterfaceComment,vim9EnumValue
\ contains=@vimCommentGroup,vimCommentString
VimFolde syn region vim9EnumBody start="\<enum\>" matchgroup=vimCommand end="\<endenum\>" contains=@vim9EnumBodyList transparent
@ -2026,6 +2063,12 @@ if !exists("skip_vim_syntax_inits")
hi def link vim9Const vimCommand
hi def link vim9ContinueComment vimContinueComment
hi def link vim9Enum vimCommand
hi def link vim9EnumImplementedInterfaceComment vim9Comment
hi def link vim9EnumImplements vim9Implements
hi def link vim9EnumNameComment vim9Comment
hi def link vim9EnumNameContinue vimContinue
hi def link vim9EnumNameContinueComment vim9Comment
hi def link vim9EnumValueListCommaComment vim9Comment
hi def link vim9Export vimCommand
hi def link vim9Extends Keyword
hi def link vim9Final vimCommand

View File

@ -0,0 +1,20 @@
>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
|#+0#0000e05&| |V|i|m| |:|e|n|u|m| |c|o|m@1|a|n|d| +0#0000000&@55
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|E|n|u|m|V|a|l|u|e| |T|o|d|o| +0#0000000&@31
@75
@75
|#+0#0000e05&| +0#0000000&|S+0#e000e06&|e@1|:| +0#0000e05&|h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|p|u|l@1|/|1|6|3|6|5|#|i|s@1|u|e|c|o|m@1|e|n|t|-|2|5|7|1|4|2|0|5@1|1| +0#0000000&@6
@75
|e+0#af5f00255&|n|u|m| +0#0000000&|L|e|t@1|e|r| @63
@4|#+0#0000e05&| +0#0000000&@69
@4|#+0#0000e05&@40| +0#0000000&@29
@4|A+0#0000001#ffff4012|(+0#e000e06#ffffff0|"+0#e000002&|(|\+0#e000e06&|"| +0#e000002&|#| |n|o|t| |a| |c|o|m@1|e|n|t| |N|O|R|_|A|N|O|T|H|E|R|_|V|A|L|U|E|,| +0#0000000&@29
| +0#e000002&@7|\+0#e000e06&| +0#e000002&|"|)+0#e000e06&|,+0#0000000&| |B+0#0000001#ffff4012|(+0#e000e06#ffffff0|"+0#e000002&|)|\+0#e000e06&|"|"+0#e000002&|)+0#e000e06&|,+0#0000000&| |C+0#0000001#ffff4012|(+0#e000e06#ffffff0|$+0#e000002&|"|'@1|)| +0#0000000&@43
| +0#e000002&@7|\+0#e000e06&|(+0#e000002&|'|"|)+0#e000e06&|,+0#0000000&| |D+0#0000001#ffff4012|(+0#e000e06#ffffff0|$+0#e000002&|'|"@1|(|)|,|"|'|)+0#e000e06&|,+0#0000000&| |E+0#0000001#ffff4012|,+0#0000000#ffffff0| @43
@4|F+0#0000001#ffff4012|(+0#e000e06#ffffff0| +0#0000000&@68
@4|"+0#e000002&|)|"| +0#0000000&|.+0#af5f00255&@1| +0#0000000&|#+0#0000e05&| |F|A|,| +0#0000000&@58
@4|"+0#e000002&|(|"| +0#0000000&|#+0#0000e05&| |F|B|,| +0#0000000&@61
@4|)+0#e000e06&|,+0#0000000&| |G+0#0000001#ffff4012| +0#0000000#ffffff0@66
@4|#+0#0000e05&|e|n|u|m| |N|o|t|S|u|p@1|o|r|t|e|d| +0#0000000&@52
@4|#+0#0000e05&|e|n|d|e|n|u|m| +0#0000000&@62
@57|1|,|1| @10|T|o|p|

View File

@ -0,0 +1,20 @@
| +0&#ffffff0@3|F+0#0000001#ffff4012|(+0#e000e06#ffffff0| +0#0000000&@68
@4|"+0#e000002&|)|"| +0#0000000&|.+0#af5f00255&@1| +0#0000000&|#+0#0000e05&| |F|A|,| +0#0000000&@58
@4|"+0#e000002&|(|"| +0#0000000&|#+0#0000e05&| |F|B|,| +0#0000000&@61
@4|)+0#e000e06&|,+0#0000000&| |G+0#0000001#ffff4012| +0#0000000#ffffff0@66
@4|#+0#0000e05&|e|n|u|m| |N|o|t|S|u|p@1|o|r|t|e|d| +0#0000000&@52
@4>#+0#0000e05&|e|n|d|e|n|u|m| +0#0000000&@62
@75
@4|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|v+0#00e0e07&|a|l|u|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|:|n|o|n|e|)+0#e000e06&| +0#0000000&@42
@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&@60
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
@4|c+0#af5f00255&|o|n|s|t| +0#0000000&|v+0#00e0e07&|a|l|u|e|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@51
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
|f+0#af5f00255&|o|r| +0#0000000&|l+0#00e0e07&|e|t@1|e|r| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|L+0#00e0e07&|e|t@1|e|r|.+0#af5f00255&|v+0#00e0e07&|a|l|u|e|s| +0#0000000&@47
@4|e+0#af5f00255&|c|h|o| +0#0000000&|l+0#00e0e07&|e|t@1|e|r| +0#0000000&@59
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
@75
|e+0#af5f00255&|c|h|o| +0#0000000&|L+0#00e0e07&|e|t@1|e|r|.+0#af5f00255&|D+0#00e0e07&| +0#0000000&@61
@75
@57|1|9|,|5| @9|B|o|t|

View File

@ -0,0 +1,20 @@
>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
|#+0#0000e05&| |V|i|m| |:|e|n|u|m| |c|o|m@1|a|n|d| +0#0000000&@55
|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|E|n|u|m|V|a|l|u|e| |T|o|d|o| +0#0000000&@31
@75
@75
|i+0#af5f00255&|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|1| @54
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|)| +0#0000000&@62
|e+0#af5f00255&|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@62
|i+0#af5f00255&|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|2| @54
|e+0#af5f00255&|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@62
@75
|#+0#0000e05&| |e|n|u|m|-|i|m|p|l|e|m|e|n|t|s| |c|l|a|u|s|e| |w|i|t|h| |i|n|t|e|r|s|p|e|r|s|e|d| |c|o|m@1|e|n|t|s| +0#0000000&@23
@75
|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|1| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @30
@2|V+0#0000001#ffff4012|a|l|u|e|1| +0#0000000#ffffff0@66
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|)| +0#0000000&@62
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
@57|1|,|1| @10|T|o|p|

View File

@ -0,0 +1,20 @@
|e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|1| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @30
@2|V+0#0000001#ffff4012|a|l|u|e|1| +0#0000000#ffffff0@66
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|)| +0#0000000&@62
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
> @74
|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|2| @64
@6|\+0#e000e06&| +0#0000000&|i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @33
@2|V+0#0000001#ffff4012|a|l|u|e|1| +0#0000000#ffffff0@66
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|)| +0#0000000&@62
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|3| |#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@54
| +0#0000e05&@5|\| |i|m|p|l|e|m|e|n|t|s| |I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| +0#0000000&@33
@2|V+0#0000001#ffff4012|a|l|u|e|1| +0#0000000#ffffff0@66
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|4| @64
@57|1|9|,|0|-|1| @7|1|4|%|

View File

@ -0,0 +1,20 @@
|e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|4| @64
@6|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@59
| +0#0000e05&@5|\| |i|m|p|l|e|m|e|n|t|s| |I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| +0#0000000&@33
@2|V+0#0000001#ffff4012|a|l|u|e|1| +0#0000000#ffffff0@66
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
> @74
|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|5| @64
@6|\+0#e000e06&| +0#0000000&|i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| |#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@23
@2|V+0#0000001#ffff4012|a|l|u|e|1| +0#0000000#ffffff0@66
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|)| +0#0000000&@62
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|6| @64
@6|#+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
@6|\+0#e000e06&| +0#0000000&|i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @33
@2|V+0#0000001#ffff4012|a|l|u|e|1| +0#0000000#ffffff0@66
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|)| +0#0000000&@62
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@57|3|7|,|0|-|1| @7|3@1|%|

View File

@ -0,0 +1,20 @@
| +0&#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
|#+0#0000e05&| |[|e|n|u|m| |E|n|u|m|7|.|V|a|l|u|e|1| |{|n|a|m|e|:| |'|V|a|l|u|e|1|'|,| |o|r|d|i|n|a|l|:| |0|,| |v|a|l|1|:| |0|,| |v|a|l|2|:| |0|}|,| |e|n|u|m| |E
|n|u|m|7|.|V|a|l|u|e|2| |{|n|a|m|e|:| |'|V|a|l|u|e|2|'|,| |o|r|d|i|n|a|l|:| |1|,| |v|a|l|1|:| |1|,| |v|a|l|2|:| |0|}|,| |e|n|u|m| |E|n|u|m|7|.|V|a|l|u
|e|3| |{|n|a|m|e|:| |'|V|a|l|u|e|3|'|,| |o|r|d|i|n|a|l|:| |2|,| |v|a|l|1|:| |2|,| |v|a|l|2|:| |0|}|]| +0#0000000&@24
>#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|7| @64
@6|\+0#e000e06&| +0#0000000&@67
@6|#+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
@6|\+0#e000e06&| +0#0000000&@67
@6|#+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58
@6|\+0#e000e06&| +0#0000000&|i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| |#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@23
@4|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
@4|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
@4|V+0#0000001#ffff4012|a|l|u|e|1|,+0#0000000#ffffff0| @7|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
@4|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
@4|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
@4|V+0#0000001#ffff4012|a|l|u|e|2|(+0#e000e06#ffffff0|1+0#e000002&| +0#0000000&|++0#af5f00255&| +0#0000000&|0+0#e000002&|)+0#e000e06&|,+0#0000000&| |#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
@57|5|4|,|1| @9|5|2|%|

View File

@ -0,0 +1,20 @@
| +0&#ffffff0@3|V+0#0000001#ffff4012|a|l|u|e|2|(+0#e000e06#ffffff0|1+0#e000002&| +0#0000000&|++0#af5f00255&| +0#0000000&|0+0#e000002&|)+0#e000e06&|,+0#0000000&| |#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@46
@4|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
@4|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
@4|V+0#0000001#ffff4012|a|l|u|e|3|(+0#e000e06#ffffff0| +0#0000000&@2|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@51
@6|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@59
@6>1+0#e000002&| +0#0000000&@6|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@51
@8|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57
@8|++0#af5f00255&| +0#0000000&@4|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@51
@6|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@59
@6|1+0#e000002&| +0#0000000&@6|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@51
@4|)+0#e000e06&| +0#0000000&@8|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@51
@4|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
@4|v+0#af5f00255&|a|r| +0#0000000&|v+0#00e0e07&|a|l|1|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@44
@4|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
@4|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|)| +0#0000000&@60
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
@4|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
@4|s+0#af5f00255&|t|a|t|i|c| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|2|(+0#e000e06&|)| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@43
@6|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@59
@57|7|1|,|7| @9|7|0|%|

View File

@ -0,0 +1,20 @@
| +0&#ffffff0@5|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@59
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@54
@4|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@61
@4|p+0#af5f00255&|u|b|l|i|c| +0#0000000&|v+0#af5f00255&|a|r| +0#0000000&|v+0#00e0e07&|a|l|2|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@37
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
> @74
|#+0#0000e05&| |[|e|n|u|m| |E|n|u|m|8|.|i|m|p|l|e|m|e|n|t|s| |{|n|a|m|e|:| |'|i|m|p|l|e|m|e|n|t|s|'|,| |o|r|d|i|n|a|l|:| |0|}|]| +0#0000000&@16
|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|8| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @30
@2|i+0#0000001#ffff4012|m|p|l|e|m|e|n|t|s| +0#0000000#ffffff0@62
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|)| +0#0000000&@62
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
|#+0#0000e05&| |[|e|n|u|m| |E|n|u|m|9|.|V|a|l|u|e|1| |{|n|a|m|e|:| |'|V|a|l|u|e|1|'|,| |o|r|d|i|n|a|l|:| |0|,| |i|m|p|l|e|m|e|n|t|s|:| |0|}|]| +0#0000000&@9
|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|9| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @30
@2|V+0#0000001#ffff4012|a|l|u|e|1| +0#0000000#ffffff0@66
@2|v+0#af5f00255&|a|r| +0#0000000&|i+0#00e0e07&|m|p|l|e|m|e|n|t|s|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@50
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|)| +0#0000000&@62
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@57|8|9|,|0|-|1| @7|9|0|%|

View File

@ -0,0 +1,20 @@
| +0&#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
|#+0#0000e05&| |[|e|n|u|m| |E|n|u|m|1|0|.|i|m|p|l|e|m|e|n|t|s| |{|n|a|m|e|:| |'|i|m|p|l|e|m|e|n|t|s|'|,| |o|r|d|i|n|a|l|:| |0|}|]| +0#0000000&@15
|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|1|0| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @29
@2>i+0#0000001#ffff4012|m|p|l|e|m|e|n|t|s| +0#0000000#ffffff0@62
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|)| +0#0000000&@62
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
| +0#0000000&@56|1|0|7|,|3| @8|B|o|t|

View File

@ -2,6 +2,8 @@
| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|i|m| |:|e|n|u|m| |c|o|m@1|a|n|d| +0#0000000&@53
| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|v|i|m|s|y|n|_|f|o|l|d|i|n|g| |=| |'|e|f|'| +0#0000000&@28
| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |s|e|t|l| |f|d|c|=|2| |f|d|l|=|9@1| |f|d|m|=|s|y|n|t|a|x| +0#0000000&@27
| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|E|n|u|m|V|a|l|u|e| |T|o|d|o| +0#0000000&@29
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
| +0#0000e05#a8a8a8255@1|i+0#af5f00255#ffffff0|n|t|e|r|f|a|c|e| +0#0000000&|I|n|t|e|r|f|a|c|e|1| @52
| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60
@ -15,6 +17,4 @@
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|3| @62
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|1|,| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|2|,| @63
@57|1|,|1| @10|T|o|p|

View File

@ -1,20 +1,20 @@
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|e+0#af5f00255&|n|u|m| +0#0000000&|E|n|u|m|2| @55
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|3| @62
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|1|,| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1>V|a|l|u|e|2|,| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|3| @64
|-+0#0000e05#a8a8a8255| >e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|3| @62
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|1|,+0#0000000#ffffff0| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|2|,+0#0000000#ffffff0| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|3| +0#0000000#ffffff0@64
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|4| @62
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|1|,| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|2|,| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V|a|l|u|e|3| @64
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|1|,+0#0000000#ffffff0| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|2|,+0#0000000#ffffff0| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|3| +0#0000000#ffffff0@64
|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|o|d|1|(+0#e000e06&|)| +0#0000000&@57
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|5| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @28
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|V|a|l|u|e|1|,| @61
@57|1|9|,|3| @9|6|5|%|
@57|1|9|,|1| @9|4|1|%|

View File

@ -1,20 +1,20 @@
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|V|a|l|u|e|1|,| @61
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|V|a|l|u|e|2|,| @61
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|V|a|l|u|e|3| @62
|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|o|d|1|(+0#e000e06&|)| +0#0000000&@55
|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@5|d+0#af5f00255&|e|f| +0#0000000&|N|e|s|t|e|d|(+0#e000e06&|)| +0#0000000&@54
|3+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@5>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|5| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @28
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|1|,+0#0000000#ffffff0| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|2|,+0#0000000#ffffff0| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|3| +0#0000000#ffffff0@64
|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1>d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|o|d|1|(+0#e000e06&|)| +0#0000000&@57
|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|N|e|s|t|e|d|(+0#e000e06&|)| +0#0000000&@56
|3+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
| +0#0000000&@56|3|7|,|7| @9|B|o|t|
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|n|u|m|6| @62
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@5|#+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@56
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@5|\+0#e000e06&| +0#0000000&|i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I|n|t|e|r|f|a|c|e|1|,| |I|n|t|e|r|f|a|c|e|2| @31
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|1|,+0#0000000#ffffff0| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|2|,+0#0000000#ffffff0| @63
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|V+0#0000001#ffff4012|a|l|u|e|3| +0#0000000#ffffff0@64
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
@57|3|7|,|3| @9|B|o|t|

View File

@ -0,0 +1 @@
hi link vimVar Identifier

View File

@ -0,0 +1 @@
hi link vimVar Identifier

View File

@ -0,0 +1,111 @@
vim9script
# Vim :enum command
# VIM_TEST_SETUP hi link vim9EnumValue Todo
interface Interface1
def Def1()
endinterface
interface Interface2
endinterface
# enum-implements clause with interspersed comments
enum Enum1 implements Interface1, Interface2
Value1
def Def1()
enddef
endenum
enum Enum2
\ implements Interface1, Interface2
Value1
def Def1()
enddef
endenum
enum Enum3 # comment
\ implements Interface1, Interface2
Value1
endenum
enum Enum4
# comment
\ implements Interface1, Interface2
Value1
endenum
enum Enum5
\ implements Interface1, Interface2 # comment
Value1
def Def1()
enddef
endenum
enum Enum6
#\ comment
\ implements Interface1, Interface2
Value1
def Def1()
enddef
endenum
# [enum Enum7.Value1 {name: 'Value1', ordinal: 0, val1: 0, val2: 0}, enum Enum7.Value2 {name: 'Value2', ordinal: 1, val1: 1, val2: 0}, enum Enum7.Value3 {name: 'Value3', ordinal: 2, val1: 2, val2: 0}]
# comment
enum Enum7
\
#\ comment
\
#\ comment
\ implements Interface1, Interface2 # comment
# comment
# comment
Value1, # comment
# comment
# comment
Value2(1 + 0), # comment
# comment
# comment
Value3( # comment
# comment
1 # comment
# comment
+ # comment
# comment
1 # comment
) # comment
# comment
var val1: number # comment
# comment
def Def1()
enddef
# comment
static def Def2() # comment
# comment
enddef # comment
# comment
public var val2: number # comment
endenum
# [enum Enum8.implements {name: 'implements', ordinal: 0}]
enum Enum8 implements Interface1, Interface2
implements
def Def1()
enddef
endenum
# [enum Enum9.Value1 {name: 'Value1', ordinal: 0, implements: 0}]
enum Enum9 implements Interface1, Interface2
Value1
var implements: number
def Def1()
enddef
endenum
# [enum Enum10.implements {name: 'implements', ordinal: 0}]
enum Enum10 implements Interface1, Interface2
implements
def Def1()
enddef
endenum

View File

@ -0,0 +1,32 @@
vim9script
# Vim :enum command
# VIM_TEST_SETUP hi link vim9EnumValue Todo
# See: https://github.com/vim/vim/pull/16365#issuecomment-2571420551
enum Letter
#
#########################################
A("(\" # not a comment NOR_ANOTHER_VALUE,
\ "), B(")\""), C($"'')
\('"), D($'""(),"'), E,
F(
")" .. # FA,
"(" # FB,
), G
#enum NotSupported
#endenum
def new(this.value = v:none)
return
enddef
const value: string
endenum
for letter in Letter.values
echo letter
endfor
echo Letter.D

View File

@ -2,6 +2,8 @@ vim9script
# Vim :enum command
# VIM_TEST_SETUP let g:vimsyn_folding = 'ef'
# VIM_TEST_SETUP setl fdc=2 fdl=99 fdm=syntax
# VIM_TEST_SETUP hi link vim9EnumValue Todo
interface Interface1
endinterface
@ -29,11 +31,20 @@ enum Enum4
endenum
enum Enum5 implements Interface1, Interface2
Value1,
Value2,
Value3
def Method1()
def Nested()
enddef
Value1,
Value2,
Value3
def Method1()
def Nested()
enddef
enddef
endenum
enum Enum6
#\ comment
\ implements Interface1, Interface2
Value1,
Value2,
Value3
endenum

0
runtime/syntax/testdir/input/vim9_shebang.vim Executable file → Normal file
View File

0
runtime/syntax/testdir/input/vim_shebang.vim Executable file → Normal file
View File

View File

@ -2,7 +2,7 @@
" Language: Vim script
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
" Doug Kearns <dougkearns@gmail.com>
" Last Change: 2025 Apr 27
" Last Change: 2025 May 01
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@ -499,8 +499,6 @@ if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
syn region vimDefFold start="\<def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\)\+(" end="\<enddef\>" contains=vimDef fold keepend extend transparent
endif
syn match vimFuncBlank contained "\s\+"
" Types: {{{2
" =====
@ -530,6 +528,7 @@ syn cluster vimType contains=vimType,vimCompoundType,vimUserType
" =============================
if s:vim9script
" Methods {{{3
syn match vim9MethodDef contained "\<def\>" skipwhite nextgroup=vim9MethodDefName,vim9ConstructorDefName
syn match vim9MethodDefName contained "\<\h\w*\>" nextgroup=vim9MethodDefParams contains=@vim9MethodName
@ -609,10 +608,48 @@ if s:vim9script
VimFoldc syn region vim9ClassBody start="\<class\>" matchgroup=vimCommand end="\<endclass\>" contains=@vim9ClassBodyList transparent
" Enums {{{3
syn cluster vim9EnumBodyList contains=vim9Comment,vim9LineComment,@vim9Continue,vim9Enum,vim9Implements,@vim9MethodDef,vim9Const,vim9Final,vim9Var
syn cluster vim9EnumBodyList contains=vim9Comment,vim9LineComment,@vim9Continue,vim9Enum,@vimExprList,@vim9MethodDef,vim9Public,vim9Static,vim9Const,vim9Final,vim9This,vim9Var
syn match vim9Enum contained "\<enum\>" skipwhite nextgroup=vim9EnumName
syn match vim9EnumName contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Implements
syn match vim9Enum contained "\<enum\>" skipwhite nextgroup=vim9EnumName
syn match vim9EnumName contained "\<\u\w*\>" skipwhite skipempty nextgroup=vim9EnumNameTrailing,vim9EnumNameEmpty,vim9EnumNameComment,@vim9EnumNameContinue,vim9EnumImplements
syn match vim9EnumNameTrailing contained "\S.*"
syn region vim9EnumNameComment contained
\ start="#" skip="\n\s*\%(\\\|#\\ \)" end="$"
\ skipwhite skipempty nextgroup=vim9EnumNameComment,vim9EnumValue
\ contains=@vimCommentGroup,vimCommentString
" vim9EnumName's "skipempty" should only apply to comments and enum values and not implements clauses
syn match vim9EnumNameEmpty contained "^" skipwhite skipempty nextgroup=vim9EnumNameComment,vim9EnumValue
" allow line continuation between enum name and "implements"
syn match vim9EnumNameContinue contained
\ "^\s*\\"
\ skipwhite skipnl nextgroup=vim9EnumNameTrailing,vim9EnumNameEmpty,vim9EnumNameComment,@vim9EnumNameContinue,vim9EnumImplements
\ contains=vimWhitespace
syn match vim9EnumNameContinueComment contained
\ "^\s*#\\ .*"
\ skipwhite skipnl nextgroup=vim9EnumNameEmpty,vim9EnumNameComment,@vim9EnumNameContinue
\ contains=vimWhitespace
syn cluster vim9EnumNameContinue contains=vim9EnumNameContinue,vim9EnumNameContinueComment
" enforce enum value list location
syn match vim9EnumValue contained "\<\a\w*\>" nextgroup=vim9EnumValueArgList,vim9EnumValueListComma,vim9Comment
syn match vim9EnumValueListComma contained "," skipwhite skipempty nextgroup=vim9EnumValue,vim9EnumValueListCommaComment
syn region vim9EnumValueListCommaComment contained
\ start="#" skip="\n\s*\%(\\\|#\\ \)" end="$"
\ skipwhite skipempty nextgroup=vim9EnumValueListCommaComment,vim9EnumValue
\ contains=@vimCommentGroup,vimCommentString
syn region vim9EnumValueArgList contained
\ matchgroup=vimParenSep start="(" end=")"
\ nextgroup=vim9EnumValueListComma
\ contains=@vimExprList,vimContinueString,vim9Comment
syn keyword vim9EnumImplements contained implements skipwhite nextgroup=vim9EnumImplementedInterface
syn match vim9EnumImplementedInterface contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9EnumInterfaceListComma,vim9EnumImplementedInterfaceComment,vim9EnumValue
syn match vim9EnumInterfaceListComma contained "," skipwhite nextgroup=vim9EnumImplementedInterface
syn region vim9EnumImplementedInterfaceComment contained
\ start="#" skip="\n\s*\%(\\\|#\\ \)" end="$"
\ skipwhite skipempty nextgroup=vim9EnumImplementedInterfaceComment,vim9EnumValue
\ contains=@vimCommentGroup,vimCommentString
VimFolde syn region vim9EnumBody start="\<enum\>" matchgroup=vimCommand end="\<endenum\>" contains=@vim9EnumBodyList transparent
@ -2086,6 +2123,12 @@ if !exists("skip_vim_syntax_inits")
hi def link vim9Const vimCommand
hi def link vim9ContinueComment vimContinueComment
hi def link vim9Enum vimCommand
hi def link vim9EnumImplementedInterfaceComment vim9Comment
hi def link vim9EnumImplements vim9Implements
hi def link vim9EnumNameComment vim9Comment
hi def link vim9EnumNameContinue vimContinue
hi def link vim9EnumNameContinueComment vim9Comment
hi def link vim9EnumValueListCommaComment vim9Comment
hi def link vim9Export vimCommand
hi def link vim9Extends Keyword
hi def link vim9Final vimCommand