runtime(vim): Update base syntax, improve line-continuation skip patterns
Commit:
https://github.com/vim/vim/commit/ae20d732ae691793297139f688936c602c674999
Author: Doug Kearns <[email protected]>
Date: Sun Sep 28 18:02:13 2025 +0000
runtime(vim): Update base syntax, improve line-continuation skip patterns
Factor out the common prefix in line-continuation :syn-skip patterns.
closes: #18416
Signed-off-by: Doug Kearns <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
diff --git a/runtime/syntax/generator/vim.vim.base
b/runtime/syntax/generator/vim.vim.base
index e7b24dfbb..461eafb11 100644
--- a/runtime/syntax/generator/vim.vim.base
+++ b/runtime/syntax/generator/vim.vim.base
@@ -561,7 +561,7 @@ syn match vimDelfunction
"\<delf\%[unction]\>" skipwhite nextgroup=vimDelfunct
syn region vimReturnType contained
\ start=":\%(\s\|
\)\@="
- \ skip=+
\s*\\|
\s*#\ \|^\s*#\ +
+ \ skip=+
\s*\%(\\|#\ \)\|^\s*#\ +
\ end="$"
\ matchgroup=vim9Comment
"\ allow for legacy script tail comment error
@@ -620,7 +620,7 @@ if s:vim9script
syn region vim9MethodDefReturnType contained
\ start=":\%(\s\|
\)\@="
- \ skip=+
\s*\\|
\s*#\ \|^\s*#\ +
+ \ skip=+
\s*\%(\\|#\ \)\|^\s*#\ +
\ end="$"
\ matchgroup=vim9Comment
\ end="\ze#"
@@ -630,7 +630,7 @@ if s:vim9script
syn region vim9MethodDefComment contained
\ start="#.*"
- \ skip=+
\s*\\|
\s*#\ +
+ \ skip=+
\s*\%(\\|#\ \)+
\ end="$"
\ skipwhite skipempty nextgroup=vim9MethodDefBody,vimEnddef
@@ -1081,7 +1081,7 @@ syn region vimLetVarSubscript contained
VimL syn keyword vimUnlet unl[et] skipwhite
nextgroup=vimUnletBang,vimUnletVars
syn match vimUnletBang contained " \@1<=!" skipwhite
nextgroup=vimUnletVars
syn region vimUnletVars contained
- \ start="$\I\|\h" skip=+
\s*\\|
\s*"\ \|^\s*"\ + end="$" end="\ze[|"]"
+ \ start="$\I\|\h" skip=+
\s*\%(\\|"\ \)\|^\s*"\ + end="$" end="\ze[|"]"
\ nextgroup=vimCmdSep,vimComment
\ contains=@vimContinue,vimEnvvar,vimVar,vimVimVar
@@ -1156,7 +1156,7 @@ syn keyword vimUnlockvar unlo[ckvar]
skipwhite nextgroup=vimLockvarBang,vimLockv
syn match vimLockvarBang contained " \@1<=!" skipwhite
nextgroup=vimLockvarVars
syn match vimLockvarDepth contained "\<[0-3]\>" skipwhite
nextgroup=vimLockvarVars
syn region vimLockvarVars contained
- \ start="\h" skip=+
\s*\\|
\s*"\ \|^\s*"\ + end="$" end="\ze[|"]"
+ \ start="\h" skip=+
\s*\%(\\|"\ \)\|^\s*"\ + end="$" end="\ze[|"]"
\ nextgroup=vimCmdSep,vimComment
\ contains=@vimContinue,vimVar
@@ -1437,8 +1437,8 @@ syn case match
" NOTE: tail comments disallowed
" GEN_SYN_VIM: vimCommand menu, START_STR='syn keyword vimMenu',
END_STR='skipwhite
nextgroup=vimMenuBang,vimMenuMod,vimMenuName,vimMenuPriority,vimMenuStatus'
syn keyword vimMenu popu[p] skipwhite nextgroup=vimMenuBang,vimMenuName
-syn region vimMenuRhs contained contains=@vimContinue,vimNotation
start="|\@!\S" skip=+\\\|\|\|
\s*\\|
\s*"\ + end="$" matchgroup=vimSep end="|"
-syn region vimMenuRhsContinue contained contains=@vimContinue,vimNotation
start=+^\s*\%(\\|"\ \)+ skip=+\\\|\|\|
\s*\\|
\s*"\ + end="$" matchgroup=vimSep end="|"
+syn region vimMenuRhs contained contains=@vimContinue,vimNotation
start="|\@!\S" skip=+\\\|\|\|
\s*\%(\\|"\ \)+ end="$" matchgroup=vimSep end="|"
+syn region vimMenuRhsContinue contained contains=@vimContinue,vimNotation
start=+^\s*\%(\\|"\ \)+ skip=+\\\|\|\|
\s*\%(\\|"\ \)+ end="$" matchgroup=vimSep end="|"
syn match vimMenuName "\.\@!\%(\\s\|\S\)\+" contained
contains=vimMenuNotation,vimNotation skipwhite
nextgroup=vimCmdSep,vimMenuRhs
syn match vimMenuName "\.\@!\%(\\s\|\S\)\+\ze\s*$" contained
contains=vimMenuNotation,vimNotation skipwhite skipnl
nextgroup=vimCmdSep,vimMenuRhsContinue
syn match vimMenuNotation "& \|&&\|\\s\|\\." contained
@@ -1449,7 +1449,7 @@ syn match vimMenuBang " \@1<=!" contained skipwhite
nextgroup=vimMenuName,vimMe
syn region vimMenutranslate
\ matchgroup=vimCommand start="\<menut\%[ranslate]\>"
- \ skip=+\\\|\|\|
\s*\\|
\s*"\ +
+ \ skip=+\\\|\|\|
\s*\%(\\|"\ \)+
\ end="$" matchgroup=vimCmdSep end="|" matchgroup=vimMenuClear
end="\<clear\ze\s*\%(["#|]\|$\)"
\ contains=@vimContinue,vimMenutranslateName keepend transparent
" oneline is sufficient to match the current formatting in runtime/lang/*.vim
@@ -1534,7 +1534,7 @@ syn region vimMatchPattern contained
" Normal: {{{2
" ======
syn match vimNormal "\<norm\%[al]\>!\=" skipwhite
nextgroup=vimNormalArg contains=vimBang
-syn region vimNormalArg contained start="\S" skip=+
\s*\\|
\s*["#]\ + end="$" contains=@vimContinue
+syn region vimNormalArg contained start="\S" skip=+
\s*\%(\\|["#]\ \)+ end="$" contains=@vimContinue
" Profile: {{{2
" =======
@@ -1667,7 +1667,7 @@ Vim9 syn match vimWincmd
"\s\=\<winc\%[md]\>\ze\s\+=\s*\%([#|]\|$\)" skipwhite n
" Syntax: {{{2
"=======
syn match vimGroupList contained
"[^[:space:],]\+\%(\s*,\s*[^[:space:],]\+\)*" contains=vimGroupSpecial
-syn region vimGroupList contained start=/^\s*["#]\
\|^\s*\\|[^[:space:],]\+\s*,/ skip=/\s*
\s*\\|\s*
\s*["#]\ \|^\s*\\|^\s*["#]\ / end=/[^[:space:],]\s*$\|[^[:space:],]\ze\s\+\w/
contains=@vimContinue,vimGroupSpecial
+syn region vimGroupList contained start=/^\s*["#]\
\|^\s*\\|[^[:space:],]\+\s*,/ skip=/\s*
\s*\%(\\|["#]\ \)\|^\s*\%(\\|["#]\ \)/
end=/[^[:space:],]\s*$\|[^[:space:],]\ze\s\+\w/
contains=@vimContinue,vimGroupSpecial
syn keyword vimGroupSpecial contained ALL ALLBUT CONTAINED
TOP
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsynerror")
@@ -1698,7 +1698,7 @@ syn keyword vimSynType contained clear
skipwhite nextgroup=vimGroupList
" Syntax: cluster {{{2
syn keyword vimSynType contained cluster skipwhite
nextgroup=vimClusterName
-syn region vimClusterName contained keepend matchgroup=vimGroupName
start="\h\w*\>" skip=+\\\|\\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="$\||"
contains=@vimContinue,vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
+syn region vimClusterName contained keepend matchgroup=vimGroupName
start="\h\w*\>" skip=+\\\|\\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="$\||"
contains=@vimContinue,vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
syn match vimGroupAdd contained keepend "\<add="
skipwhite skipnl nextgroup=vimGroupList
syn match vimGroupRem contained keepend "\<remove="
skipwhite skipnl nextgroup=vimGroupList
@@ -1728,13 +1728,13 @@ syn keyword vimSynType contained include
skipwhite nextgroup=vimGroupList
" Syntax: keyword {{{2
syn cluster vimSynKeyGroup
contains=@vimContinue,vimSynCchar,vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
syn keyword vimSynType contained keyword skipwhite
nextgroup=vimSynKeyRegion
-syn region vimSynKeyRegion contained keepend
matchgroup=vimGroupName start="\h\w*\>" skip=+\\\|\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|\|$" contains=@vimSynKeyGroup
+syn region vimSynKeyRegion contained keepend
matchgroup=vimGroupName start="\h\w*\>" skip=+\\\|\|\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynKeyGroup
syn match vimSynKeyOpt contained
"\%#=1\<\%(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
" Syntax: match {{{2
syn cluster vimSynMtchGroup
contains=@vimContinue,vimSynCchar,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation,vimMtchComment
syn keyword vimSynType contained match skipwhite
nextgroup=vimSynMatchRegion
-syn region vimSynMatchRegion contained keepend
matchgroup=vimGroupName start="\h\w*\>" skip=+\\\|\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|\|$" contains=@vimSynMtchGroup
+syn region vimSynMatchRegion contained keepend
matchgroup=vimGroupName start="\h\w*\>" skip=+\\\|\|\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynMtchGroup
syn match vimSynMtchOpt contained
"\%#=1\<\%(conceal\|transparent\|contained\|excludenl\|keepend\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
" Syntax: off and on {{{2
@@ -1744,11 +1744,11 @@ syn keyword vimSynType contained enable
list manual off on reset
syn cluster vimSynRegPatGroup
contains=@vimContinue,vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation
syn cluster vimSynRegGroup
contains=@vimContinue,vimSynCchar,vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
syn keyword vimSynType contained region skipwhite
nextgroup=vimSynRegion
-syn region vimSynRegion contained keepend matchgroup=vimGroupName
start="\h\w*" skip=+\\\|\\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|\|$" contains=@vimSynRegGroup
+syn region vimSynRegion contained keepend matchgroup=vimGroupName
start="\h\w*" skip=+\\\|\\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynRegGroup
syn match vimSynRegOpt contained
"\%#=1\<\%(conceal\%(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
syn match vimSynReg contained "\<\%(start\|skip\|end\)="
nextgroup=vimSynRegPat
syn match vimSynMtchGrp contained "matchgroup="
nextgroup=vimGroup,vimHLGroup
-syn region vimSynRegPat contained extend
start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip=/\\\|\\z1\|
\s*\\|
\s*"\ / end="\z1" contains=@vimSynRegPatGroup skipwhite
nextgroup=vimSynPatMod,vimSynReg
+syn region vimSynRegPat contained extend
start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip=/\\\|\\z1\|
\s*\%(\\|"\ \)/ end="\z1" contains=@vimSynRegPatGroup skipwhite
nextgroup=vimSynPatMod,vimSynReg
syn match vimSynPatMod contained
"\%#=1\%(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\%([-+]\d\+\)\="
syn match vimSynPatMod contained
"\%#=1\%(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\%([-+]\d\+\)\=,"
nextgroup=vimSynPatMod
syn match vimSynPatMod contained "lc=\d\+"
@@ -1771,7 +1771,7 @@ if !exists("g:vimsyn_noerror") &&
!exists("g:vimsyn_novimsyncerror")
syn match vimSyncError contained "\i\+"
endif
-syn region vimSyncArgs contained start="\S" skip=+\\\|\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|\|$"
contains=vimSyncLines,vimSyncLinebreak,vimSyncLinecont,vimSyncFromstart,vimSyncCcomment
+syn region vimSyncArgs contained start="\S" skip=+\\\|\|\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|\|$"
contains=vimSyncLines,vimSyncLinebreak,vimSyncLinecont,vimSyncFromstart,vimSyncCcomment
syn keyword vimSyncCcomment contained ccomment skipwhite
nextgroup=vimGroupName
syn keyword vimSyncClear contained clear skipwhite
nextgroup=vimSyncGroupName
@@ -1822,7 +1822,7 @@ syn match vimHiGuiRgb contained "#\x\{6}"
" Highlighting: hi group key=arg ... {{{2
syn cluster vimHiCluster
contains=vimGroup,vimHLGroup,vimHiGroup,vimHiNone,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiCtermul,vimHiCtermfont,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation,vimComment,vim9comment
-syn region vimHiKeyList contained start="\i\+" skip=+\\\|\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|" excludenl end="$"
contains=@vimContinue,@vimHiCluster
+syn region vimHiKeyList contained start="\i\+" skip=+\\\|\|\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|" excludenl end="$"
contains=@vimContinue,@vimHiCluster
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimhikeyerror")
syn match vimHiKeyError contained "\i\+="he=e-1
endif
@@ -1845,7 +1845,7 @@ syn keyword vimHiClear contained clear
skipwhite nextgroup=vimGroup,vimHLGroup,v
" see tst24 (hi def vs hi) (Jul 06, 2018)
"syn region vimHiLink contained oneline matchgroup=vimCommand
start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)"
end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
" TODO: simplify and allow line continuations --djk
-syn region vimHiLink contained matchgroup=Type
start="\%(\<hi\%[ghlight]!\=\s\+\)\@<=\%(\%(def\%[ault]\s\+\)\=link\>\|\<def\%[ault]\>\)"
skip=+\\\|\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|" excludenl end="$"
contains=@vimContinue,@vimHiCluster
+syn region vimHiLink contained matchgroup=Type
start="\%(\<hi\%[ghlight]!\=\s\+\)\@<=\%(\%(def\%[ault]\s\+\)\=link\>\|\<def\%[ault]\>\)"
skip=+\\\|\|\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|" excludenl end="$"
contains=@vimContinue,@vimHiCluster
" Control Characters: {{{2
" ==================
@@ -2214,8 +2214,8 @@ syn region vim9TypeArgs contained
" Beginners - Patterns that involve ^ {{{2
" =========
-Vim9 syn region vim9LineComment start=+^[ :]*\zs#.*$+ skip=+
\s*\\|
\s*#\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle
extend
-VimL syn region vimLineComment start=+^[ :]*\zs".*$+ skip=+
\s*\\|
\s*"\ + end="$" contains=@vimCommentGroup,vimCommentString,vimCommentTitle
extend
+Vim9 syn region vim9LineComment start=+^[ :]*\zs#.*$+ skip=+
\s*\%(\\|#\ \)+ end="$"
contains=@vimCommentGroup,vimCommentString,vim9CommentTitle extend
+VimL syn region vimLineComment start=+^[ :]*\zs".*$+ skip=+
\s*\%(\\|"\ \)+ end="$"
contains=@vimCommentGroup,vimCommentString,vimCommentTitle extend
syn match vimCommentTitle
'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained
contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
syn match vim9CommentTitle
'#\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained
contains=vim9CommentTitleLeader,vimTodo,@vimCommentGroup
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index b5c1673fb..06949222b 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -615,7 +615,7 @@ syn match vimDelfunction
"\<delf\%[unction]\>" skipwhite nextgroup=vimDelfunct
syn region vimReturnType contained
\ start=":\%(\s\|
\)\@="
- \ skip=+
\s*\\|
\s*#\ \|^\s*#\ +
+ \ skip=+
\s*\%(\\|#\ \)\|^\s*#\ +
\ end="$"
\ matchgroup=vim9Comment
"\ allow for legacy script tail comment error
@@ -674,7 +674,7 @@ if s:vim9script
syn region vim9MethodDefReturnType contained
\ start=":\%(\s\|
\)\@="
- \ skip=+
\s*\\|
\s*#\ \|^\s*#\ +
+ \ skip=+
\s*\%(\\|#\ \)\|^\s*#\ +
\ end="$"
\ matchgroup=vim9Comment
\ end="\ze#"
@@ -684,7 +684,7 @@ if s:vim9script
syn region vim9MethodDefComment contained
\ start="#.*"
- \ skip=+
\s*\\|
\s*#\ +
+ \ skip=+
\s*\%(\\|#\ \)+
\ end="$"
\ skipwhite skipempty nextgroup=vim9MethodDefBody,vimEnddef
@@ -1137,7 +1137,7 @@ syn region vimLetVarSubscript contained
VimL syn keyword vimUnlet unl[et] skipwhite
nextgroup=vimUnletBang,vimUnletVars
syn match vimUnletBang contained " \@1<=!" skipwhite
nextgroup=vimUnletVars
syn region vimUnletVars contained
- \ start="$\I\|\h" skip=+
\s*\\|
\s*"\ \|^\s*"\ + end="$" end="\ze[|"]"
+ \ start="$\I\|\h" skip=+
\s*\%(\\|"\ \)\|^\s*"\ + end="$" end="\ze[|"]"
\ nextgroup=vimCmdSep,vimComment
\ contains=@vimContinue,vimEnvvar,vimVar,vimVimVar
@@ -1212,7 +1212,7 @@ syn keyword vimUnlockvar unlo[ckvar]
skipwhite nextgroup=vimLockvarBang,vimLockv
syn match vimLockvarBang contained " \@1<=!" skipwhite
nextgroup=vimLockvarVars
syn match vimLockvarDepth contained "\<[0-3]\>" skipwhite
nextgroup=vimLockvarVars
syn region vimLockvarVars contained
- \ start="\h" skip=+
\s*\\|
\s*"\ \|^\s*"\ + end="$" end="\ze[|"]"
+ \ start="\h" skip=+
\s*\%(\\|"\ \)\|^\s*"\ + end="$" end="\ze[|"]"
\ nextgroup=vimCmdSep,vimComment
\ contains=@vimContinue,vimVar
@@ -1499,8 +1499,8 @@ syn case match
" GEN_SYN_VIM: vimCommand menu, START_STR='syn keyword vimMenu',
END_STR='skipwhite
nextgroup=vimMenuBang,vimMenuMod,vimMenuName,vimMenuPriority,vimMenuStatus'
syn keyword vimMenu am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu]
cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu]
nunme[nu] ome[nu] onoreme[nu] ounme[nu] sme[nu] snoreme[nu] sunme[nu] tlm[enu]
tln[oremenu] tlu[nmenu] tm[enu] tu[nmenu] unme[nu] vme[nu] vnoreme[nu]
vunme[nu] xme[nu] xnoreme[nu] xunme[nu] skipwhite
nextgroup=vimMenuBang,vimMenuMod,vimMenuName,vimMenuPriority,vimMenuStatus
syn keyword vimMenu popu[p] skipwhite nextgroup=vimMenuBang,vimMenuName
-syn region vimMenuRhs contained contains=@vimContinue,vimNotation
start="|\@!\S" skip=+\\\|\|\|
\s*\\|
\s*"\ + end="$" matchgroup=vimSep end="|"
-syn region vimMenuRhsContinue contained contains=@vimContinue,vimNotation
start=+^\s*\%(\\|"\ \)+ skip=+\\\|\|\|
\s*\\|
\s*"\ + end="$" matchgroup=vimSep end="|"
+syn region vimMenuRhs contained contains=@vimContinue,vimNotation
start="|\@!\S" skip=+\\\|\|\|
\s*\%(\\|"\ \)+ end="$" matchgroup=vimSep end="|"
+syn region vimMenuRhsContinue contained contains=@vimContinue,vimNotation
start=+^\s*\%(\\|"\ \)+ skip=+\\\|\|\|
\s*\%(\\|"\ \)+ end="$" matchgroup=vimSep end="|"
syn match vimMenuName "\.\@!\%(\\s\|\S\)\+" contained
contains=vimMenuNotation,vimNotation skipwhite
nextgroup=vimCmdSep,vimMenuRhs
syn match vimMenuName "\.\@!\%(\\s\|\S\)\+\ze\s*$" contained
contains=vimMenuNotation,vimNotation skipwhite skipnl
nextgroup=vimCmdSep,vimMenuRhsContinue
syn match vimMenuNotation "& \|&&\|\\s\|\\." contained
@@ -1511,7 +1511,7 @@ syn match vimMenuBang " \@1<=!" contained skipwhite
nextgroup=vimMenuName,vimMe
syn region vimMenutranslate
\ matchgroup=vimCommand start="\<menut\%[ranslate]\>"
- \ skip=+\\\|\|\|
\s*\\|
\s*"\ +
+ \ skip=+\\\|\|\|
\s*\%(\\|"\ \)+
\ end="$" matchgroup=vimCmdSep end="|" matchgroup=vimMenuClear
end="\<clear\ze\s*\%(["#|]\|$\)"
\ contains=@vimContinue,vimMenutranslateName keepend transparent
" oneline is sufficient to match the current formatting in runtime/lang/*.vim
@@ -1596,7 +1596,7 @@ syn region vimMatchPattern contained
" Normal: {{{2
" ======
syn match vimNormal "\<norm\%[al]\>!\=" skipwhite
nextgroup=vimNormalArg contains=vimBang
-syn region vimNormalArg contained start="\S" skip=+
\s*\\|
\s*["#]\ + end="$" contains=@vimContinue
+syn region vimNormalArg contained start="\S" skip=+
\s*\%(\\|["#]\ \)+ end="$" contains=@vimContinue
" Profile: {{{2
" =======
@@ -1729,7 +1729,7 @@ Vim9 syn match vimWincmd
"\s\=\<winc\%[md]\>\ze\s\+=\s*\%([#|]\|$\)" skipwhite n
" Syntax: {{{2
"=======
syn match vimGroupList contained
"[^[:space:],]\+\%(\s*,\s*[^[:space:],]\+\)*" contains=vimGroupSpecial
-syn region vimGroupList contained start=/^\s*["#]\
\|^\s*\\|[^[:space:],]\+\s*,/ skip=/\s*
\s*\\|\s*
\s*["#]\ \|^\s*\\|^\s*["#]\ / end=/[^[:space:],]\s*$\|[^[:space:],]\ze\s\+\w/
contains=@vimContinue,vimGroupSpecial
+syn region vimGroupList contained start=/^\s*["#]\
\|^\s*\\|[^[:space:],]\+\s*,/ skip=/\s*
\s*\%(\\|["#]\ \)\|^\s*\%(\\|["#]\ \)/
end=/[^[:space:],]\s*$\|[^[:space:],]\ze\s\+\w/
contains=@vimContinue,vimGroupSpecial
syn keyword vimGroupSpecial contained ALL ALLBUT CONTAINED
TOP
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsynerror")
@@ -1760,7 +1760,7 @@ syn keyword vimSynType contained clear
skipwhite nextgroup=vimGroupList
" Syntax: cluster {{{2
syn keyword vimSynType contained cluster skipwhite
nextgroup=vimClusterName
-syn region vimClusterName contained keepend matchgroup=vimGroupName
start="\h\w*\>" skip=+\\\|\\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="$\||"
contains=@vimContinue,vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
+syn region vimClusterName contained keepend matchgroup=vimGroupName
start="\h\w*\>" skip=+\\\|\\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="$\||"
contains=@vimContinue,vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
syn match vimGroupAdd contained keepend "\<add="
skipwhite skipnl nextgroup=vimGroupList
syn match vimGroupRem contained keepend "\<remove="
skipwhite skipnl nextgroup=vimGroupList
@@ -1790,13 +1790,13 @@ syn keyword vimSynType contained include
skipwhite nextgroup=vimGroupList
" Syntax: keyword {{{2
syn cluster vimSynKeyGroup
contains=@vimContinue,vimSynCchar,vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
syn keyword vimSynType contained keyword skipwhite
nextgroup=vimSynKeyRegion
-syn region vimSynKeyRegion contained keepend
matchgroup=vimGroupName start="\h\w*\>" skip=+\\\|\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|\|$" contains=@vimSynKeyGroup
+syn region vimSynKeyRegion contained keepend
matchgroup=vimGroupName start="\h\w*\>" skip=+\\\|\|\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynKeyGroup
syn match vimSynKeyOpt contained
"\%#=1\<\%(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
" Syntax: match {{{2
syn cluster vimSynMtchGroup
contains=@vimContinue,vimSynCchar,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation,vimMtchComment
syn keyword vimSynType contained match skipwhite
nextgroup=vimSynMatchRegion
-syn region vimSynMatchRegion contained keepend
matchgroup=vimGroupName start="\h\w*\>" skip=+\\\|\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|\|$" contains=@vimSynMtchGroup
+syn region vimSynMatchRegion contained keepend
matchgroup=vimGroupName start="\h\w*\>" skip=+\\\|\|\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynMtchGroup
syn match vimSynMtchOpt contained
"\%#=1\<\%(conceal\|transparent\|contained\|excludenl\|keepend\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
" Syntax: off and on {{{2
@@ -1806,11 +1806,11 @@ syn keyword vimSynType contained enable
list manual off on reset
syn cluster vimSynRegPatGroup
contains=@vimContinue,vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation
syn cluster vimSynRegGroup
contains=@vimContinue,vimSynCchar,vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
syn keyword vimSynType contained region skipwhite
nextgroup=vimSynRegion
-syn region vimSynRegion contained keepend matchgroup=vimGroupName
start="\h\w*" skip=+\\\|\\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|\|$" contains=@vimSynRegGroup
+syn region vimSynRegion contained keepend matchgroup=vimGroupName
start="\h\w*" skip=+\\\|\\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynRegGroup
syn match vimSynRegOpt contained
"\%#=1\<\%(conceal\%(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
syn match vimSynReg contained "\<\%(start\|skip\|end\)="
nextgroup=vimSynRegPat
syn match vimSynMtchGrp contained "matchgroup="
nextgroup=vimGroup,vimHLGroup
-syn region vimSynRegPat contained extend
start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip=/\\\|\\z1\|
\s*\\|
\s*"\ / end="\z1" contains=@vimSynRegPatGroup skipwhite
nextgroup=vimSynPatMod,vimSynReg
+syn region vimSynRegPat contained extend
start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip=/\\\|\\z1\|
\s*\%(\\|"\ \)/ end="\z1" contains=@vimSynRegPatGroup skipwhite
nextgroup=vimSynPatMod,vimSynReg
syn match vimSynPatMod contained
"\%#=1\%(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\%([-+]\d\+\)\="
syn match vimSynPatMod contained
"\%#=1\%(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\%([-+]\d\+\)\=,"
nextgroup=vimSynPatMod
syn match vimSynPatMod contained "lc=\d\+"
@@ -1833,7 +1833,7 @@ if !exists("g:vimsyn_noerror") &&
!exists("g:vimsyn_novimsyncerror")
syn match vimSyncError contained "\i\+"
endif
-syn region vimSyncArgs contained start="\S" skip=+\\\|\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|\|$"
contains=vimSyncLines,vimSyncLinebreak,vimSyncLinecont,vimSyncFromstart,vimSyncCcomment
+syn region vimSyncArgs contained start="\S" skip=+\\\|\|\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|\|$"
contains=vimSyncLines,vimSyncLinebreak,vimSyncLinecont,vimSyncFromstart,vimSyncCcomment
syn keyword vimSyncCcomment contained ccomment skipwhite
nextgroup=vimGroupName
syn keyword vimSyncClear contained clear skipwhite
nextgroup=vimSyncGroupName
@@ -1884,7 +1884,7 @@ syn match vimHiGuiRgb contained "#\x\{6}"
" Highlighting: hi group key=arg ... {{{2
syn cluster vimHiCluster
contains=vimGroup,vimHLGroup,vimHiGroup,vimHiNone,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiCtermul,vimHiCtermfont,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation,vimComment,vim9comment
-syn region vimHiKeyList contained start="\i\+" skip=+\\\|\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|" excludenl end="$"
contains=@vimContinue,@vimHiCluster
+syn region vimHiKeyList contained start="\i\+" skip=+\\\|\|\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|" excludenl end="$"
contains=@vimContinue,@vimHiCluster
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimhikeyerror")
syn match vimHiKeyError contained "\i\+="he=e-1
endif
@@ -1907,7 +1907,7 @@ syn keyword vimHiClear contained clear
skipwhite nextgroup=vimGroup,vimHLGroup,v
" see tst24 (hi def vs hi) (Jul 06, 2018)
"syn region vimHiLink contained oneline matchgroup=vimCommand
start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)"
end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
" TODO: simplify and allow line continuations --djk
-syn region vimHiLink contained matchgroup=Type
start="\%(\<hi\%[ghlight]!\=\s\+\)\@<=\%(\%(def\%[ault]\s\+\)\=link\>\|\<def\%[ault]\>\)"
skip=+\\\|\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|" excludenl end="$"
contains=@vimContinue,@vimHiCluster
+syn region vimHiLink contained matchgroup=Type
start="\%(\<hi\%[ghlight]!\=\s\+\)\@<=\%(\%(def\%[ault]\s\+\)\=link\>\|\<def\%[ault]\>\)"
skip=+\\\|\|\|
\s*\%(\\|"\ \)+ matchgroup=vimCmdSep end="|" excludenl end="$"
contains=@vimContinue,@vimHiCluster
" Control Characters: {{{2
" ==================
@@ -2276,8 +2276,8 @@ syn region vim9TypeArgs contained
" Beginners - Patterns that involve ^ {{{2
" =========
-Vim9 syn region vim9LineComment start=+^[ :]*\zs#.*$+ skip=+
\s*\\|
\s*#\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle
extend
-VimL syn region vimLineComment start=+^[ :]*\zs".*$+ skip=+
\s*\\|
\s*"\ + end="$" contains=@vimCommentGroup,vimCommentString,vimCommentTitle
extend
+Vim9 syn region vim9LineComment start=+^[ :]*\zs#.*$+ skip=+
\s*\%(\\|#\ \)+ end="$"
contains=@vimCommentGroup,vimCommentString,vim9CommentTitle extend
+VimL syn region vimLineComment start=+^[ :]*\zs".*$+ skip=+
\s*\%(\\|"\ \)+ end="$"
contains=@vimCommentGroup,vimCommentString,vimCommentTitle extend
syn match vimCommentTitle
'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained
contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
syn match vim9CommentTitle
'#\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained
contains=vim9CommentTitleLeader,vimTodo,@vimCommentGroup
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1v2vvR-00HEGN-FF%40256bit.org.