runtime(vim): Update base-syntax, improve :mark and :substitute highlighting
Commit: https://github.com/vim/vim/commit/086b3b5b796368bca767e43ba22584391357a10a Author: Doug Kearns <dougkea...@gmail.com> Date: Sat May 31 17:52:48 2025 +0200 runtime(vim): Update base-syntax, improve :mark and :substitute highlighting - Match full :mark and :k commands. - Match 2 and 3 letter :s repeat commands. - Match :s [count] argument. closes: #17408 Signed-off-by: Doug Kearns <dougkea...@gmail.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/runtime/syntax/generator/gen_syntax_vim.vim b/runtime/syntax/generator/gen_syntax_vim.vim index e3317fca7..5cafa10d6 100644 --- a/runtime/syntax/generator/gen_syntax_vim.vim +++ b/runtime/syntax/generator/gen_syntax_vim.vim @@ -1,7 +1,7 @@ " Vim syntax file generator " Language: Vim script " Maintainer: Hirohito Higashi (h_east) -" Last Change: 2025 May 17 +" Last Change: 2025 May 28 let s:keepcpo= &cpo set cpo&vim @@ -296,6 +296,7 @@ function s:get_vim_command_type(cmd_name) import interface insert + k let loadkeymap lhelpgrep @@ -307,6 +308,7 @@ function s:get_vim_command_type(cmd_name) luafile map mapclear + mark match mzscheme mzfile diff --git a/runtime/syntax/generator/vim.vim.base b/runtime/syntax/generator/vim.vim.base index 5b3b82669..759bd91bd 100644 --- a/runtime/syntax/generator/vim.vim.base +++ b/runtime/syntax/generator/vim.vim.base @@ -233,7 +233,7 @@ syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vi syn case match " All vimCommands are contained by vimIsCommand. {{{2 -syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDelcommand,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimFor,vimFunction,vimFuncFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimThrow,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl +syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDelcommand,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFor,vimFunction,vimFuncFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimThrow,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var syn match vimCmdSep "\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,vimFunc syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1 @@ -846,10 +846,16 @@ syn region vimContinueString contained matchgroup=vimContinueString start=+$'+ s syn cluster vimSubstList contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation syn cluster vimSubstRepList contains=vimSubstSubstr,vimSubstTwoBS,vimNotation syn cluster vimSubstList add=vimCollection -syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)\>" skipwhite nextgroup=vimSubstPat -syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)[_#]\@=" skipwhite nextgroup=vimSubstPat -syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\>" skipwhite nextgroup=vimSubstPat +syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)\>" skipwhite nextgroup=vimSubstPat,vimSubstFlags,vimSubstCount +syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)[_#]\@=" skipwhite nextgroup=vimSubstPat +syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)\%(\d\+\)\@=" skipwhite nextgroup=vimSubstCount +syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\>" skipwhite nextgroup=vimSubstPat,vimSubstFlags,vimSubstCount syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)[_#]\@=" skipwhite nextgroup=vimSubstPat +syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\%(\d\+\)\@=" skipwhite nextgroup=vimSubstCount +syn match vimSubstFlagErr contained "[^< |]\+" contains=vimSubstFlags +" & and # after :s are always pattern delimiters not flags +syn match vimSubstFlags contained "[&cegiIlnpr#]\+" skipwhite nextgroup=vimSubstCount +syn match vimSubstCount contained "\d\+\>" " TODO: Vim9 illegal separators for abbreviated :s form are [-.:], :su\%[...] required " : # is allowed but "not recommended" (see :h pattern-delimiter) syn region vimSubstPat contained matchgroup=vimSubstDelim start="\z([!#$%&'()*+,-./:;<=>?@[\]^_`{}~]\)"rs=s+1 skip="\\\|\\z1" end="\z1"re=e-1,me=e-1 contains=@vimSubstList nextgroup=vimSubstRep4 oneline @@ -859,13 +865,41 @@ syn match vimCollClassErr contained "\[:.\{-\}:\]" syn match vimCollClass contained transparent "\%#=1\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|retu\%[rn]\|tab\|escape\|backspace\):\]" syn match vimSubstSubstr contained "\z\=\d" syn match vimSubstTwoBS contained "\\" -syn match vimSubstFlagErr contained "[^< |]\+" contains=vimSubstFlags -syn match vimSubstFlags contained "[&cegiIlnpr#]\+" + +" TODO: flags, unlike count, must follow immediately +" : distinguish from with Vim9 &var +" syn match vimSubst "^\s*\zs&&\=" skipwhite nextgroup=vimSubstFlags,vimSubstCount +" syn match vimSubst "^\s*\zs\~&\=" skipwhite nextgroup=vimSubstFlags,vimSubstCount +" syn match vimSubst1 contained "&&\=" skipwhite nextgroup=vimSubstFlags,vimSubstCount +" syn match vimSubst1 contained "\~&\=" skipwhite nextgroup=vimSubstFlags,vimSubstCount + +" two and three letter variants (matched as :s + flags, count may follow immediately) +syn match vimSubst "^\s*\zssc[egiIlnp]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst "^\s*\zssg[ceiIlnpr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst "^\s*\zssi[ceInpr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst "^\s*\zssI[ceginplr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst "^\s*\zssr[cgiInplr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags + +syn match vimSubst1 contained "\<sc[egiIlnp]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst1 contained "\<sg[ceiIlnpr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst1 contained "\<si[ceInpr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst1 contained "\<sI[ceginplr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst1 contained "\<sr[cgiInplr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags " Vi compatibility syn match vimSubstDelim contained "\" syn match vimSubstPat contained "\\ze[/?&]" contains=vimSubstDelim nextgroup=vimSubstRep4 +" Mark: {{{2 +" ==== +VimL syn match vimExMark "\<k\%([a-zA-Z0-9]\>\|[[\]<>'`]\)\@=" nextgroup=@vimMarkArg +VimL syn match vimExMark "\<k\>" skipwhite nextgroup=@vimMarkArg +syn match vimExMark "\<mark\>" skipwhite nextgroup=@vimMarkArg + +syn match vimMarkArg contained "[a-zA-Z]\>\|[[\]<>'`]" skipwhite nextgroup=vimCmdSep,vimComment +syn match vimMarkArgError contained "["^.(){}0-9]" +syn cluster vimMarkArg contains=vimMarkArg,vimMarkArgError + " Marks, Registers, Addresses, Filters: {{{2 syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst1 syn match vimMark "'[[\]{}()<>]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst1 @@ -1941,6 +1975,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimHiCtermError vimError hi def link vimHiKeyError vimError hi def link vimMapModErr vimError + hi def link vimMarkArgError vimError hi def link vimShebangError vimError hi def link vimSortOptionsError Error hi def link vimSubstFlagErr vimError @@ -2010,6 +2045,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimEscape Special hi def link vimExFilter vimCommand hi def link vimExFilterBang vimCommand + hi def link vimExMark vimCommand hi def link vimFBVar vimVar hi def link vimFgBgAttrib vimHiAttrib hi def link vimFuncEcho vimCommand @@ -2161,6 +2197,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimStringEnd vimString hi def link vimStringInterpolationBrace vimEscape hi def link vimSubst1 vimSubst + hi def link vimSubstCount Number hi def link vimSubstDelim Delimiter hi def link vimSubstFlags Special hi def link vimSubstSubstr SpecialChar diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_00.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_00.dump new file mode 100644 index 000000000..b328f5a41 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_00.dump @@ -0,0 +1,20 @@ +>"+0#0000e05#ffffff0| |V|i|m| |:|m|a|r|k| |a|n|d| |:|k| |c|o|m@1|a|n|d|s| +0#0000000&@47 +|"+0#0000e05&| |:|k| |n|o|t| |a|v|a|i|l|a|b|l|e| |i|n| |V|i|m|9| +0#0000000&@48 +|"+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|M|a|r|k|A|r|g| |T|o|d|o| +0#0000000&@34 +@75 +@75 +|m+0#af5f00255&|a|r|k| +0#0000000&|`+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|'+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|A+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|k+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|K+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|z+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|[+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|]+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|<+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|>+0#0000001#ffff4012| +0#0000000#ffffff0@68 +@75 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|`+0#0000001#ffff4012| +0#0000000#ffffff0@67 +@57|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_01.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_01.dump new file mode 100644 index 000000000..e940ee803 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_01.dump @@ -0,0 +1,20 @@ +|m+0#af5f00255#ffffff0|a|r|k| +0#0000000&|[+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|]+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|<+0#0000001#ffff4012| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|>+0#0000001#ffff4012| +0#0000000#ffffff0@68 +@75 +>:|m+0#af5f00255&|a|r|k| +0#0000000&|`+0#0000001#ffff4012| +0#0000000#ffffff0@67 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|'+0#0000001#ffff4012| +0#0000000#ffffff0@67 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@67 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|A+0#0000001#ffff4012| +0#0000000#ffffff0@67 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|k+0#0000001#ffff4012| +0#0000000#ffffff0@67 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|K+0#0000001#ffff4012| +0#0000000#ffffff0@67 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|z+0#0000001#ffff4012| +0#0000000#ffffff0@67 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@67 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|[+0#0000001#ffff4012| +0#0000000#ffffff0@67 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|]+0#0000001#ffff4012| +0#0000000#ffffff0@67 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|<+0#0000001#ffff4012| +0#0000000#ffffff0@67 +|:|m+0#af5f00255&|a|r|k| +0#0000000&|>+0#0000001#ffff4012| +0#0000000#ffffff0@67 +@75 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|`+0#0000001#ffff4012| +0#0000000#ffffff0@55 +@57|1|9|,|1| @10|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_02.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_02.dump new file mode 100644 index 000000000..bd0e393c9 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_02.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|`+0#0000001#ffff4012| +0#0000000#ffffff0@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|'+0#0000001#ffff4012| +0#0000000#ffffff0@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|A+0#0000001#ffff4012| +0#0000000#ffffff0@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|k+0#0000001#ffff4012| +0#0000000#ffffff0@55 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|K+0#0000001#ffff4012| +0#0000000#ffffff0@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|z+0#0000001#ffff4012| +0#0000000#ffffff0@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|[+0#0000001#ffff4012| +0#0000000#ffffff0@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|]+0#0000001#ffff4012| +0#0000000#ffffff0@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|<+0#0000001#ffff4012| +0#0000000#ffffff0@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&|>+0#0000001#ffff4012| +0#0000000#ffffff0@55 +@75 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|`+0#0000001#ffff4012| +0#0000000#ffffff0@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|'+0#0000001#ffff4012| +0#0000000#ffffff0@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|A+0#0000001#ffff4012| +0#0000000#ffffff0@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|k+0#0000001#ffff4012| +0#0000000#ffffff0@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|K+0#0000001#ffff4012| +0#0000000#ffffff0@54 +@57|3|7|,|1| @9|1|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_03.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_03.dump new file mode 100644 index 000000000..19e555f99 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_03.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|K+0#0000001#ffff4012| +0#0000000#ffffff0@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|z+0#0000001#ffff4012| +0#0000000#ffffff0@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|[+0#0000001#ffff4012| +0#0000000#ffffff0@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|]+0#0000001#ffff4012| +0#0000000#ffffff0@54 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|<+0#0000001#ffff4012| +0#0000000#ffffff0@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|m+0#af5f00255&|a|r|k| +0#0000000&|>+0#0000001#ffff4012| +0#0000000#ffffff0@54 +@75 +|k+0#af5f00255&|`+0#0000001#ffff4012| +0#0000000#ffffff0@72 +|k+0#af5f00255&|'+0#0000001#ffff4012| +0#0000000#ffffff0@72 +|k+0#af5f00255&|a+0#0000001#ffff4012| +0#0000000#ffffff0@72 +|k+0#af5f00255&|A+0#0000001#ffff4012| +0#0000000#ffffff0@72 +|k+0#af5f00255&|k+0#0000001#ffff4012| +0#0000000#ffffff0@72 +|k+0#af5f00255&|K+0#0000001#ffff4012| +0#0000000#ffffff0@72 +|k+0#af5f00255&|z+0#0000001#ffff4012| +0#0000000#ffffff0@72 +|k+0#af5f00255&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@72 +|k+0#af5f00255&|[+0#0000001#ffff4012| +0#0000000#ffffff0@72 +|k+0#af5f00255&|]+0#0000001#ffff4012| +0#0000000#ffffff0@72 +|k+0#af5f00255&|<+0#0000001#ffff4012| +0#0000000#ffffff0@72 +@57|5@1|,|1| @9|2|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_04.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_04.dump new file mode 100644 index 000000000..bc2c2f675 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_04.dump @@ -0,0 +1,20 @@ +|k+0#af5f00255#ffffff0|<+0#0000001#ffff4012| +0#0000000#ffffff0@72 +|k+0#af5f00255&|>+0#0000001#ffff4012| +0#0000000#ffffff0@72 +@75 +|:|k+0#af5f00255&|`+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|:|k+0#af5f00255&|'+0#0000001#ffff4012| +0#0000000#ffffff0@71 +>:|k+0#af5f00255&|a+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|:|k+0#af5f00255&|A+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|:|k+0#af5f00255&|k+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|:|k+0#af5f00255&|K+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|:|k+0#af5f00255&|z+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|:|k+0#af5f00255&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|:|k+0#af5f00255&|[+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|:|k+0#af5f00255&|]+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|:|k+0#af5f00255&|<+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|:|k+0#af5f00255&|>+0#0000001#ffff4012| +0#0000000#ffffff0@71 +@75 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|`+0#0000001#ffff4012| +0#0000000#ffffff0@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|'+0#0000001#ffff4012| +0#0000000#ffffff0@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|a+0#0000001#ffff4012| +0#0000000#ffffff0@59 +@57|7|3|,|1| @9|3|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_05.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_05.dump new file mode 100644 index 000000000..d2b889b8b --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_05.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|a+0#0000001#ffff4012| +0#0000000#ffffff0@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|A+0#0000001#ffff4012| +0#0000000#ffffff0@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|k+0#0000001#ffff4012| +0#0000000#ffffff0@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|K+0#0000001#ffff4012| +0#0000000#ffffff0@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|z+0#0000001#ffff4012| +0#0000000#ffffff0@59 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|[+0#0000001#ffff4012| +0#0000000#ffffff0@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|]+0#0000001#ffff4012| +0#0000000#ffffff0@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|<+0#0000001#ffff4012| +0#0000000#ffffff0@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|>+0#0000001#ffff4012| +0#0000000#ffffff0@59 +@75 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|`+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|'+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|a+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|A+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|k+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|K+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|z+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@58 +@57|9|1|,|1| @9|4|3|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_06.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_06.dump new file mode 100644 index 000000000..224afb2d1 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_06.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|[+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|]+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|<+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&|>+0#0000001#ffff4012| +0#0000000#ffffff0@58 +> @74 +|k+0#af5f00255&| +0#0000000&|`+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|'+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|A+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|k+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|K+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|z+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|[+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|]+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|<+0#0000001#ffff4012| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|>+0#0000001#ffff4012| +0#0000000#ffffff0@71 +@75 +@57|1|0|9|,|0|-|1| @6|5|2|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_07.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_07.dump new file mode 100644 index 000000000..a2f23ea0f --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_07.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|:|k+0#af5f00255&| +0#0000000&|`+0#0000001#ffff4012| +0#0000000#ffffff0@70 +|:|k+0#af5f00255&| +0#0000000&|'+0#0000001#ffff4012| +0#0000000#ffffff0@70 +|:|k+0#af5f00255&| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@70 +|:|k+0#af5f00255&| +0#0000000&|A+0#0000001#ffff4012| +0#0000000#ffffff0@70 +>:|k+0#af5f00255&| +0#0000000&|k+0#0000001#ffff4012| +0#0000000#ffffff0@70 +|:|k+0#af5f00255&| +0#0000000&|K+0#0000001#ffff4012| +0#0000000#ffffff0@70 +|:|k+0#af5f00255&| +0#0000000&|z+0#0000001#ffff4012| +0#0000000#ffffff0@70 +|:|k+0#af5f00255&| +0#0000000&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@70 +|:|k+0#af5f00255&| +0#0000000&|[+0#0000001#ffff4012| +0#0000000#ffffff0@70 +|:|k+0#af5f00255&| +0#0000000&|]+0#0000001#ffff4012| +0#0000000#ffffff0@70 +|:|k+0#af5f00255&| +0#0000000&|<+0#0000001#ffff4012| +0#0000000#ffffff0@70 +|:|k+0#af5f00255&| +0#0000000&|>+0#0000001#ffff4012| +0#0000000#ffffff0@70 +@75 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|`+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|'+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|A+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|k+0#0000001#ffff4012| +0#0000000#ffffff0@58 +@57|1|2|7|,|1| @8|6|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_08.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_08.dump new file mode 100644 index 000000000..27f607a6c --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_08.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|k+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|K+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|z+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|[+0#0000001#ffff4012| +0#0000000#ffffff0@58 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|]+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|<+0#0000001#ffff4012| +0#0000000#ffffff0@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&|>+0#0000001#ffff4012| +0#0000000#ffffff0@58 +@75 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|`+0#0000001#ffff4012| +0#0000000#ffffff0@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|'+0#0000001#ffff4012| +0#0000000#ffffff0@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|A+0#0000001#ffff4012| +0#0000000#ffffff0@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|k+0#0000001#ffff4012| +0#0000000#ffffff0@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|K+0#0000001#ffff4012| +0#0000000#ffffff0@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|z+0#0000001#ffff4012| +0#0000000#ffffff0@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|Z+0#0000001#ffff4012| +0#0000000#ffffff0@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|[+0#0000001#ffff4012| +0#0000000#ffffff0@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|]+0#0000001#ffff4012| +0#0000000#ffffff0@57 +@57|1|4|5|,|1| @8|7|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_09.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_09.dump new file mode 100644 index 000000000..46eaca326 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_09.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|]+0#0000001#ffff4012| +0#0000000#ffffff0@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|<+0#0000001#ffff4012| +0#0000000#ffffff0@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |:|k+0#af5f00255&| +0#0000000&|>+0#0000001#ffff4012| +0#0000000#ffffff0@57 +@75 +@75 +>m+0#af5f00255&|a|r|k| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|O@1|"| +0#0000000&@55 +|k+0#af5f00255&|a+0#0000001#ffff4012| +0#0000000#ffffff0@4||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|O@1|"| +0#0000000&@55 +|k+0#af5f00255&| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@3||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|O@1|"| +0#0000000&@55 +|m+0#af5f00255&|a|r|k| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@58 +|k+0#af5f00255&|a+0#0000001#ffff4012| +0#0000000#ffffff0@4|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@58 +|k+0#af5f00255&| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@3|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@58 +@75 +@75 +|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@60 +@2|k+0#af5f00255&| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@69 +@2|k+0#af5f00255&|a+0#0000001#ffff4012| +0#0000000#ffffff0@70 +@2|m+0#af5f00255&|a|r|k| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@66 +@2|:|k+0#af5f00255&| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@68 +@2|:|k+0#af5f00255&|a+0#0000001#ffff4012| +0#0000000#ffffff0@69 +@57|1|6|3|,|1| @8|8|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_10.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_10.dump new file mode 100644 index 000000000..32cc2249a --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_10.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@1|:|k+0#af5f00255&|a+0#0000001#ffff4012| +0#0000000#ffffff0@69 +@2|:|m+0#af5f00255&|a|r|k| +0#0000000&|a+0#0000001#ffff4012| +0#0000000#ffffff0@65 +|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 +@75 +@75 +>"+0#0000e05&| |E|r@1|o|r|s| +0#0000000&@66 +@75 +|m+0#af5f00255&|a|r|k| +0#0000000&|"+0#ffffff16#ff404010| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|^+0#ffffff16#ff404010| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|.+0#ffffff16#ff404010| +0#0000000#ffffff0@68 +|"+0#0000e05&| +0#0000000&|T+0#0000001#ffff4012|O|D|O|:+0#e000e06#ffffff0| +0#0000e05&|m|a|t|c|h|e|s| |a|s| |v|i|m|F|u|n|c| +0#0000000&@48 +|"+0#0000e05&| |m|a|r|k| |(| +0#0000000&@66 +|m+0#af5f00255&|a|r|k| +0#0000000&|)+0#ffffff16#ff404010| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|{+0#ffffff16#ff404010| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|}+0#ffffff16#ff404010| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|0+0#ffffff16#ff404010| +0#0000000#ffffff0@68 +|m+0#af5f00255&|a|r|k| +0#0000000&|9+0#ffffff16#ff404010| +0#0000000#ffffff0@68 +@75 +|k+0#af5f00255&|"+0#ffffff16#ff404010| +0#0000000#ffffff0@72 +@57|1|8|1|,|1| @8|8|9|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_11.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_11.dump new file mode 100644 index 000000000..c986357c0 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_11.dump @@ -0,0 +1,20 @@ +|k+0#af5f00255#ffffff0|"+0#ffffff16#ff404010| +0#0000000#ffffff0@72 +|k+0#af5f00255&|^+0#ffffff16#ff404010| +0#0000000#ffffff0@72 +|k+0#af5f00255&|.+0#ffffff16#ff404010| +0#0000000#ffffff0@72 +|"+0#0000e05&| +0#0000000&|T+0#0000001#ffff4012|O|D|O|:+0#e000e06#ffffff0| +0#0000e05&|m|a|t|c|h|e|s| |a|s| |v|i|m|F|u|n|c| +0#0000000&@48 +|"+0#0000e05&| |k|(| +0#0000000&@70 +>k+0#af5f00255&|)+0#ffffff16#ff404010| +0#0000000#ffffff0@72 +|k+0#af5f00255&|{+0#ffffff16#ff404010| +0#0000000#ffffff0@72 +|k+0#af5f00255&|}+0#ffffff16#ff404010| +0#0000000#ffffff0@72 +|k+0#af5f00255&|0+0#ffffff16#ff404010| +0#0000000#ffffff0@72 +|k+0#af5f00255&|9+0#ffffff16#ff404010| +0#0000000#ffffff0@72 +@75 +|k+0#af5f00255&| +0#0000000&|"+0#ffffff16#ff404010| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|^+0#ffffff16#ff404010| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|.+0#ffffff16#ff404010| +0#0000000#ffffff0@71 +|"+0#0000e05&| +0#0000000&|T+0#0000001#ffff4012|O|D|O|:+0#e000e06#ffffff0| +0#0000e05&|m|a|t|c|h|e|s| |a|s| |v|i|m|F|u|n|c| +0#0000000&@48 +|"+0#0000e05&| |k| |(| +0#0000000&@69 +|k+0#af5f00255&| +0#0000000&|)+0#ffffff16#ff404010| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|{+0#ffffff16#ff404010| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|}+0#ffffff16#ff404010| +0#0000000#ffffff0@71 +@57|1|9@1|,|1| @8|9|8|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_mark_12.dump b/runtime/syntax/testdir/dumps/vim_ex_mark_12.dump new file mode 100644 index 000000000..02064018c --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_mark_12.dump @@ -0,0 +1,20 @@ +|k+0#af5f00255#ffffff0| +0#0000000&|}+0#ffffff16#ff404010| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|0+0#ffffff16#ff404010| +0#0000000#ffffff0@71 +|k+0#af5f00255&| +0#0000000&|9+0#ffffff16#ff404010| +0#0000000#ffffff0@71 +> @74 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|2|1|5|,|0|-|1| @6|B|o|t| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_00.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_00.dump index aea97ed4b..08ab0b29e 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_substitute_00.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_00.dump @@ -1,4 +1,7 @@ ->s+0#af5f00255#ffffff0|u|b|s|t|i|t|u|t|e|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|&| +0#0000000&@54 +>"+0#0000e05#ffffff0| |V|i|m| |:|s|u|b|s|t|i|t|u|t|e| |c|o|m@1|a|n|d| +0#0000000&@49 +@75 +@75 +|s+0#af5f00255&|u|b|s|t|i|t|u|t|e|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|&| +0#0000000&@54 |s+0#af5f00255&|u|b|s|t|i|t|u|t|e|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|c|e|g|i|I|n|p|#|l|r| +0#0000000&@45 @75 |s+0#af5f00255&|n|o|m|a|g|i|c|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|&| +0#0000000&@56 @@ -14,7 +17,4 @@ |:|s+0#af5f00255&|n|o|m|a|g|i|c|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|c|e|g|i|I|n|p|#|l|r| +0#0000000&@46 @75 |:|s+0#af5f00255&|m|a|g|i|c|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|&| +0#0000000&@57 -|:|s+0#af5f00255&|m|a|g|i|c|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|c|e|g|i|I|n|p|#|l|r| +0#0000000&@48 -@75 -|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|b|s|t|i|t|u|t|e|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|&| +0#0000000&@41 @57|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_01.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_01.dump index 253a239e0..763a0f889 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_substitute_01.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_01.dump @@ -1,9 +1,12 @@ -|:+0&#ffffff0|s+0#af5f00255&|n|o|m|a|g|i|c|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|c|e|g|i|I|n|p|#|l|r| +0#0000000&@46 +|:+0&#ffffff0|s+0#af5f00255&|u|b|s|t|i|t|u|t|e|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|c|e|g|i|I|n|p|#|l|r| +0#0000000&@44 @75 -|:|s+0#af5f00255&|m|a|g|i|c|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|&| +0#0000000&@57 +|:|s+0#af5f00255&|n|o|m|a|g|i|c|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|&| +0#0000000&@55 +|:|s+0#af5f00255&|n|o|m|a|g|i|c|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|c|e|g|i|I|n|p|#|l|r| +0#0000000&@46 +@75 +>:|s+0#af5f00255&|m|a|g|i|c|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|&| +0#0000000&@57 |:|s+0#af5f00255&|m|a|g|i|c|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|c|e|g|i|I|n|p|#|l|r| +0#0000000&@48 @75 ->c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|b|s|t|i|t|u|t|e|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|&| +0#0000000&@41 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|b|s|t|i|t|u|t|e|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|&| +0#0000000&@41 |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|b|s|t|i|t|u|t|e|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|c|e|g|i|I|n|p|#|l|r| +0#0000000&@32 @75 |c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|o|m|a|g|i|c|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|&| +0#0000000&@43 @@ -14,7 +17,4 @@ @75 |l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|t|r|-+0#af5f00255&|>|s+0#00e0e07&|u|b|s|t|i|t|u|t|e|(+0#e000e06&|s+0#00e0e07&|t|r|,+0#0000000&| |p+0#00e0e07&|a|t|,+0#0000000&| |s+0#00e0e07&|u|b|,+0#0000000&| |f+0#00e0e07&|l|a|g|s|)+0#e000e06&| +0#0000000&@27 @75 -|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@60 -| +0#af5f00255&@1|s|u|b|s|t|i|t|u|t|e|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&| +0#0000000&@53 -@2|l+0#af5f00255&|e|t| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|t|r|-+0#af5f00255&|>|s+0#00e0e07&|u|b|s|t|i|t|u|t|e|(+0#e000e06&|s+0#00e0e07&|t|r|,+0#0000000&| |p+0#00e0e07&|a|t|,+0#0000000&| |s+0#00e0e07&|u|b|,+0#0000000&| |f+0#00e0e07&|l|a|g|s|)+0#e000e06&| +0#0000000&@25 -@57|1|9|,|1| @9|1|0|%| +@57|1|9|,|1| @10|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_02.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_02.dump index 81ab62f1d..716f4af1d 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_substitute_02.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_02.dump @@ -1,11 +1,15 @@ -| +0&#ffffff0@1|l+0#af5f00255&|e|t| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|t|r|-+0#af5f00255&|>|s+0#00e0e07&|u|b|s|t|i|t|u|t|e|(+0#e000e06&|s+0#00e0e07&|t|r|,+0#0000000&| |p+0#00e0e07&|a|t|,+0#0000000&| |s+0#00e0e07&|u|b|,+0#0000000&| |f+0#00e0e07&|l|a|g|s|)+0#e000e06&| +0#0000000&@25 +| +0&#ffffff0@74 +|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@60 +| +0#af5f00255&@1|s|u|b|s|t|i|t|u|t|e|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&| +0#0000000&@53 +@2|l+0#af5f00255&|e|t| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|t|r|-+0#af5f00255&|>|s+0#00e0e07&|u|b|s|t|i|t|u|t|e|(+0#e000e06&|s+0#00e0e07&|t|r|,+0#0000000&| |p+0#00e0e07&|a|t|,+0#0000000&| |s+0#00e0e07&|u|b|,+0#0000000&| |f+0#00e0e07&|l|a|g|s|)+0#e000e06&| +0#0000000&@25 |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 -@75 +> @74 |d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65 | +0#af5f00255&@1|s|u|b|s|t|i|t|u|t|e|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&| +0#0000000&@53 -@2>l+0#af5f00255&|e|t| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|t|r|-+0#af5f00255&|>|s+0#00e0e07&|u|b|s|t|i|t|u|t|e|(+0#e000e06&|s+0#00e0e07&|t|r|,+0#0000000&| |p+0#00e0e07&|a|t|,+0#0000000&| |s+0#00e0e07&|u|b|,+0#0000000&| |f+0#00e0e07&|l|a|g|s|)+0#e000e06&| +0#0000000&@25 +@2|l+0#af5f00255&|e|t| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|t|r|-+0#af5f00255&|>|s+0#00e0e07&|u|b|s|t|i|t|u|t|e|(+0#e000e06&|s+0#00e0e07&|t|r|,+0#0000000&| |p+0#00e0e07&|a|t|,+0#0000000&| |s+0#00e0e07&|u|b|,+0#0000000&| |f+0#00e0e07&|l|a|g|s|)+0#e000e06&| +0#0000000&@25 |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 @75 +@75 |"+0#0000e05&| |v|a|r|i|o|u|s| |d|e|l|i|m|i|t|e|r|s| +0#0000000&@54 @75 |s+0#af5f00255&|!+0#e000e06&|/+0#0000000&|!+0#e000e06&|/+0#0000000&@1|!+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 @@ -13,8 +17,4 @@ |s+0#af5f00255&|#+0#e000e06&|/+0#0000000&|#+0#e000e06&|/+0#0000000&@1|#+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|$+0#e000e06&|/+0#0000000&|$+0#e000e06&|/+0#0000000&@1|$+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|%+0#e000e06&|/+0#0000000&|%+0#e000e06&|/+0#0000000&@1|%+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 -|s+0#af5f00255&|&+0#e000e06&|/+0#0000000&|&+0#e000e06&|/+0#0000000&@1|&+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 -|s+0#af5f00255&|'+0#e000e06&|/+0#0000000&|'+0#e000e06&|/+0#0000000&@1|'+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 -|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000e05#ffffff0|-| |m|a|t|c|h|e|s| |v|i|m|U|s|e|r|F|u|n|c| +0#0000000&@45 -|"+0#0000e05&| |s|(|/|(|/@1|(| |"| |c|o|m@1|e|n|t| +0#0000000&@55 -@57|3|7|,|3| @9|2|5|%| +@57|3|7|,|0|-|1| @7|1|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_03.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_03.dump index 68aac6b09..036a279ff 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_substitute_03.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_03.dump @@ -1,9 +1,13 @@ -|"+0#0000e05#ffffff0| |s|(|/|(|/@1|(| |"| |c|o|m@1|e|n|t| +0#0000000&@55 -|s+0#af5f00255&|)+0#e000e06&|/+0#0000000&|)+0#e000e06&|/+0#0000000&@1|)+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 +|s+0#af5f00255#ffffff0|%+0#e000e06&|/+0#0000000&|%+0#e000e06&|/+0#0000000&@1|%+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 +|s+0#af5f00255&|&+0#e000e06&|/+0#0000000&|&+0#e000e06&|/+0#0000000&@1|&+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 +|s+0#af5f00255&|'+0#e000e06&|/+0#0000000&|'+0#e000e06&|/+0#0000000&@1|'+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 +|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000e05#ffffff0|-| |m|a|t|c|h|e|s| |v|i|m|U|s|e|r|F|u|n|c| +0#0000000&@45 +|"+0#0000e05&| |s|(|/|(|/@1|(| |"| |c|o|m@1|e|n|t| +0#0000000&@55 +>s+0#af5f00255&|)+0#e000e06&|/+0#0000000&|)+0#e000e06&|/+0#0000000&@1|)+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|*+0#e000e06&|/+0#0000000&|*+0#e000e06&|/+0#0000000&@1|*+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|++0#e000e06&|/+0#0000000&|++0#e000e06&|/+0#0000000&@1|++0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|,+0#e000e06&|/+0#0000000&|,+0#e000e06&|/+0#0000000&@1|,+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 ->s+0#af5f00255&|-+0#e000e06&|/+0#0000000&|-+0#e000e06&|/+0#0000000&@1|-+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 +|s+0#af5f00255&|-+0#e000e06&|/+0#0000000&|-+0#e000e06&|/+0#0000000&@1|-+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|.+0#e000e06&|/+0#0000000&|.+0#e000e06&|/+0#0000000&@1|.+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|/+0#e000e06&|X+0#0000000&|/+0#e000e06&|X+0#0000000&@1|/+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|:+0#e000e06&|/+0#0000000&|:+0#e000e06&|/+0#0000000&@1|:+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 @@ -13,8 +17,4 @@ |s+0#af5f00255&|>+0#e000e06&|/+0#0000000&|>+0#e000e06&|/+0#0000000&@1|>+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|?+0#e000e06&|/+0#0000000&|?+0#e000e06&|/+0#0000000&@1|?+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|@+0#e000e06&|/+0#0000000&|@+0#e000e06&|/+0#0000000&@1|@+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 -|s+0#af5f00255&|[+0#e000e06&|/+0#0000000&|[+0#e000e06&|/+0#0000000&@1|[+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 -|"+0#0000e05&| |s|\|/|\|/@1|\| |"| |c|o|m@1|e|n|t| |(|d|i|s|a|l@1|o|w|e|d|)| +0#0000000&@42 -|s+0#af5f00255&|]+0#e000e06&|/+0#0000000&|]+0#e000e06&|/+0#0000000&@1|]+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 -|s+0#af5f00255&|^+0#e000e06&|/+0#0000000&|^+0#e000e06&|/+0#0000000&@1|^+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 -@57|5@1|,|1| @9|3|9|%| +@57|5@1|,|1| @9|2|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_04.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_04.dump index 917b48240..b4ea513b8 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_substitute_04.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_04.dump @@ -1,9 +1,13 @@ -|s+0#af5f00255#ffffff0|^+0#e000e06&|/+0#0000000&|^+0#e000e06&|/+0#0000000&@1|^+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 -|s+0#af5f00255&|_+0#e000e06&|/+0#0000000&|_+0#e000e06&|/+0#0000000&@1|_+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 +|s+0#af5f00255#ffffff0|@+0#e000e06&|/+0#0000000&|@+0#e000e06&|/+0#0000000&@1|@+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 +|s+0#af5f00255&|[+0#e000e06&|/+0#0000000&|[+0#e000e06&|/+0#0000000&@1|[+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 +|"+0#0000e05&| |s|\|/|\|/@1|\| |"| |c|o|m@1|e|n|t| |(|d|i|s|a|l@1|o|w|e|d|)| +0#0000000&@42 +|s+0#af5f00255&|]+0#e000e06&|/+0#0000000&|]+0#e000e06&|/+0#0000000&@1|]+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 +|s+0#af5f00255&|^+0#e000e06&|/+0#0000000&|^+0#e000e06&|/+0#0000000&@1|^+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 +>s+0#af5f00255&|_+0#e000e06&|/+0#0000000&|_+0#e000e06&|/+0#0000000&@1|_+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|`+0#e000e06&|/+0#0000000&|`+0#e000e06&|/+0#0000000&@1|`+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|{+0#e000e06&|/+0#0000000&|{+0#e000e06&|/+0#0000000&@1|{+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |"+0#0000e05&| |s|||/|||/@1||| |"| |c|o|m@1|e|n|t| |(|d|i|s|a|l@1|o|w|e|d|)| +0#0000000&@42 ->s+0#af5f00255&|}+0#e000e06&|/+0#0000000&|}+0#e000e06&|/+0#0000000&@1|}+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 +|s+0#af5f00255&|}+0#e000e06&|/+0#0000000&|}+0#e000e06&|/+0#0000000&@1|}+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 |s+0#af5f00255&|~+0#e000e06&|/+0#0000000&|~+0#e000e06&|/+0#0000000&@1|~+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@57 @75 |s+0#af5f00255&| +0#0000000&|!+0#e000e06&|/+0#0000000&|!+0#e000e06&|/+0#0000000&@1|!+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 @@ -13,8 +17,4 @@ |s+0#af5f00255&| +0#0000000&|%+0#e000e06&|/+0#0000000&|%+0#e000e06&|/+0#0000000&@1|%+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |s+0#af5f00255&| +0#0000000&|&+0#e000e06&|/+0#0000000&|&+0#e000e06&|/+0#0000000&@1|&+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |s+0#af5f00255&| +0#0000000&|'+0#e000e06&|/+0#0000000&|'+0#e000e06&|/+0#0000000&@1|'+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 -|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000e05#ffffff0|-| |m|a|t|c|h|e|s| |v|i|m|U|s|e|r|F|u|n|c| +0#0000000&@45 -|"+0#0000e05&| |s| |(|/|(|/@1|(| |"| |c|o|m@1|e|n|t| +0#0000000&@54 -|s+0#af5f00255&| +0#0000000&|)+0#e000e06&|/+0#0000000&|)+0#e000e06&|/+0#0000000&@1|)+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 -|s+0#af5f00255&| +0#0000000&|*+0#e000e06&|/+0#0000000&|*+0#e000e06&|/+0#0000000&@1|*+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 -@57|7|3|,|1| @9|5|4|%| +@57|7|3|,|1| @9|3|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_05.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_05.dump index 58cc3c82e..3b6bc92f5 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_substitute_05.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_05.dump @@ -1,9 +1,13 @@ -|s+0#af5f00255#ffffff0| +0#0000000&|*+0#e000e06&|/+0#0000000&|*+0#e000e06&|/+0#0000000&@1|*+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 -|s+0#af5f00255&| +0#0000000&|++0#e000e06&|/+0#0000000&|++0#e000e06&|/+0#0000000&@1|++0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 +|s+0#af5f00255#ffffff0| +0#0000000&|'+0#e000e06&|/+0#0000000&|'+0#e000e06&|/+0#0000000&@1|'+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 +|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000e05#ffffff0|-| |m|a|t|c|h|e|s| |v|i|m|U|s|e|r|F|u|n|c| +0#0000000&@45 +|"+0#0000e05&| |s| |(|/|(|/@1|(| |"| |c|o|m@1|e|n|t| +0#0000000&@54 +|s+0#af5f00255&| +0#0000000&|)+0#e000e06&|/+0#0000000&|)+0#e000e06&|/+0#0000000&@1|)+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 +|s+0#af5f00255&| +0#0000000&|*+0#e000e06&|/+0#0000000&|*+0#e000e06&|/+0#0000000&@1|*+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 +>s+0#af5f00255&| +0#0000000&|++0#e000e06&|/+0#0000000&|++0#e000e06&|/+0#0000000&@1|++0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |s+0#af5f00255&| +0#0000000&|,+0#e000e06&|/+0#0000000&|,+0#e000e06&|/+0#0000000&@1|,+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |s+0#af5f00255&| +0#0000000&|-+0#e000e06&|/+0#0000000&|-+0#e000e06&|/+0#0000000&@1|-+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |s+0#af5f00255&| +0#0000000&|.+0#e000e06&|/+0#0000000&|.+0#e000e06&|/+0#0000000&@1|.+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 ->s+0#af5f00255&| +0#0000000&|/+0#e000e06&|X+0#0000000&|/+0#e000e06&|X+0#0000000&@1|/+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 +|s+0#af5f00255&| +0#0000000&|/+0#e000e06&|X+0#0000000&|/+0#e000e06&|X+0#0000000&@1|/+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |s+0#af5f00255&| +0#0000000&|:+0#e000e06&|/+0#0000000&|:+0#e000e06&|/+0#0000000&@1|:+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |s+0#af5f00255&| +0#0000000&|;+0#e000e06&|/+0#0000000&|;+0#e000e06&|/+0#0000000&@1|;+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |s+0#af5f00255&| +0#0000000&|<+0#e000e06&|/+0#0000000&|<+0#e000e06&|/+0#0000000&@1|<+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 @@ -13,8 +17,4 @@ |s+0#af5f00255&| +0#0000000&|@+0#e000e06&|/+0#0000000&|@+0#e000e06&|/+0#0000000&@1|@+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |s+0#af5f00255&| +0#0000000&|[+0#e000e06&|/+0#0000000&|[+0#e000e06&|/+0#0000000&@1|[+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |"+0#0000e05&| |s| |\|/|\|/@1|\| |"| |c|o|m@1|e|n|t| |(|d|i|s|a|l@1|o|w|e|d|)| +0#0000000&@41 -|s+0#af5f00255&| +0#0000000&|]+0#e000e06&|/+0#0000000&|]+0#e000e06&|/+0#0000000&@1|]+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 -|s+0#af5f00255&| +0#0000000&|^+0#e000e06&|/+0#0000000&|^+0#e000e06&|/+0#0000000&@1|^+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 -|s+0#af5f00255&| +0#0000000&|_+0#e000e06&|/+0#0000000&|_+0#e000e06&|/+0#0000000&@1|_+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 -|s+0#af5f00255&| +0#0000000&|`+0#e000e06&|/+0#0000000&|`+0#e000e06&|/+0#0000000&@1|`+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 -@57|9|1|,|1| @9|6|8|%| +@57|9|1|,|1| @9|4@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_06.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_06.dump index bc2f4c6c2..00569af72 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_substitute_06.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_06.dump @@ -1,20 +1,20 @@ -|s+0#af5f00255#ffffff0| +0#0000000&|`+0#e000e06&|/+0#0000000&|`+0#e000e06&|/+0#0000000&@1|`+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 -|s+0#af5f00255&| +0#0000000&|{+0#e000e06&|/+0#0000000&|{+0#e000e06&|/+0#0000000&@1|{+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 +|"+0#0000e05#ffffff0| |s| |\|/|\|/@1|\| |"| |c|o|m@1|e|n|t| |(|d|i|s|a|l@1|o|w|e|d|)| +0#0000000&@41 +|s+0#af5f00255&| +0#0000000&|]+0#e000e06&|/+0#0000000&|]+0#e000e06&|/+0#0000000&@1|]+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 +|s+0#af5f00255&| +0#0000000&|^+0#e000e06&|/+0#0000000&|^+0#e000e06&|/+0#0000000&@1|^+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 +|s+0#af5f00255&| +0#0000000&|_+0#e000e06&|/+0#0000000&|_+0#e000e06&|/+0#0000000&@1|_+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 +|s+0#af5f00255&| +0#0000000&|`+0#e000e06&|/+0#0000000&|`+0#e000e06&|/+0#0000000&@1|`+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 +>s+0#af5f00255&| +0#0000000&|{+0#e000e06&|/+0#0000000&|{+0#e000e06&|/+0#0000000&@1|{+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |"+0#0000e05&| |s| |||/|||/@1||| |"| |c|o|m@1|e|n|t| |(|d|i|s|a|l@1|o|w|e|d|)| +0#0000000&@41 |s+0#af5f00255&| +0#0000000&|}+0#e000e06&|/+0#0000000&|}+0#e000e06&|/+0#0000000&@1|}+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 |s+0#af5f00255&| +0#0000000&|~+0#e000e06&|/+0#0000000&|~+0#e000e06&|/+0#0000000&@1|~+0#e000e06&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56 -> @74 +@75 |s+0#af5f00255&|/+0#e000e06&@1|{+0#0000000&|s|t|r|i|n|g|}|/+0#e000e06&| +0#0000000&@62 |s+0#af5f00255&| +0#0000000&|/+0#e000e06&@1|{+0#0000000&|s|t|r|i|n|g|}|/+0#e000e06&| +0#0000000&@61 @75 @75 -|"+0#0000e05&| |V|i| |c|o|m|p|a|t|i|b|i|l|i|t|y| +0#0000000&@56 -@75 -|s+0#af5f00255&|\+0#e000e06&|/|{+0#0000000&|s|t|r|i|n|g|}|/+0#e000e06&| +0#0000000&@62 -|s+0#af5f00255&|\+0#e000e06&|?|{+0#0000000&|s|t|r|i|n|g|}|?+0#e000e06&| +0#0000000&@62 -|s+0#af5f00255&|\+0#e000e06&|&|{+0#0000000&|s|t|r|i|n|g|}|&+0#e000e06&| +0#0000000&@62 +|"+0#0000e05&| |R|e|p|e|a|t| |c|o|m@1|a|n|d|s| +0#0000000&@57 @75 -|s+0#af5f00255&| +0#0000000&|\+0#e000e06&|/|{+0#0000000&|s|t|r|i|n|g|}|/+0#e000e06&| +0#0000000&@61 -|s+0#af5f00255&| +0#0000000&|\+0#e000e06&|?|{+0#0000000&|s|t|r|i|n|g|}|?+0#e000e06&| +0#0000000&@61 -|s+0#af5f00255&| +0#0000000&|\+0#e000e06&|&|{+0#0000000&|s|t|r|i|n|g|}|&+0#e000e06&| +0#0000000&@61 -@57|1|0|9|,|0|-|1| @6|8|3|%| +|s+0#af5f00255&| +0#0000000&@73 +|:|s+0#af5f00255&| +0#0000000&@72 +|s+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@70 +@57|1|0|9|,|1| @8|5|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_07.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_07.dump index eae48b7c4..13956ce91 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_substitute_07.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_07.dump @@ -1,20 +1,20 @@ -|s+0#af5f00255#ffffff0| +0#0000000&|\+0#e000e06&|&|{+0#0000000&|s|t|r|i|n|g|}|&+0#e000e06&| +0#0000000&@61 -@75 -@75 -|"+0#0000e05&| |T|r|a|i|l|i|n|g| |c|o|m@1|e|n|t| |a|n|d| |b|a|r| +0#0000000&@48 -@75 ->s+0#af5f00255&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@64 -|s+0#af5f00255&||+0#0000000&| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@61 -@75 -|s+0#af5f00255&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@63 -|s+0#af5f00255&| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@60 -@75 -@75 -|"+0#0000e05&| |I|s@1|u|e| |#|1|3|8@1|3| +0#0000000&@60 -@75 -|s|t|r|[|s|]| @68 -|s|t|r|(+0#e000e06&|s+0#00e0e07&|)+0#e000e06&| +0#0000000&@68 -@75 -|d+0#af5f00255&|e|f| +0#0000000&|T|e|s|t|(+0#e000e06&|)| +0#0000000&@64 -@1| +0#00e0e07&|s|t|r|[+0#0000000&|s+0#00e0e07&|]+0#0000000&| @66 -@57|1|2|7|,|1| @8|9|7|%| +|s+0#af5f00255#ffffff0| +0#0000000&|4+0#e000002&|2| +0#0000000&@70 +|:|s+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@69 +|s+0#af5f00255&|4+0#e000002&|2| +0#0000000&@71 +|:|s+0#af5f00255&|4+0#e000002&|2| +0#0000000&@70 +@75 +>s+0#af5f00255&| +0#0000000&|c+0#e000e06&|e|g|i|I|n|p|#|l|r| +0#0000000&@62 +|:|s+0#af5f00255&| +0#0000000&|c+0#e000e06&|e|g|i|I|n|p|#|l|r| +0#0000000&@61 +|s+0#af5f00255&| +0#0000000&|c+0#e000e06&|e|g|i|I|n|p|#|l|r|4+0#e000002&|2| +0#0000000&@60 +|:|s+0#af5f00255&| +0#0000000&|c+0#e000e06&|e|g|i|I|n|p|#|l|r|4+0#e000002&|2| +0#0000000&@59 +|s+0#af5f00255&| +0#0000000&|c+0#e000e06&|e|g|i|I|n|p|#|l|r| +0#0000000&|4+0#e000002&|2| +0#0000000&@59 +|:|s+0#af5f00255&| +0#0000000&|c+0#e000e06&|e|g|i|I|n|p|#|l|r| +0#0000000&|4+0#e000002&|2| +0#0000000&@58 +@75 +|s+0#af5f00255&|g+0#e000e06&| +0#0000000&@72 +|:|s+0#af5f00255&|g+0#e000e06&| +0#0000000&@71 +|s+0#af5f00255&|g+0#e000e06&|i| +0#0000000&@71 +|:|s+0#af5f00255&|g+0#e000e06&|i| +0#0000000&@70 +|s+0#af5f00255&|g+0#e000e06&| +0#0000000&|4+0#e000002&|2| +0#0000000&@69 +|:|s+0#af5f00255&|g+0#e000e06&| +0#0000000&|4+0#e000002&|2| +0#0000000&@68 +|s+0#af5f00255&|g+0#e000e06&|i| +0#0000000&|4+0#e000002&|2| +0#0000000&@68 +@57|1|2|7|,|1| @8|6|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_08.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_08.dump index ca53574fd..bd1b5d0b1 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_substitute_08.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_08.dump @@ -1,20 +1,20 @@ -| +0&#ffffff0| +0#00e0e07&|s|t|r|[+0#0000000&|s+0#00e0e07&|]+0#0000000&| @66 -@2|s|t|r|(+0#e000e06&|s+0#00e0e07&|)+0#e000e06&| +0#0000000&@66 -|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 -> @74 -|~+0#4040ff13&| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -| +0#0000000&@56|1|4|3|,|0|-|1| @6|B|o|t| +|s+0#af5f00255#ffffff0|g+0#e000e06&|i| +0#0000000&|4+0#e000002&|2| +0#0000000&@68 +|:|s+0#af5f00255&|g+0#e000e06&|i| +0#0000000&|4+0#e000002&|2| +0#0000000&@67 +|s+0#af5f00255&|g+0#e000e06&|4+0#e000002&|2| +0#0000000&@70 +|:|s+0#af5f00255&|g+0#e000e06&|4+0#e000002&|2| +0#0000000&@69 +|s+0#af5f00255&|g+0#e000e06&|i|4+0#e000002&|2| +0#0000000&@69 +>:|s+0#af5f00255&|g+0#e000e06&|i|4+0#e000002&|2| +0#0000000&@68 +@75 +|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67 +|&+0#00e0e07&| +0#0000000&@73 +|&+0#af5f00255&@1| +0#0000000&@72 +|~| @73 +|~|&+0#00e0e07&| +0#0000000&@72 +@75 +|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67 +|&+0#00e0e07&|c+0#0000000&|e|g|i|I|n|p|#|l+0#af5f00255&|r| +0#0000000&@63 +|&+0#af5f00255&@1|c+0#00e0e07&|e|g|i|I|n|p|#|l|r| +0#0000000&@62 +|~|c|e|g|i|I|n|p|#|l+0#af5f00255&|r| +0#0000000&@63 +|~|&+0#00e0e07&|c+0#0000000&|e|g|i|I|n|p|#|l+0#af5f00255&|r| +0#0000000&@62 +@75 +@57|1|4|5|,|1| @8|7|3|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_09.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_09.dump new file mode 100644 index 000000000..bbe6bb3b2 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_09.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|"+0#0000e05&| |2| |a|n|d| |3| |l|e|t@1|e|r| |r|e|p|e|a|t|-|p|r|e|v|i|o|u|s| |v|a|r|i|a|n|t|s| +0#0000000&@33 +@75 +|:|s+0#af5f00255&|c+0#e000e06&| +0#0000000&@1||| |:|s+0#af5f00255&|c+0#e000e06&|e| +0#0000000&||| |:|s+0#af5f00255&|c+0#e000e06&|g| +0#0000000&||| |:|s+0#af5f00255&|c+0#e000e06&|i| +0#0000000&||| |:|s+0#af5f00255&|c+0#e000e06&|I| +0#0000000&||| |:|s+0#af5f00255&|c+0#e000e06&|n| +0#0000000&||| |:|s+0#af5f00255&|c+0#e000e06&|p| +0#0000000&||| |:|s+0#af5f00255&|c+0#e000e06&|l| +0#0000000&||| @19 +|:|s+0#af5f00255&|g+0#e000e06&|c| +0#0000000&||| |:|s+0#af5f00255&|g+0#e000e06&|e| +0#0000000&||| |:|s+0#af5f00255&|g+0#e000e06&| +0#0000000&@1||| |:|s+0#af5f00255&|g+0#e000e06&|i| +0#0000000&||| |:|s+0#af5f00255&|g+0#e000e06&|I| +0#0000000&||| |:|s+0#af5f00255&|g+0#e000e06&|n| +0#0000000&||| |:|s+0#af5f00255&|g+0#e000e06&|p| +0#0000000&||| |:|s+0#af5f00255&|g+0#e000e06&|l| +0#0000000&||| |:|s+0#af5f00255&|g+0#e000e06&|r| +0#0000000&@14 +>:|s+0#af5f00255&|i+0#e000e06&|c| +0#0000000&||| |:|s+0#af5f00255&|i+0#e000e06&|e| +0#0000000&||| @5||| |:|s+0#af5f00255&|i+0#e000e06&| +0#0000000&@1||| |:|s+0#af5f00255&|i+0#e000e06&|I| +0#0000000&||| |:|s+0#af5f00255&|i+0#e000e06&|n| +0#0000000&||| |:|s+0#af5f00255&|i+0#e000e06&|p| +0#0000000&||| @5||| |:|s+0#af5f00255&|i+0#e000e06&|r| +0#0000000&@14 +|:|s+0#af5f00255&|I+0#e000e06&|c| +0#0000000&||| |:|s+0#af5f00255&|I+0#e000e06&|e| +0#0000000&||| |:|s+0#af5f00255&|I+0#e000e06&|g| +0#0000000&||| |:|s+0#af5f00255&|I+0#e000e06&|i| +0#0000000&||| |:|s+0#af5f00255&|I+0#e000e06&| +0#0000000&@1||| |:|s+0#af5f00255&|I+0#e000e06&|n| +0#0000000&||| |:|s+0#af5f00255&|I+0#e000e06&|p| +0#0000000&||| |:|s+0#af5f00255&|I+0#e000e06&|l| +0#0000000&||| |:|s+0#af5f00255&|I+0#e000e06&|r| +0#0000000&@14 +|:|s+0#af5f00255&|r+0#e000e06&|c| +0#0000000&||| @5||| |:|s+0#af5f00255&|r+0#e000e06&|g| +0#0000000&||| |:|s+0#af5f00255&|r+0#e000e06&|i| +0#0000000&||| |:|s+0#af5f00255&|r+0#e000e06&|I| +0#0000000&||| |:|s+0#af5f00255&|r+0#e000e06&|n| +0#0000000&||| |:|s+0#af5f00255&|r+0#e000e06&|p| +0#0000000&||| |:|s+0#af5f00255&|r+0#e000e06&|l| +0#0000000&||| |:|s+0#af5f00255&|r+0#e000e06&| +0#0000000&@15 +@75 +@75 +|"+0#0000e05&| |e|x|c|e|p|t|i|o|n|s| +0#0000000&@62 +|:|s+0#af5f00255&|c|r| +0#0000000&@1|"+0#0000e05&| |i|s| @1|`|:|s|c|r|i|p|t|n|a|m|e|s|`| +0#0000000&@48 +|:|s+0#af5f00255&|e| +0#0000000&@2|"+0#0000e05&| |i|s| @1|`|:|s|e|t|`| +0#0000000&@56 +|:|s+0#af5f00255&|i|g| +0#0000000&@1|"+0#0000e05&| |i|s| @1|`|:|s|i|g|n|`| +0#0000000&@55 +|:|s+0#af5f00255&|i|l| +0#0000000&@1|"+0#0000e05&| |i|s| @1|`|:|s|i|l|e|n|t|`| +0#0000000&@53 +|:|s+0#af5f00255&|n| +0#0000000&@2|"+0#0000e05&| |i|s| @1|`|:|s|n|e|x|t|`| +0#0000000&@54 +|:|s+0#af5f00255&|p| +0#0000000&@2|"+0#0000e05&| |i|s| @1|`|:|s|p|l|i|t|`| +0#0000000&@54 +|:|s+0#af5f00255&|l| +0#0000000&@2|"+0#0000e05&| |i|s| @1|`|:|s|l|e@1|p|`| +0#0000000&@54 +|:|s+0#af5f00255&|r|e| +0#0000000&@1|"+0#0000e05&| |i|s| @1|`|:|s|r|e|w|i|n|d|`| +0#0000000&@52 +@57|1|6|3|,|1| @8|8|3|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_10.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_10.dump new file mode 100644 index 000000000..c04abd269 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_10.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|s+0#af5f00255&|r|e| +0#0000000&@1|"+0#0000e05&| |i|s| @1|`|:|s|r|e|w|i|n|d|`| +0#0000000&@52 +@75 +@75 +|"+0#0000e05&| |V|i| |c|o|m|p|a|t|i|b|i|l|i|t|y| +0#0000000&@56 +@75 +>s+0#af5f00255&|\+0#e000e06&|/|{+0#0000000&|s|t|r|i|n|g|}|/+0#e000e06&| +0#0000000&@62 +|s+0#af5f00255&|\+0#e000e06&|?|{+0#0000000&|s|t|r|i|n|g|}|?+0#e000e06&| +0#0000000&@62 +|s+0#af5f00255&|\+0#e000e06&|&|{+0#0000000&|s|t|r|i|n|g|}|&+0#e000e06&| +0#0000000&@62 +@75 +|s+0#af5f00255&| +0#0000000&|\+0#e000e06&|/|{+0#0000000&|s|t|r|i|n|g|}|/+0#e000e06&| +0#0000000&@61 +|s+0#af5f00255&| +0#0000000&|\+0#e000e06&|?|{+0#0000000&|s|t|r|i|n|g|}|?+0#e000e06&| +0#0000000&@61 +|s+0#af5f00255&| +0#0000000&|\+0#e000e06&|&|{+0#0000000&|s|t|r|i|n|g|}|&+0#e000e06&| +0#0000000&@61 +@75 +@75 +|"+0#0000e05&| |T|r|a|i|l|i|n|g| |c|o|m@1|e|n|t| |a|n|d| |b|a|r| +0#0000000&@48 +@75 +|s+0#af5f00255&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@64 +|s+0#af5f00255&||+0#0000000&| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@61 +@75 +@57|1|8|1|,|1| @8|9|2|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_substitute_11.dump b/runtime/syntax/testdir/dumps/vim_ex_substitute_11.dump new file mode 100644 index 000000000..f63455a42 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_substitute_11.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|s+0#af5f00255&| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@63 +|s+0#af5f00255&| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@60 +@75 +@75 +>"+0#0000e05&| |I|s@1|u|e| |#|1|3|8@1|3| +0#0000000&@60 +@75 +|s|t|r|[|s|]| @68 +|s|t|r|(+0#e000e06&|s+0#00e0e07&|)+0#e000e06&| +0#0000000&@68 +@75 +|d+0#af5f00255&|e|f| +0#0000000&|T|e|s|t|(+0#e000e06&|)| +0#0000000&@64 +@1| +0#00e0e07&|s|t|r|[+0#0000000&|s+0#00e0e07&|]+0#0000000&| @66 +@2|s|t|r|(+0#e000e06&|s+0#00e0e07&|)+0#e000e06&| +0#0000000&@66 +|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 +@75 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|1|9@1|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/input/vim_ex_mark.vim b/runtime/syntax/testdir/input/vim_ex_mark.vim new file mode 100644 index 000000000..31df3b268 --- /dev/null +++ b/runtime/syntax/testdir/input/vim_ex_mark.vim @@ -0,0 +1,215 @@ +" Vim :mark and :k commands +" :k not available in Vim9 +" VIM_TEST_SETUP hi link vimMarkArg Todo + + +mark ` +mark ' +mark a +mark A +mark k +mark K +mark z +mark Z +mark [ +mark ] +mark < +mark > + +:mark ` +:mark ' +:mark a +:mark A +:mark k +:mark K +:mark z +:mark Z +:mark [ +:mark ] +:mark < +:mark > + +call Foo() | mark ` +call Foo() | mark ' +call Foo() | mark a +call Foo() | mark A +call Foo() | mark k +call Foo() | mark K +call Foo() | mark z +call Foo() | mark Z +call Foo() | mark [ +call Foo() | mark ] +call Foo() | mark < +call Foo() | mark > + +call Foo() | :mark ` +call Foo() | :mark ' +call Foo() | :mark a +call Foo() | :mark A +call Foo() | :mark k +call Foo() | :mark K +call Foo() | :mark z +call Foo() | :mark Z +call Foo() | :mark [ +call Foo() | :mark ] +call Foo() | :mark < +call Foo() | :mark > + +k` +k' +ka +kA +kk +kK +kz +kZ +k[ +k] +k< +k> + +:k` +:k' +:ka +:kA +:kk +:kK +:kz +:kZ +:k[ +:k] +:k< +:k> + +call Foo() | k` +call Foo() | k' +call Foo() | ka +call Foo() | kA +call Foo() | kk +call Foo() | kK +call Foo() | kz +call Foo() | kZ +call Foo() | k[ +call Foo() | k] +call Foo() | k< +call Foo() | k> + +call Foo() | :k` +call Foo() | :k' +call Foo() | :ka +call Foo() | :kA +call Foo() | :kk +call Foo() | :kK +call Foo() | :kz +call Foo() | :kZ +call Foo() | :k[ +call Foo() | :k] +call Foo() | :k< +call Foo() | :k> + +k ` +k ' +k a +k A +k k +k K +k z +k Z +k [ +k ] +k < +k > + +:k ` +:k ' +:k a +:k A +:k k +:k K +:k z +:k Z +:k [ +:k ] +:k < +:k > + +call Foo() | k ` +call Foo() | k ' +call Foo() | k a +call Foo() | k A +call Foo() | k k +call Foo() | k K +call Foo() | k z +call Foo() | k Z +call Foo() | k [ +call Foo() | k ] +call Foo() | k < +call Foo() | k > + +call Foo() | :k ` +call Foo() | :k ' +call Foo() | :k a +call Foo() | :k A +call Foo() | :k k +call Foo() | :k K +call Foo() | :k z +call Foo() | :k Z +call Foo() | :k [ +call Foo() | :k ] +call Foo() | :k < +call Foo() | :k > + + +mark a | echo "FOO" +ka | echo "FOO" +k a | echo "FOO" +mark a " comment +ka " comment +k a " comment + + +function Foo() + k a + ka + mark a + :k a + :ka + :mark a +endfunction + + +" Errors + +mark " +mark ^ +mark . +" TODO: matches as vimFunc +" mark ( +mark ) +mark { +mark } +mark 0 +mark 9 + +k" +k^ +k. +" TODO: matches as vimFunc +" k( +k) +k{ +k} +k0 +k9 + +k " +k ^ +k . +" TODO: matches as vimFunc +" k ( +k ) +k { +k } +k 0 +k 9 + diff --git a/runtime/syntax/testdir/input/vim_ex_substitute.vim b/runtime/syntax/testdir/input/vim_ex_substitute.vim index 7ffd16ddd..983b39d04 100644 --- a/runtime/syntax/testdir/input/vim_ex_substitute.vim +++ b/runtime/syntax/testdir/input/vim_ex_substitute.vim @@ -1,3 +1,6 @@ +" Vim :substitute command + + substitute/foo/bar/& substitute/foo/bar/cegiInp#lr @@ -37,6 +40,7 @@ def Foo() let bar = str->substitute(str, pat, sub, flags) enddef + " various delimiters s!/!//! " comment @@ -111,6 +115,67 @@ s//{string}/ s //{string}/ +" Repeat commands + +s +:s +s 42 +:s 42 +s42 +:s42 + +s cegiInp#lr +:s cegiInp#lr +s cegiInp#lr42 +:s cegiInp#lr42 +s cegiInp#lr 42 +:s cegiInp#lr 42 + +sg +:sg +sgi +:sgi +sg 42 +:sg 42 +sgi 42 +:sgi 42 +sg42 +:sg42 +sgi42 +:sgi42 + +" FIXME +& +&& +~ +~& + +" FIXME +&cegiInp#lr +&&cegiInp#lr +~cegiInp#lr +~&cegiInp#lr + +" 2 and 3 letter repeat-previous variants + +:sc | :sce | :scg | :sci | :scI | :scn | :scp | :scl | +:sgc | :sge | :sg | :sgi | :sgI | :sgn | :sgp | :sgl | :sgr +:sic | :sie | | :si | :siI | :sin | :sip | | :sir +:sIc | :sIe | :sIg | :sIi | :sI | :sIn | :sIp | :sIl | :sIr +:src | | :srg | :sri | :srI | :srn | :srp | :srl | :sr + + +" exceptions +:scr " is `:scriptnames` +:se " is `:set` +:sig " is `:sign` +:sil " is `:silent` +:sn " is `:snext` +:sp " is `:split` +:sl " is `:sleep` +:sre " is `:srewind` + + " Vi compatibility s\/{string}/ diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 1ff7d71d7..eb24216a7 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -34,8 +34,8 @@ syn cluster vimCommentGroup contains=vimTodo,@Spell " regular vim commands {{{2 " GEN_SYN_VIM: vimCommand normal, START_STR='syn keyword vimCommand contained', END_STR='nextgroup=vimBang' syn keyword vimCommand contained abo[veleft] al[l] ar[gs] arga[dd] argd[elete] argdo argded[upe] arge[dit] argg[lobal] argl[ocal] argu[ment] as[cii] b[uffer] bN[ext] ba[ll] bad[d] balt bd[elete] bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bo[tright] bp[revious] br[ewind] brea[k] breaka[dd] breakd[el] breakl[ist] bro[wse] buffers bufd[o] bun[load] bw[ipeout] c[hange] cN[ext] cNf[ile] cabo[ve] cad[dbuffer] cadde[xpr] caddf[ile] caf[ter] cb[uffer] cbe[fore] cbel[ow] cbo[ttom] cc ccl[ose] cd cdo ce[nter] cex[pr] cf[ile] cfd[o] cfir[st] cg[etfile] cgetb[uffer] cgete[xpr] chd[ir] changes che[ckpath] checkt[ime] chi[story] cl[ist] cla[st] clo[se] cle[arjumps] cn[ext] cnew[er] cnf[ile] co[py] col[der] colo[rscheme] com[mand] comc[lear] comp[iler] con[tinue] conf[irm] nextgroup=vimBang -syn keyword vimCommand contained cons[t] cope[n] cp[revious] cpf[ile] cq[uit] cr[ewind] cs[cope] cst[ag] cw[indow] d[elete] delm[arks] deb[ug] defc[ompile] defe[r] delf[unction] di[splay] dif[fupdate] diffg[et] diffo[ff] diffp[atch] diffpu[t] diffs[plit] difft[his] dig[raphs] disa[ssemble] dj[ump] dli[st] dr[op] ds[earch] dsp[lit] e[dit] ea[rlier] em[enu] endfo[r] endt[ry] endw[hile] ene[w] ev[al] ex exi[t] exu[sage] f[ile] files filet[ype] fin[d] fina[lly] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] foldd[oopen] folddoc[losed] foldo[pen] g[lobal] go[to] gu[i] gv[im] h[elp] helpc[lose] helpf[ind] helpt[ags] ha[rdcopy] hi[ghlight] hid[e] his[tory] hor[izontal] ij[ump] il[ist] int[ro] ip[ut] is[earch] isp[lit] j[oin] ju[mps] k kee[pmarks] keepj[umps] keepp[atterns] nextgroup=vimBang -syn keyword vimCommand contained keepa[lt] l[ist] lN[ext] lNf[ile] la[st] lab[ove] lan[guage] lad[dexpr] laddb[uffer] laddf[ile] laf[ter] lat[er] lb[uffer] lbe[fore] lbel[ow] lbo[ttom] lc[d] lch[dir] lcl[ose] lcs[cope] ld[o] le[ft] lefta[bove] lex[pr] leg[acy] lf[ile] lfd[o] lfir[st] lg[etfile] lgetb[uffer] lgete[xpr] lgr[ep] lgrepa[dd] lhi[story] ll lla[st] lli[st] lmak[e] lne[xt] lnew[er] lnf[ile] lo[adview] loc[kmarks] lockv[ar] lol[der] lop[en] lp[revious] lpf[ile] lr[ewind] lt[ag] lw[indow] ls m[ove] ma[rk] marks menut[ranslate] mes[sages] mk[exrc] mks[ession] mksp[ell] mkv[imrc] mkvie[w] mod[e] n[ext] nb[key] nbc[lose] nbs[tart] noa[utocmd] noh[lsearch] nos[wapfile] nu[mber] o[pen] ol[dfiles] on[ly] opt[ions] ow[nsyntax] p[rint] pa[ckadd] packl[oadall] pb[uffer] nextgroup=vimBang +syn keyword vimCommand contained cons[t] cope[n] cp[revious] cpf[ile] cq[uit] cr[ewind] cs[cope] cst[ag] cw[indow] d[elete] delm[arks] deb[ug] defc[ompile] defe[r] delf[unction] di[splay] dif[fupdate] diffg[et] diffo[ff] diffp[atch] diffpu[t] diffs[plit] difft[his] dig[raphs] disa[ssemble] dj[ump] dli[st] dr[op] ds[earch] dsp[lit] e[dit] ea[rlier] em[enu] endfo[r] endt[ry] endw[hile] ene[w] ev[al] ex exi[t] exu[sage] f[ile] files filet[ype] fin[d] fina[lly] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] foldd[oopen] folddoc[losed] foldo[pen] g[lobal] go[to] gu[i] gv[im] h[elp] helpc[lose] helpf[ind] helpt[ags] ha[rdcopy] hi[ghlight] hid[e] his[tory] hor[izontal] ij[ump] il[ist] int[ro] ip[ut] is[earch] isp[lit] j[oin] ju[mps] kee[pmarks] keepj[umps] keepp[atterns] nextgroup=vimBang +syn keyword vimCommand contained keepa[lt] l[ist] lN[ext] lNf[ile] la[st] lab[ove] lan[guage] lad[dexpr] laddb[uffer] laddf[ile] laf[ter] lat[er] lb[uffer] lbe[fore] lbel[ow] lbo[ttom] lc[d] lch[dir] lcl[ose] lcs[cope] ld[o] le[ft] lefta[bove] lex[pr] leg[acy] lf[ile] lfd[o] lfir[st] lg[etfile] lgetb[uffer] lgete[xpr] lgr[ep] lgrepa[dd] lhi[story] ll lla[st] lli[st] lmak[e] lne[xt] lnew[er] lnf[ile] lo[adview] loc[kmarks] lockv[ar] lol[der] lop[en] lp[revious] lpf[ile] lr[ewind] lt[ag] lw[indow] ls m[ove] marks menut[ranslate] mes[sages] mk[exrc] mks[ession] mksp[ell] mkv[imrc] mkvie[w] mod[e] n[ext] nb[key] nbc[lose] nbs[tart] noa[utocmd] noh[lsearch] nos[wapfile] nu[mber] o[pen] ol[dfiles] on[ly] opt[ions] ow[nsyntax] p[rint] pa[ckadd] packl[oadall] pb[uffer] nextgroup=vimBang syn keyword vimCommand contained pc[lose] ped[it] po[p] pp[op] pre[serve] prev[ious] pro[mptfind] promptr[epl] prof[ile] profd[el] ps[earch] pt[ag] ptN[ext] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] q[uit] quita[ll] qa[ll] r[ead] rec[over] red[o] redr[aw] redraws[tatus] redrawt[abline] redrawtabp[anel] reg[isters] res[ize] ret[ab] rew[ind] ri[ght] rightb[elow] ru[ntime] rub[y] rubyd[o] rubyf[ile] rund[o] rv[iminfo] sN[ext] sa[rgument] sal[l] san[dbox] sav[eas] sb[uffer] sbN[ext] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbp[revious] sbr[ewind] scr[iptnames] scripte[ncoding] scriptv[ersion] scs[cope] setf[iletype] sf[ind] sfir[st] sh[ell] sim[alt] sig[n] sil[ent] sla[st] sn[ext] so[urce] sp[lit] spe[llgood] spelld[ump] nextgroup=vimBang syn keyword vimCommand contained spelli[nfo] spellr[epall] spellra[re] spellu[ndo] spellw[rong] spr[evious] sre[wind] st[op] sta[g] star[tinsert] startg[replace] startr[eplace] stopi[nsert] stj[ump] sts[elect] sun[hide] sus[pend] sv[iew] sw[apname] synti[me] sync[bind] smi[le] t tN[ext] ta[g] tags tab tabc[lose] tabd[o] tabe[dit] tabf[ind] tabfir[st] tabm[ove] tabl[ast] tabn[ext] tabnew tabo[nly] tabp[revious] tabN[ext] tabr[ewind] tabs tc[d] tch[dir] te[aroff] ter[minal] tf[irst] tj[ump] tl[ast] tn[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] u[ndo] undoj[oin] undol[ist] unh[ide] unlo[ckvar] uns[ilent] up[date] v[global] ve[rsion] verb[ose] vert[ical] vi[sual] vie[w] vim9[cmd] viu[sage] vne[w] vs[plit] w[rite] wN[ext] wa[ll] wi[nsize] winc[md] wind[o] winp[os] nextgroup=vimBang syn keyword vimCommand contained wn[ext] wp[revious] wq wqa[ll] wu[ndo] wv[iminfo] x[it] xa[ll] xr[estore] y[ank] z dl dell delel deletl deletel dp dep delp delep deletp deletep a i nextgroup=vimBang @@ -286,7 +286,7 @@ syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vi syn case match " All vimCommands are contained by vimIsCommand. {{{2 -syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDelcommand,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimFor,vimFunction,vimFuncFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimThrow,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl +syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDelcommand,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFor,vimFunction,vimFuncFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimThrow,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var syn match vimCmdSep "\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,vimFunc syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1 @@ -901,10 +901,16 @@ syn region vimContinueString contained matchgroup=vimContinueString start=+$'+ s syn cluster vimSubstList contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation syn cluster vimSubstRepList contains=vimSubstSubstr,vimSubstTwoBS,vimNotation syn cluster vimSubstList add=vimCollection -syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)\>" skipwhite nextgroup=vimSubstPat -syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)[_#]\@=" skipwhite nextgroup=vimSubstPat -syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\>" skipwhite nextgroup=vimSubstPat +syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)\>" skipwhite nextgroup=vimSubstPat,vimSubstFlags,vimSubstCount +syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)[_#]\@=" skipwhite nextgroup=vimSubstPat +syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)\%(\d\+\)\@=" skipwhite nextgroup=vimSubstCount +syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\>" skipwhite nextgroup=vimSubstPat,vimSubstFlags,vimSubstCount syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)[_#]\@=" skipwhite nextgroup=vimSubstPat +syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\%(\d\+\)\@=" skipwhite nextgroup=vimSubstCount +syn match vimSubstFlagErr contained "[^< |]\+" contains=vimSubstFlags +" & and # after :s are always pattern delimiters not flags +syn match vimSubstFlags contained "[&cegiIlnpr#]\+" skipwhite nextgroup=vimSubstCount +syn match vimSubstCount contained "\d\+\>" " TODO: Vim9 illegal separators for abbreviated :s form are [-.:], :su\%[...] required " : # is allowed but "not recommended" (see :h pattern-delimiter) syn region vimSubstPat contained matchgroup=vimSubstDelim start="\z([!#$%&'()*+,-./:;<=>?@[\]^_`{}~]\)"rs=s+1 skip="\\\|\\z1" end="\z1"re=e-1,me=e-1 contains=@vimSubstList nextgroup=vimSubstRep4 oneline @@ -914,13 +920,41 @@ syn match vimCollClassErr contained "\[:.\{-\}:\]" syn match vimCollClass contained transparent "\%#=1\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|retu\%[rn]\|tab\|escape\|backspace\):\]" syn match vimSubstSubstr contained "\z\=\d" syn match vimSubstTwoBS contained "\\" -syn match vimSubstFlagErr contained "[^< |]\+" contains=vimSubstFlags -syn match vimSubstFlags contained "[&cegiIlnpr#]\+" + +" TODO: flags, unlike count, must follow immediately +" : distinguish from with Vim9 &var +" syn match vimSubst "^\s*\zs&&\=" skipwhite nextgroup=vimSubstFlags,vimSubstCount +" syn match vimSubst "^\s*\zs\~&\=" skipwhite nextgroup=vimSubstFlags,vimSubstCount +" syn match vimSubst1 contained "&&\=" skipwhite nextgroup=vimSubstFlags,vimSubstCount +" syn match vimSubst1 contained "\~&\=" skipwhite nextgroup=vimSubstFlags,vimSubstCount + +" two and three letter variants (matched as :s + flags, count may follow immediately) +syn match vimSubst "^\s*\zssc[egiIlnp]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst "^\s*\zssg[ceiIlnpr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst "^\s*\zssi[ceInpr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst "^\s*\zssI[ceginplr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst "^\s*\zssr[cgiInplr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags + +syn match vimSubst1 contained "\<sc[egiIlnp]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst1 contained "\<sg[ceiIlnpr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst1 contained "\<si[ceInpr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst1 contained "\<sI[ceginplr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags +syn match vimSubst1 contained "\<sr[cgiInplr]\= \@!" skipwhite nextgroup=vimSubstCount contains=vimSubstFlags " Vi compatibility syn match vimSubstDelim contained "\" syn match vimSubstPat contained "\\ze[/?&]" contains=vimSubstDelim nextgroup=vimSubstRep4 +" Mark: {{{2 +" ==== +VimL syn match vimExMark "\<k\%([a-zA-Z0-9]\>\|[[\]<>'`]\)\@=" nextgroup=@vimMarkArg +VimL syn match vimExMark "\<k\>" skipwhite nextgroup=@vimMarkArg +syn match vimExMark "\<mark\>" skipwhite nextgroup=@vimMarkArg + +syn match vimMarkArg contained "[a-zA-Z]\>\|[[\]<>'`]" skipwhite nextgroup=vimCmdSep,vimComment +syn match vimMarkArgError contained "["^.(){}0-9]" +syn cluster vimMarkArg contains=vimMarkArg,vimMarkArgError + " Marks, Registers, Addresses, Filters: {{{2 syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst1 syn match vimMark "'[[\]{}()<>]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst1 @@ -2002,6 +2036,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimHiCtermError vimError hi def link vimHiKeyError vimError hi def link vimMapModErr vimError + hi def link vimMarkArgError vimError hi def link vimShebangError vimError hi def link vimSortOptionsError Error hi def link vimSubstFlagErr vimError @@ -2071,6 +2106,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimEscape Special hi def link vimExFilter vimCommand hi def link vimExFilterBang vimCommand + hi def link vimExMark vimCommand hi def link vimFBVar vimVar hi def link vimFgBgAttrib vimHiAttrib hi def link vimFuncEcho vimCommand @@ -2222,6 +2258,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimStringEnd vimString hi def link vimStringInterpolationBrace vimEscape hi def link vimSubst1 vimSubst + hi def link vimSubstCount Number hi def link vimSubstDelim Delimiter hi def link vimSubstFlags Special hi def link vimSubstSubstr SpecialChar -- -- 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 vim_dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/vim_dev/E1uLOcw-009P4D-JI%40256bit.org.