From: Eisuke Kawashima Date: Mon, 20 Apr 2026 15:14:31 +0000 (+0000) Subject: runtime: Remove wrong syn oneline keyword from a few syntax files X-Git-Tag: v9.2.0372~1 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=1c88aee1fa720aea07e133f32645914dcddd3435;p=thirdparty%2Fvim.git runtime: Remove wrong syn oneline keyword from a few syntax files Also: - drop a few trailing whitespaces - mark the oneline keyword for :syn keyword as error in the Vim syntax script, add tests for it. closes: #20018 Signed-off-by: Eisuke Kawashima Signed-off-by: Christian Brabandt --- diff --git a/runtime/syntax/autohotkey.vim b/runtime/syntax/autohotkey.vim index a888394923..db3c26ec0a 100644 --- a/runtime/syntax/autohotkey.vim +++ b/runtime/syntax/autohotkey.vim @@ -3,6 +3,8 @@ " Maintainer: Michael Wong " https://github.com/mmikeww/autohotkey.vim " Latest Revision: 2022-07-25 +" Last Change: +" 2026 Apr 20 by Vim project: remove wrong oneline keyword #20018 " Previous Maintainers: SungHyun Nam " Nikolai Weibull @@ -35,7 +37,6 @@ syn region autohotkeyString syn match autohotkeyVariable \ display - \ oneline \ contains=autohotkeyBuiltinVariable \ keepend \ '%\S\{-}%' @@ -123,7 +124,7 @@ syn keyword autohotkeyCommand syn keyword autohotkeyFunction \ InStr RegExMatch RegExReplace StrLen SubStr Asc Chr Func - \ DllCall VarSetCapacity WinActive WinExist IsLabel OnMessage + \ DllCall VarSetCapacity WinActive WinExist IsLabel OnMessage \ Abs Ceil Exp Floor Log Ln Mod Round Sqrt Sin Cos Tan ASin ACos ATan \ FileExist GetKeyState NumGet NumPut StrGet StrPut RegisterCallback \ IsFunc Trim LTrim RTrim IsObject Object Array FileOpen diff --git a/runtime/syntax/cabal.vim b/runtime/syntax/cabal.vim index 74cda51266..a1db25034a 100644 --- a/runtime/syntax/cabal.vim +++ b/runtime/syntax/cabal.vim @@ -5,8 +5,10 @@ " Previous Maintainer: Vincent Berthoux " File Types: .cabal " Last Change: 22 Oct 2022 +" 2026 Apr 20 by Vim project: remove wrong oneline keyword #20018 +" " v1.6: Added support for foreign-libraries -" Added highlighting for various fields +" Added highlighting for various fields " v1.5: Incorporated changes from " https://github.com/sdiehl/haskell-vim-proto/blob/master/vim/syntax/cabal.vim " Use `syn keyword` instead of `syn match`. @@ -25,7 +27,7 @@ " Cabal known compiler are highlighted too. " " V1.2: Added cpp-options which was missing. Feature implemented -" by GHC, found with a GHC warning, but undocumented. +" by GHC, found with a GHC warning, but undocumented. " Whatever... " " v1.1: Fixed operator problems and added ftdetect file @@ -186,7 +188,7 @@ syn match cabalVersionRegionA \ contains=cabalVersionOperator,cabalVersion \ keepend \ /\%(==\|\^\?>=\|<=\|<\|>\)\s*\d\+\%(\.\d\+\)*\%(\.\*\)\?\>/ -" version inside `version: ...` +" version inside `version: ...` syn match cabalVersionRegionB \ contains=cabalStatementRegion,cabalVersionOperator,cabalVersion \ /^\s*\%(cabal-\)\?version\s*:.*$/ @@ -198,7 +200,6 @@ syn match cabalName contained /:\@<=.*/ syn match cabalNameRegion \ contains=cabalStatementRegion,cabalName \ nextgroup=cabalStatementRegion - \ oneline \ /^\c\s*name\s*:.*$/ " author region @@ -206,7 +207,6 @@ syn match cabalAuthor contained /:\@<=.*/ syn match cabalAuthorRegion \ contains=cabalStatementRegion,cabalStatement,cabalAuthor \ nextgroup=cabalStatementRegion - \ oneline \ /^\c\s*author\s*:.*$/ " maintainer region @@ -214,7 +214,6 @@ syn match cabalMaintainer contained /:\@<=.*/ syn match cabalMaintainerRegion \ contains=cabalStatementRegion,cabalStatement,cabalMaintainer \ nextgroup=cabalStatementRegion - \ oneline \ /^\c\s*maintainer\s*:.*$/ " license region @@ -222,7 +221,6 @@ syn match cabalLicense contained /:\@<=.*/ syn match cabalLicenseRegion \ contains=cabalStatementRegion,cabalStatement,cabalLicense \ nextgroup=cabalStatementRegion - \ oneline \ /^\c\s*license\s*:.*$/ " license-file region @@ -230,7 +228,6 @@ syn match cabalLicenseFile contained /:\@<=.*/ syn match cabalLicenseFileRegion \ contains=cabalStatementRegion,cabalStatement,cabalLicenseFile \ nextgroup=cabalStatementRegion - \ oneline \ /^\c\s*license-file\s*:.*$/ " tested-with region with compilers and versions @@ -238,7 +235,6 @@ syn keyword cabalCompiler contained ghc nhc yhc hugs hbc helium jhc lhc syn match cabalTestedWithRegion \ contains=cabalStatementRegion,cabalStatement,cabalCompiler,cabalVersionRegionA \ nextgroup=cabalStatementRegion - \ oneline \ /^\c\s*tested-with\s*:.*$/ " build type keywords diff --git a/runtime/syntax/generator/vim.vim.base b/runtime/syntax/generator/vim.vim.base index d73688927a..24a51167ac 100644 --- a/runtime/syntax/generator/vim.vim.base +++ b/runtime/syntax/generator/vim.vim.base @@ -1860,10 +1860,11 @@ syn keyword vimSynType contained include skipwhite nextgroup=vimSynIncludeClust syn match vimSynIncludeCluster contained "@[_a-zA-Z0-9]\+\>" " Syntax: keyword {{{2 -syn cluster vimSynKeyGroup contains=@vimContinue,vimSynCchar,vimSynNextgroup,vimSynKeyOpt,vimSynContainedin +syn cluster vimSynKeyGroup contains=@vimContinue,vimSynCchar,vimSynNextgroup,vimSynKeyOpt,vimSynContainedin,vimSynKeyError syn keyword vimSynType contained keyword skipwhite nextgroup=vimSynKeyRegion syn region vimSynKeyRegion contained keepend matchgroup=vimGroupName start="\h\w*\>" skip=+\\\\\|\\|\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynKeyGroup syn match vimSynKeyOpt contained "\%#=1\<\%(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>" +syn match vimSynKeyError contained "\" " Syntax: match {{{2 syn cluster vimSynMtchGroup contains=@vimContinue,vimSynCchar,vimSynContains,vimSynContainedin,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation,vimMtchComment @@ -2431,6 +2432,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimSyncError vimError hi def link vimSynConcealError vimError hi def link vimSynError vimError + hi def link vimSynKeyError vimError hi def link vimSynFoldlevelError vimError hi def link vimSynIskeywordError vimError hi def link vimSynSpellError vimError diff --git a/runtime/syntax/monk.vim b/runtime/syntax/monk.vim index 3af810173a..22c91417a9 100644 --- a/runtime/syntax/monk.vim +++ b/runtime/syntax/monk.vim @@ -2,6 +2,7 @@ " Language: Monk (See-Beyond Technologies) " Maintainer: Mike Litherland " Last Change: 2012 Feb 03 by Thilo Six +" 2026 Apr 20 by Vim project: remove wrong oneline keyword #20018 " This syntax file is good enough for my needs, but others " may desire more features. Suggestions and bug reports @@ -33,8 +34,8 @@ syn case ignore " Fascist highlighting: everything that doesn't fit the rules is an error... -syn match monkError oneline ![^ \t()";]*! -syn match monkError oneline ")" +syn match monkError ![^ \t()";]*! +syn match monkError ")" " Quoted and backquoted stuff @@ -131,51 +132,51 @@ syn keyword monkFunc valid-integer? verify-type " using variables is a day's work for a trained secretary... " This is a useful lax approximation: -syn match monkNumber oneline "[-#+0-9.][-#+/0-9a-f@i.boxesfdl]*" -syn match monkError oneline ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t()";][^ \t()";]*! +syn match monkNumber "[-#+0-9.][-#+/0-9a-f@i.boxesfdl]*" +syn match monkError ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t()";][^ \t()";]*! -syn match monkOther oneline ![+-][ \t()";]!me=e-1 -syn match monkOther oneline ![+-]$! +syn match monkOther ![+-][ \t()";]!me=e-1 +syn match monkOther ![+-]$! " ... so that a single + or -, inside a quoted context, would not be " interpreted as a number (outside such contexts, it's a monkFunc) -syn match monkDelimiter oneline !\.[ \t()";]!me=e-1 -syn match monkDelimiter oneline !\.$! +syn match monkDelimiter !\.[ \t()";]!me=e-1 +syn match monkDelimiter !\.$! " ... and a single dot is not a number but a delimiter " Simple literals: -syn match monkBoolean oneline "#[tf]" -syn match monkError oneline !#[tf][^ \t()";]\+! +syn match monkBoolean "#[tf]" +syn match monkError !#[tf][^ \t()";]\+! -syn match monkChar oneline "#\\" -syn match monkChar oneline "#\\." -syn match monkError oneline !#\\.[^ \t()";]\+! -syn match monkChar oneline "#\\space" -syn match monkError oneline !#\\space[^ \t()";]\+! -syn match monkChar oneline "#\\newline" -syn match monkError oneline !#\\newline[^ \t()";]\+! +syn match monkChar "#\\" +syn match monkChar "#\\." +syn match monkError !#\\.[^ \t()";]\+! +syn match monkChar "#\\space" +syn match monkError !#\\space[^ \t()";]\+! +syn match monkChar "#\\newline" +syn match monkError !#\\newline[^ \t()";]\+! " This keeps all other stuff unhighlighted, except *stuff* and : -syn match monkOther oneline ,[a-z!$%&*/:<=>?^_~][-a-z!$%&*/:<=>?^_~0-9+.@]*, -syn match monkError oneline ,[a-z!$%&*/:<=>?^_~][-a-z!$%&*/:<=>?^_~0-9+.@]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, +syn match monkOther ,[a-z!$%&*/:<=>?^_~][-a-z!$%&*/:<=>?^_~0-9+.@]*, +syn match monkError ,[a-z!$%&*/:<=>?^_~][-a-z!$%&*/:<=>?^_~0-9+.@]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, -syn match monkOther oneline "\.\.\." -syn match monkError oneline !\.\.\.[^ \t()";]\+! +syn match monkOther "\.\.\." +syn match monkError !\.\.\.[^ \t()";]\+! " ... a special identifier -syn match monkConstant oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[ \t()";],me=e-1 -syn match monkConstant oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*$, -syn match monkError oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, +syn match monkConstant ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[ \t()";],me=e-1 +syn match monkConstant ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*$, +syn match monkError ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, -syn match monkConstant oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t()";],me=e-1 -syn match monkConstant oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$, -syn match monkError oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, +syn match monkConstant ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t()";],me=e-1 +syn match monkConstant ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$, +syn match monkError ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, " Monk input and output structures -syn match monkSyntax oneline "\(\~input\|\[I\]->\)[^ \t]*" -syn match monkFunc oneline "\(\~output\|\[O\]->\)[^ \t]*" +syn match monkSyntax "\(\~input\|\[I\]->\)[^ \t]*" +syn match monkFunc "\(\~output\|\[O\]->\)[^ \t]*" " Non-quoted lists, and strings: diff --git a/runtime/syntax/shared/typescriptcommon.vim b/runtime/syntax/shared/typescriptcommon.vim index 9a909c6755..1cb1740f8e 100644 --- a/runtime/syntax/shared/typescriptcommon.vim +++ b/runtime/syntax/shared/typescriptcommon.vim @@ -306,13 +306,13 @@ syntax keyword typescriptRepeat do while for nextgroup=typescript syntax keyword typescriptRepeat for nextgroup=typescriptLoopParen,typescriptAsyncFor skipwhite skipempty syntax keyword typescriptBranch break continue containedin=typescriptBlock syntax keyword typescriptCase case nextgroup=@typescriptPrimitive skipwhite containedin=typescriptBlock -syntax keyword typescriptDefault default containedin=typescriptBlock nextgroup=@typescriptValue,typescriptClassKeyword,typescriptInterfaceKeyword skipwhite oneline +syntax keyword typescriptDefault default containedin=typescriptBlock nextgroup=@typescriptValue,typescriptClassKeyword,typescriptInterfaceKeyword skipwhite syntax keyword typescriptStatementKeyword with syntax keyword typescriptStatementKeyword yield skipwhite nextgroup=@typescriptValue containedin=typescriptBlock syntax keyword typescriptTry try syntax keyword typescriptExceptions throw finally -syntax keyword typescriptExceptions catch nextgroup=typescriptCall skipwhite skipempty oneline +syntax keyword typescriptExceptions catch nextgroup=typescriptCall skipwhite skipempty syntax keyword typescriptDebugger debugger syntax keyword typescriptAsyncFor await nextgroup=typescriptLoopParen skipwhite skipempty contained @@ -1766,9 +1766,9 @@ endif " patch " patch for generated code syntax keyword typescriptGlobal Promise - \ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments oneline + \ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments syntax keyword typescriptGlobal Map WeakMap - \ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments oneline + \ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments syntax keyword typescriptConstructor contained constructor \ nextgroup=@typescriptCallSignature diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_06.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_06.dump index 67ba95814c..3bcb86e4e3 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_06.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_06.dump @@ -17,4 +17,4 @@ @6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&@57 @6|"+0#0000e05&|\| |c|o|n|t|a|i|n|e|d|i|n| |o|p|t|i|o|n| +0#0000000&@47 @6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d|i|n|=|t+0#0000001#ffff4012|e|s|t|C|o|n|t|a|i|n|e|r| +0#0000000#ffffff0@41 -@57|1|0|5|,|0|-|1| @6|2|7|%| +@57|1|0|5|,|0|-|1| @6|2|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_07.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_07.dump index 696f88cb07..a4be8bb7d6 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_07.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_07.dump @@ -17,4 +17,4 @@ @6|"+0#0000e05&|\| |k|e|y|w|o|r|d| |3| +0#0000000&@56 @6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|3| @58 @75 -@57|1|2@1|,|7| @8|3|2|%| +@57|1|2@1|,|7| @8|3|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_08.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_08.dump index 156ff01e59..744f23d907 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_08.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_08.dump @@ -17,4 +17,4 @@ @6|"+0#0000e05&|\| |c@1|h|a|r| |o|p|t|i|o|n| +0#0000000&@53 @6|\+0#e000e06&| +0#0000000&|c+0#e000e06&@1|h|a|r|=|&+0#e000002&| +0#0000000&@59 @6|"+0#0000e05&|\| |c|o|n|t|a|i|n|e|d| |o|p|t|i|o|n| +0#0000000&@49 -@57|1|4|0|,|7| @8|3|7|%| +@57|1|4|0|,|7| @8|3|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_09.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_09.dump index a7ed5c811e..e42e016cc4 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_09.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_09.dump @@ -17,4 +17,4 @@ @6|"+0#0000e05&|\| +0#0000000&|f+0#0000e05&|o|l|d| +0#0000000&|o+0#0000e05&|p|t|i|o|n| +0#0000000&@54 @6|\+0#e000e06&| +0#0000000&|f+0#e000e06&|o|l|d| +0#0000000&@62 @6|"+0#0000e05&|\| |d|i|s|p|l|a|y| |o|p|t|i|o|n| +0#0000000&@51 -@57|1|5|8|,|7| @8|4|2|%| +@57|1|5|8|,|7| @8|4|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_10.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_10.dump index 7031132d74..983f1d5faf 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_10.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_10.dump @@ -17,4 +17,4 @@ @6|\+0#e000e06&| +0#0000000&|e+0#00e0003&|n|d|=|"+0#e000002&|e|n|d|-|p|a|t@1|e|r|n|"| +0#0000000&@49 @6|"+0#0000e05&|\| |c|o|n|c|e|a|l| |o|p|t|i|o|n| +0#0000000&@51 @6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|c|e|a|l| +0#0000000&@59 -@57|1|7|6|,|7| @8|4|7|%| +@57|1|7|6|,|7| @8|4|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_11.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_11.dump index c14f06636a..1e7ba63640 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_11.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_11.dump @@ -17,4 +17,4 @@ @6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|n|l| +0#0000000&@60 @6|"+0#0000e05&|\| |c|o|n|t|a|i|n|s| |o|p|t|i|o|n| +0#0000000&@50 @6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000001#ffff4012|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2| +0#0000000#ffffff0@28 -@57|1|9|4|,|7| @8|5|2|%| +@57|1|9|4|,|7| @8|5|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_12.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_12.dump index 28a905a8f8..a7489b5653 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_12.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_12.dump @@ -17,4 +17,4 @@ |s+0#af5f00255&|y|n| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t|e|s|t|C|l|u|s|t|e|r| @51 @6|"+0#0000e05&|\| |O|P|T|I|O|N|S| +0#0000000&@58 @6|"+0#0000e05&|\| |c|o|n|t|a|i|n|s| |o|p|t|i|o|n| +0#0000000&@50 -@57|2|1|2|,|7| @8|5|7|%| +@57|2|1|2|,|7| @8|5@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_13.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_13.dump index e828336806..c9068bdb5f 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_13.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_13.dump @@ -17,4 +17,4 @@ |s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|3| |k|e|y|w|o|r|d| @45 |s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|4| |k|e|y|w|o|r|d| @45 |s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t|e|s|t|N|e|x|t|5| |k|e|y|w|o|r|d| @45 -@57|2|3|0|,|7| @8|6|2|%| +@57|2|3|0|,|7| @8|6|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_14.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_14.dump index f648fee758..13cf00d224 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_14.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_14.dump @@ -17,4 +17,4 @@ @6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|4| @58 @6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|5| @58 @6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|6| @58 -@57|2|4|8|,|0|-|1| @6|6|7|%| +@57|2|4|8|,|0|-|1| @6|6|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_15.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_15.dump index 6945ec2c62..4bec90ecb3 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_15.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_15.dump @@ -17,4 +17,4 @@ @6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|6|,+0#0000000#ffffff0| @56 @6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58 @6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|7| +0#0000000#ffffff0|,| @55 -@57|2|6@1|,|7| @8|7|2|%| +@57|2|6@1|,|7| @8|7|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_16.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_16.dump index 3d1a002d69..8d668d55a1 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_16.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_16.dump @@ -17,4 +17,4 @@ @6|\+0#e000e06&| +0#0000000&|,| |t+0#0000001#ffff4012|e|x|t|N|e|x|t|1|7| +0#0000000#ffffff0|,| |t+0#0000001#ffff4012|e|x|t|N|e|x|t|1|8| +0#0000000#ffffff0|,| @39 @6|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@58 @6|\+0#e000e06&| +0#0000000&|t+0#0000001#ffff4012|e|x|t|N|e|x|t|1|9|,+0#0000000#ffffff0| |@+0#0000001#ffff4012|t|e|s|t|C|l|u|s|t|e|r| +0#0000000#ffffff0@42 -@57|2|8|4|,|7| @8|7@1|%| +@57|2|8|4|,|7| @8|7|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_17.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_17.dump index c923c00d45..056116d2a6 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_17.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_17.dump @@ -17,4 +17,4 @@ |f+0#af5f00255&|u|n|c|t|i|o|n|!| +0#0000000&|s+0#e000e06&|:|C+0#0000000&|o|n|t|a|i|n|e|d|G|r|o|u|p|(+0#e000e06&|)| +0#0000000&@46 @2|"+0#0000e05&| |.@2| +0#0000000&@67 @2|f+0#af5f00255&|o|r| +0#0000000&|c+0#00e0e07&|l|u|s|t|e|r| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|[+0#e000e06&|'+0#e000002&|m|a|r|k|d|o|w|n|H|i|g|h|l|i|g|h|t|_|z|s|h|'|,+0#0000000&| |'+0#e000002&|z|s|h|'|]+0#e000e06&| +0#0000000&@25 -@57|3|0|2|,|7| @8|8|2|%| +@57|3|0|2|,|7| @8|8|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_18.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_18.dump index 605dc0cba1..e96cf04d38 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_18.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_18.dump @@ -17,4 +17,4 @@ |"+0#0000e05&| |I|s@1|u|e| |#|1|8|4|9|1| |(|T|w|o| |"+0#e000002&|)|"|s+0#0000e05&| |a|r|e| |i|n|c|o|r@1|e|c|t|l|y| |c|o|l|o|r|e|d| |'|v|i|m|O|p|e|r|E|r@1|o|r|'| |i|n| |s|y|n|t|a|x|/|m |a|i|l|.|v|i|m|)| +0#0000000&@66 @75 -@57|3|2|0|,|0|-|1| @6|8|7|%| +@57|3|2|0|,|0|-|1| @6|8|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_19.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_19.dump index 3dbd5826bf..34b80d9e2e 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_19.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_19.dump @@ -17,4 +17,4 @@ @75 |"+0#0000e05&| |C|o|d|e| |>| |K|e|y|w|o|r|d|s| |{@2|2| +0#0000000&@52 |s+0#af5f00255&|y|n|t|a|x| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t|y|p|s|t|C|o|d|e|K|e|y|w|o|r|d|s| @42 -@57|3@1|6|,|1| @8|9|2|%| +@57|3@1|6|,|1| @8|8|9|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_20.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_20.dump index e05dc99127..ed355d795c 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_20.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_20.dump @@ -17,4 +17,4 @@ @4|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=| +0#0000000&@59 @12|"+0#0000e05&|\| +0#0000000&|c+0#0000e05&|o|m@1|e|n|t| +0#0000000&@52 @12|\+0#e000e06&| +0#0000000&@1|t+0#0000001#ffff4012|y|p|s|t|C|o|d|e|C|o|n|d|i|t|i|o|n|a|l| +0#0000000#ffffff0@39 -@57|3|5|4|,|0|-|1| @6|9|7|%| +@57|3|5|4|,|0|-|1| @6|9|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_21.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_21.dump index e0746ea9d6..20477577ec 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_syntax_21.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_21.dump @@ -11,10 +11,10 @@ |s+0#af5f00255&|y|n| +0#0000000&|r+0#00e0003&|e|g|i|o|n| +0#0000000&@1|s|l|r|n|r|c|C|m|d|L|i|n|e| @6|m+0#e000e06&|a|t|c|h|g|r|o|u|p|=|s+0#0000000&|l|r|n|r|c|C|m|d| |s+0#00e0003&|t|a|r|t|=|"+0#e000002&|\|<|\+0#e000e06&|(|a+0#e000002&|u|t|o|b|a|u|d|\+0#e000e06&|||.+0#e000002& @2|\+0#e000e06&|||v+0#e000002&|i|s|i|b|l|e|_|h|e|a|d|e|r|s|\+0#e000e06&|)|\+0#e000002&|>|"| +0#0000000&|e+0#00e0003&|n|d|=|"+0#e000002&|$|"| +0#0000000&|o+0#e000e06&|n|e|l|i|n|e| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|s+0#0000001#ffff4012|l|r|n|r|c|\|(|S|t|r|i|n|g|\|||C|o|m@1|e|n|t|\|) | +0#0000000#ffffff0@74 -|~+0#4040ff13&| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -| +0#0000000&@56|3|7|2|,|0|-|1| @6|B|o|t| +|"+0#0000e05&| |:|s|y|n|t|a|x| |k|e|y|w|o|r|d| |—| |o|n|e|l|i|n|e| |a|c@1|e|p|t|e|d| |b|u|t| |m|e|a|n|i|n|g|l|e|s@1| +0#0000000&@22 +|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|T|e|s|t|K|w| |f|o@1| |b|a|r| |o+0#ffffff16#ff404010|n|e|l|i|n|e| +0#0000000#ffffff0@37 +|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|T|e|s|t|K|w|2| |o+0#ffffff16#ff404010|n|e|l|i|n|e| +0#0000000#ffffff0|b|a|z| |q|u@1|x| @35 +@75 +|"+0#0000e05&| |:|s|y|n|t|a|x| |m|a|t|c|h| |—| |o|n|e|l|i|n|e| |a|c@1|e|p|t|e|d| |b|u|t| |m|e|a|n|i|n|g|l|e|s@1| +0#0000000&@24 +|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|T|e|s|t|M|a|t|c|h| |/+0#e000002&|\|<|f|o@1|\|>|/| +0#0000000&|o+0#ffffff16#ff404010|n|e|l|i|n|e| +0#0000000#ffffff0@34 +@57|3|7|2|,|0|-|1| @6|9|8|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_syntax_22.dump b/runtime/syntax/testdir/dumps/vim_ex_syntax_22.dump new file mode 100644 index 0000000000..7c1765f636 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_syntax_22.dump @@ -0,0 +1,20 @@ +|s+0#af5f00255#ffffff0|y|n|t|a|x| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|T|e|s|t|M|a|t|c|h| |/+0#e000002&|\|<|f|o@1|\|>|/| +0#0000000&|o+0#ffffff16#ff404010|n|e|l|i|n|e| +0#0000000#ffffff0@34 +|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|T|e|s|t|M|a|t|c|h|2| |o+0#ffffff16#ff404010|n|e|l|i|n|e| +0#0000000#ffffff0|/+0#e000002&|\|<|b|a|r|\|>|/| +0#0000000&@33 +@75 +|"+0#0000e05&| |:|s|y|n|t|a|x| |r|e|g|i|o|n| |—| |o|n|e|l|i|n|e| |i|s| |m|e|a|n|i|n|g|f|u|l| |h|e|r|e| +0#0000000&@29 +|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|r+0#00e0003&|e|g|i|o|n| +0#0000000&|T|e|s|t|R|e|g|i|o|n| |s+0#00e0003&|t|a|r|t|=|/+0#e000002&|{|/| +0#0000000&|e+0#00e0003&|n|d|=|/+0#e000002&|}|/| +0#0000000&|o+0#e000e06&|n|e|l|i|n|e| +0#0000000&@24 +>s+0#af5f00255&|y|n|t|a|x| +0#0000000&|r+0#00e0003&|e|g|i|o|n| +0#0000000&|T|e|s|t|R|e|g|i|o|n|2| |o+0#e000e06&|n|e|l|i|n|e| +0#0000000&|s+0#00e0003&|t|a|r|t|=|/+0#e000002&|"|/| +0#0000000&|e+0#00e0003&|n|d|=|/+0#e000002&|"|/| +0#0000000&@23 +|s+0#af5f00255&|y|n|t|a|x| +0#0000000&|r+0#00e0003&|e|g|i|o|n| +0#0000000&|T|e|s|t|R|e|g|i|o|n|3| |s+0#00e0003&|t|a|r|t|=|/+0#e000002&|\|/|\|*|/| +0#0000000&|e+0#00e0003&|n|d|=|/+0#e000002&|\|*|\|/@1| +0#0000000&|o+0#e000e06&|n|e|l|i|n|e| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d|i|n|=|A|L@1| +0#0000000&@1 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|3|8@1|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/input/vim_ex_syntax.vim b/runtime/syntax/testdir/input/vim_ex_syntax.vim index 851931206c..f8412446ba 100644 --- a/runtime/syntax/testdir/input/vim_ex_syntax.vim +++ b/runtime/syntax/testdir/input/vim_ex_syntax.vim @@ -375,3 +375,15 @@ syntax cluster typstCodeKeywords syn match slrnrcColorInit contained "^\s*color\s\+\S\+" skipwhite nextgroup=slrnrcColorVal\(Str\)\= contains=slrnrcColor\(Obj\|ObjStr\)\= syn region slrnrcCmdLine matchgroup=slrnrcCmd start="\<\(autobaud\|...\|visible_headers\)\>" end="$" oneline contains=slrnrc\(String\|Comment\) +" :syntax keyword — oneline accepted but meaningless +syntax keyword TestKw foo bar oneline +syntax keyword TestKw2 oneline baz quux + +" :syntax match — oneline accepted but meaningless +syntax match TestMatch /\/ oneline +syntax match TestMatch2 oneline /\/ + +" :syntax region — oneline is meaningful here +syntax region TestRegion start=/{/ end=/}/ oneline +syntax region TestRegion2 oneline start=/"/ end=/"/ +syntax region TestRegion3 start=/\/\*/ end=/\*\// oneline containedin=ALL diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index a390df78ed..0780f8695e 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -2,7 +2,7 @@ " Language: Vim script " Maintainer: Hirohito Higashi " Doug Kearns -" Last Change: 2026 Apr 15 +" Last Change: 2026 Apr 20 " Former Maintainer: Charles E. Campbell " DO NOT CHANGE DIRECTLY. @@ -1923,10 +1923,11 @@ syn keyword vimSynType contained include skipwhite nextgroup=vimSynIncludeClust syn match vimSynIncludeCluster contained "@[_a-zA-Z0-9]\+\>" " Syntax: keyword {{{2 -syn cluster vimSynKeyGroup contains=@vimContinue,vimSynCchar,vimSynNextgroup,vimSynKeyOpt,vimSynContainedin +syn cluster vimSynKeyGroup contains=@vimContinue,vimSynCchar,vimSynNextgroup,vimSynKeyOpt,vimSynContainedin,vimSynKeyError syn keyword vimSynType contained keyword skipwhite nextgroup=vimSynKeyRegion syn region vimSynKeyRegion contained keepend matchgroup=vimGroupName start="\h\w*\>" skip=+\\\\\|\\|\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="|\|$" contains=@vimSynKeyGroup syn match vimSynKeyOpt contained "\%#=1\<\%(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>" +syn match vimSynKeyError contained "\" " Syntax: match {{{2 syn cluster vimSynMtchGroup contains=@vimContinue,vimSynCchar,vimSynContains,vimSynContainedin,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation,vimMtchComment @@ -2494,6 +2495,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimSyncError vimError hi def link vimSynConcealError vimError hi def link vimSynError vimError + hi def link vimSynKeyError vimError hi def link vimSynFoldlevelError vimError hi def link vimSynIskeywordError vimError hi def link vimSynSpellError vimError