]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(vim): Update base-syntax, improve :command highlighting
authorDoug Kearns <dougkearns@gmail.com>
Tue, 8 Apr 2025 18:50:00 +0000 (20:50 +0200)
committerChristian Brabandt <cb@256bit.org>
Tue, 8 Apr 2025 18:50:00 +0000 (20:50 +0200)
- Match multiline :command definitions.
- Match custom completion funcref var names.

fixes: #17001
closes: #17067

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
13 files changed:
runtime/syntax/generator/gen_syntax_vim.vim
runtime/syntax/generator/vim.vim.base
runtime/syntax/testdir/dumps/vim_ex_command_00.dump
runtime/syntax/testdir/dumps/vim_ex_command_01.dump
runtime/syntax/testdir/dumps/vim_ex_command_02.dump
runtime/syntax/testdir/dumps/vim_ex_command_03.dump
runtime/syntax/testdir/dumps/vim_ex_command_04.dump
runtime/syntax/testdir/dumps/vim_ex_command_05.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/vim_ex_command_06.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/vim_ex_command_07.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/vim_ex_command_08.dump [new file with mode: 0644]
runtime/syntax/testdir/input/vim_ex_command.vim
runtime/syntax/vim.vim

index 19e5491ebd6b69520b6960f16db31a912cf81c7e..b8580790abc7ea4c3afab703cd284345ec097ff1 100644 (file)
@@ -1,7 +1,7 @@
 " Vim syntax file generator
 " Language: Vim script
 " Maintainer: Hirohito Higashi (h_east)
-" Last Change: 2025 Mar 09
+" Last Change: 2025 Apr 06
 
 let s:keepcpo= &cpo
 set cpo&vim
@@ -734,9 +734,9 @@ function s:update_syntax_vim_file(vim_info)
                let lnum = s:search_and_check('vimVarName', base_fname, str_info)
                let lnum = s:append_syn_any(lnum, str_info, li)
 
-               " vimUserAttrbCmplt
+               " vimUserAttrComplete
                let li = a:vim_info.compl_name
-               let lnum = s:search_and_check('vimUserCmdAttrCmplt', base_fname, str_info)
+               let lnum = s:search_and_check('vimUserCmdAttrComplete', base_fname, str_info)
                let lnum = s:append_syn_any(lnum, str_info, li)
 
                " vimUserAttrbAddr
index 83a61c9b7e7b3d17953d6cf8fb65cc66ea609ae6..d13d1f09cc89740dd8a3f7ed264467c716e6505b 100644 (file)
@@ -2,7 +2,7 @@
 " Language:       Vim script
 " Maintainer:     Hirohito Higashi <h.east.727 ATMARK gmail.com>
 "         Doug Kearns <dougkearns@gmail.com>
-" Last Change:    2025 Apr 05
+" Last Change:    2025 Apr 06
 " Former Maintainer: Charles E. Campbell
 
 " DO NOT CHANGE DIRECTLY.
@@ -614,22 +614,30 @@ syn match vimSpecFileMod  "\(:[phtre]\)\+"        contained
 " User-Specified Commands: {{{2
 " =======================
 syn cluster    vimUserCmdList  contains=@vimCmdList,vimCmplxRepeat,@vimComment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange
-syn keyword    vimUserCmdKey   contained       com[mand]
-syn match      vimUserCmdName  contained       "\<\u[[:alnum:]]*\>"    skipwhite nextgroup=vimUserCmdBlock
-syn match      vimUserCmd              "\<com\%[mand]\>!\=.*$" contains=vimUserCmdKey,vimBang,vimUserCmdAttr,vimUserCmdAttrError,vimUserCmdName,@vimUserCmdList,vimComFilter
-syn match      vimUserCmdAttrError     contained       "-\a\+\ze\%(\s\|=\)"
-syn match      vimUserCmdAttr  contained       "-addr="                contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrAddr
-syn match      vimUserCmdAttr  contained       "-bang\>"               contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-bar\>"                contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-buffer\>"             contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-complete="            contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrCmplt,vimUserCmdError
-syn match      vimUserCmdAttr  contained       "-count\>"              contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-count="               contains=vimUserCmdAttrKey nextgroup=vimNumber
-syn match      vimUserCmdAttr  contained       "-keepscript\>"         contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-nargs="               contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrNargs
-syn match      vimUserCmdAttr  contained       "-range\>"              contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-range="               contains=vimUserCmdAttrKey nextgroup=vimNumber,vimUserCmdAttrRange
-syn match      vimUserCmdAttr  contained       "-register\>"           contains=vimUserCmdAttrKey
+
+syn match      vimUserCmd      "\<com\%[mand]\>!\="            skipwhite        nextgroup=vimUserCmdAttrs,vimUserCmdName contains=vimBang
+syn match      vimUserCmd      +\<com\%[mand]\>!\=\ze\s*\n\s*\%(\\\|["#]\\ \)+ skipwhite skipnl nextgroup=vimUserCmdAttrs,vimUserCmdName contains=vimBang
+
+syn region     vimUserCmdAttrs     contained
+      \ start="-\l"
+      \ start=+^\s*\%(\\\|["#]\\ \)+
+      \ end="\ze\s\u"
+      \ skipwhite nextgroup=vimUserCmdName
+      \ contains=@vimContinue,vimUserCmdAttr,vimUserCmdAttrError
+      \ transparent
+syn match      vimUserCmdAttrError contained   "-\a\+\ze\%(\s\|=\)"
+syn match      vimUserCmdAttr    contained     "-addr="                contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrAddr
+syn match      vimUserCmdAttr    contained     "-bang\>"               contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-bar\>"                contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-buffer\>"             contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-complete="            contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrComplete,vimUserCmdError
+syn match      vimUserCmdAttr    contained     "-count\>"              contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-count="               contains=vimUserCmdAttrKey nextgroup=vimNumber
+syn match      vimUserCmdAttr    contained     "-keepscript\>"         contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-nargs="               contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrNargs
+syn match      vimUserCmdAttr    contained     "-range\>"              contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-range="               contains=vimUserCmdAttrKey nextgroup=vimNumber,vimUserCmdAttrRange
+syn match      vimUserCmdAttr    contained     "-register\>"           contains=vimUserCmdAttrKey
 
 syn match      vimUserCmdAttrNargs     contained       "[01*?+]"
 syn match      vimUserCmdAttrRange     contained       "%"
@@ -640,17 +648,34 @@ endif
 
 syn case ignore
 syn keyword    vimUserCmdAttrKey   contained   a[ddr] ban[g] bar bu[ffer] com[plete] cou[nt] k[eepscript] n[args] ra[nge] re[gister]
-" GEN_SYN_VIM: vimUserCmdAttrCmplt, START_STR='syn keyword vimUserCmdAttrCmplt contained', END_STR=''
-syn keyword    vimUserCmdAttrCmplt     contained       custom customlist nextgroup=vimUserCmdAttrCmpltFunc,vimUserCmdError
-syn match      vimUserCmdAttrCmpltFunc contained       ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError
+
+" GEN_SYN_VIM: vimUserCmdAttrComplete, START_STR='syn keyword vimUserCmdAttrComplete contained', END_STR=''
+syn keyword vimUserCmdAttrComplete contained arglist augroup behave breakpoint buffer color command compiler cscope diff_buffer dir dir_in_path environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages option packadd runtime scriptnames shellcmd shellcmdline sign syntax syntime tag tag_listfiles user var
+syn keyword    vimUserCmdAttrComplete  contained       custom customlist nextgroup=vimUserCmdAttrCompleteFunc,vimUserCmdError
+syn match      vimUserCmdAttrCompleteFunc      contained       ",\%([bwglstav]:\|<[sS][iI][dD]>\)\=\h\w*\%([.#]\h\w*\)*"hs=s+1 nextgroup=vimUserCmdError contains=vimVarScope,vimFuncSID
+
 " GEN_SYN_VIM: vimUserCmdAttrAddr, START_STR='syn keyword vimUserCmdAttrAddr contained', END_STR=''
-syn match      vimUserCmdAttrAddr      contained       "?"
+syn keyword vimUserCmdAttrAddr contained arguments arg buffers buf lines line loaded_buffers load other quickfix qf tabs tab windows win
+syn match      vimUserCmdAttrAddr     contained        "?"
 syn case match
 
-syn region     vimUserCmdBlock contained       matchgroup=vimSep start="{" end="^\s*\zs}" contains=@vimDefBodyList
+syn match      vimUserCmdName      contained   "\<\u[[:alnum:]]*\>"            skipwhite        nextgroup=vimUserCmdBlock,vimUserCmdReplacement
+syn match      vimUserCmdName      contained   +\<\u[[:alnum:]]*\>\ze\s*\n\s*\%(\\\|["#]\\ \)+ skipwhite skipnl nextgroup=vimUserCmdBlock,vimUserCmdReplacement
+syn region     vimUserCmdReplacement contained
+      \ start="\S"
+      \ start=+^\s*\%(\\\|["#]\\ \)+
+      \ skip=+\n\s*\%(\\\|["#]\\ \)+
+      \ end="$"
+      \ contains=@vimContinue,@vimUserCmdList,vimComFilter
+syn region     vimUserCmdBlock     contained
+      \ matchgroup=vimSep
+      \ start="{"
+      \ end="^\s*\zs}"
+      \ contains=@vimDefBodyList
 
-syn match      vimDelcommand           "\<delc\%[ommand]\>" skipwhite nextgroup=vimDelcommandAttr
-syn match      vimDelcommandAttr       contained       "-buffer\>"
+syn match      vimDelcommand           "\<delc\%[ommand]\>"    skipwhite nextgroup=vimDelcommandAttr,vimDelcommandName
+syn match      vimDelcommandAttr       contained       "-buffer\>"             skipwhite nextgroup=vimDelcommandName
+syn match      vimDelcommandName       contained       "\<\u[[:alnum:]]*\>"
 
 " Lower Priority Comments: after some vim commands... {{{2
 " =======================
@@ -1729,8 +1754,10 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimUnlet  vimCommand
  hi def link vimUnletBang      vimBang
  hi def link vimUnmap  vimMap
+ hi def link vimUserCmd        vimCommand
  hi def link vimUserCmdAttrAddr        vimSpecial
- hi def link vimUserCmdAttrCmplt       vimSpecial
+ hi def link vimUserCmdAttrComplete    vimSpecial
+ hi def link vimUserCmdAttrCompleteFunc        vimVar
  hi def link vimUserCmdAttrNargs       vimSpecial
  hi def link vimUserCmdAttrRange       vimSpecial
  hi def link vimUserCmdAttrKey vimUserCmdAttr
index b9326415afb26035618ac99e5e121bdf303b933c..e782ad02ba6af714fbd962e6a8f0fb1fef5c5d89 100644 (file)
@@ -1,20 +1,20 @@
 >"+0#0000e05#ffffff0| |V|i|m| |:|c|o|m@1|a|n|d|,| |:|d|e|l|c|o|m@1|a|n|d| |a|n|d| |:|c|o|m|c|l|e|a|r| |c|o|m@1|a|n|d|s| +0#0000000&@24
+|"+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |v|i|m|U|s|e|r|C|m|d|N|a|m|e| |T|o|d|o| +0#0000000&@23
+|"+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |v|i|m|D|e|l|c|o|m@1|a|n|d|N|a|m|e| |T|o|d|o| +0#0000000&@20
 @75
 @75
 |"+0#0000e05&| |l|i|s|t| +0#0000000&@68
 @75
 |c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&@67
-|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|F| @65
+|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&|F+0#0000001#ffff4012| +0#0000000#ffffff0@65
+@75
 @75
 |"+0#0000e05&| |d|e|f|i|n|e| +0#0000000&@66
 @75
-|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&@1|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@51
-|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@51
-|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|r|"| +0#0000000&@38
+|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&@1|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@51
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@51
+@75
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|r|"| +0#0000000&@38
 @75
-|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@60
-@2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@62
-@2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|r|"| +0#0000000&@62
-@2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|z|"| +0#0000000&@62
-|}+0#e000e06&| +0#0000000&@73
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|{+0#e000e06&| +0#0000000&@60
 @57|1|,|1| @10|T|o|p| 
index 347a4f79859f010f8252d0b8ecc76ba7e9b4545b..a653a4d61d1622df1bfc97070e4a7f3fd7e298a6 100644 (file)
@@ -1,20 +1,20 @@
-| +0&#ffffff0@74
-|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |{+0#e000e06&| +0#0000000&@60
+|c+0#af5f00255#ffffff0|o|m@1|a|n|d| +0#0000000&@1|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@51
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@51
+@75
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|r|"| +0#0000000&@38
+@75
+>c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|{+0#e000e06&| +0#0000000&@60
 @2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@62
 @2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|r|"| +0#0000000&@62
 @2|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|z|"| +0#0000000&@62
->}+0#e000e06&| +0#0000000&@73
+|}+0#e000e06&| +0#0000000&@73
 @75
 |c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|a|d@1|r|=|a+0#00e0003&|r|g|u|m|e|n|t|s| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#e000e06&|b|a|r| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|a+0#00e0003&|r|g|l|i|s|t| +0#0000000&|-+0#e000e06&|c|o|u|n|t|=|1+0#e000002&| +0#0000000&|-+0#e000e06&|k|e@1
-|p|s|c|r|i|p|t| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|-+0#e000e06&|r|a|n|g|e|=|%+0#00e0003&| +0#0000000&|-+0#e000e06&|r|e|g|i|s|t|e|r| +0#0000000&|F|o@1| @35
-@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@56
+|p|s|c|r|i|p|t| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|-+0#e000e06&|r|a|n|g|e|=|%+0#00e0003&| +0#0000000&|-+0#e000e06&|r|e|g|i|s|t|e|r| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@24
 @75
-|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|c+0#00e0003&|u|s|t|o|m|,+0#0000000&|C|o|m|p|l|e|t|e|r|1| |F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@23
-|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|c+0#00e0003&|u|s|t|o|m|l|i|s|t|,+0#0000000&|C|o|m|p|l|e|t|e|r|2| |F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@19
-@75
-|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@60
-@2|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1| |(|d|e|f|i|n|e|d| |i|n| |:|f|u|n|c|t|i|o|n|)|"| +0#0000000&@26
-|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|a|d@1|r|=|a+0#00e0003&|r|g|u|m|e|n|t|s| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#e000e06&|b|a|r| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|a+0#00e0003&|r|g|l|i|s|t| +0#0000000&|-+0#e000e06&|c|o|u|n|t|=|1+0#e000002&| +0#0000000&|-+0#e000e06&|k|e@1
+|p|s|c|r|i|p|t| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|-+0#e000e06&|r|a|n|g|e|=|%+0#00e0003&| +0#0000000&|-+0#e000e06&|r|e|g|i|s|t|e|r| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@35
+@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@56
 @75
-|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|2|(+0#e000e06&|)| +0#0000000&@64
-@57|1|9|,|1| @9|2|3|%| 
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|a|d@1|r|=|a+0#00e0003&|r|g|u|m|e|n|t|s| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#e000e06&|b|a|r| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|a+0#00e0003&|r|g|l|i|s|t| +0#0000000&|-+0#e000e06&|c|o|u|n|t|=|1+0#e000002&| +0#0000000&|-+0#e000e06&|@+0#4040ff13&@2
+| +0#0000000&@56|1|9|,|1| @9|1|0|%| 
index 00a82981ffcfc08290b04470173ea9c5cf7b2e8c..9909f2f4dae8323b6b8ff369f1b6a488b9e0f6c9 100644 (file)
@@ -1,20 +1,20 @@
-|d+0#af5f00255#ffffff0|e|f| +0#0000000&|F|o@1|2|(+0#e000e06&|)| +0#0000000&@64
-@2|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1| |(|d|e|f|i|n|e|d| |i|n| |:|d|e|f|)|"| +0#0000000&@31
-|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
+|c+0#af5f00255#ffffff0|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|a|d@1|r|=|a+0#00e0003&|r|g|u|m|e|n|t|s| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#e000e06&|b|a|r| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|a+0#00e0003&|r|g|l|i|s|t| +0#0000000&|-+0#e000e06&|c|o|u|n|t|=|1+0#e000002&| +0#0000000&|-+0#e000e06&|k|e@1
+|p|s|c|r|i|p|t| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|-+0#e000e06&|r|a|n|g|e|=|%+0#00e0003&| +0#0000000&|-+0#e000e06&|r|e|g|i|s|t|e|r| +0#0000000&@39
+@6|\+0#e000e06&| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@63
+@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@56
 @75
-|"+0#0000e05&| |m|u|l|t|i|l|i|n|e| |d|e|f|i|n|e| +0#0000000&@56
-> @74
-|"+0#0000e05&| |c|o|m@1|a|n|d|!| +0#0000000&@64
-|"+0#0000e05&| @6|\| |-|a|d@1|r|=|l|i|n|e|s| +0#0000000&@53
-|"+0#0000e05&| @6|\| |-|b|a|n|g| +0#0000000&@59
-|"+0#0000e05&| @6|\| |-|b|a|r| +0#0000000&@60
-|"+0#0000e05&| @6|\| |-|b|u|f@1|e|r| +0#0000000&@57
-|"+0#0000e05&| @6|\| |-|c|o|m|p|l|e|t|e|=|b|u|f@1|e|r| +0#0000000&@48
-|"+0#0000e05&| @6|\| |-|c|o|u|n|t| +0#0000000&@58
-|"+0#0000e05&| @6|\| |-|n|a|r|g|s|=|*| +0#0000000&@56
-|"+0#0000e05&| @6|\| |-|r|a|n|g|e| +0#0000000&@58
-|"+0#0000e05&| @6|\| |-|r|e|g|i|s|t|e|r| +0#0000000&@55
-|"+0#0000e05&| @6|\| |-|k|e@1|p|s|c|r|i|p|t| +0#0000000&@53
-|"+0#0000e05&| @6|\| |F|o@1| | +0#0000000&@60
-|"+0#0000e05&| @6|\| |e|c|h|o| |"+0#e000002&|F|O@1|"| +0#0000000&@54
-@57|3|6|,|0|-|1| @7|5|4|%| 
+>c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|a|d@1|r|=|a+0#00e0003&|r|g|u|m|e|n|t|s| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#e000e06&|b|a|r| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|a+0#00e0003&|r|g|l|i|s|t| +0#0000000&|-+0#e000e06&|c|o|u|n|t|=|1+0#e000002&| +0#0000000&|-+0#e000e06&|k|e@1
+|p|s|c|r|i|p|t| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|-+0#e000e06&|r|a|n|g|e|=|%+0#00e0003&| +0#0000000&|-+0#e000e06&|r|e|g|i|s|t|e|r| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@35
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@56
+@75
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|a|d@1|r|=|a+0#00e0003&|r|g|u|m|e|n|t|s| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#e000e06&|b|a|r| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|a+0#00e0003&|r|g|l|i|s|t| +0#0000000&|-+0#e000e06&|c|o|u|n|t|=|1+0#e000002&| +0#0000000&|-+0#e000e06&|k|e@1
+|p|s|c|r|i|p|t| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|-+0#e000e06&|r|a|n|g|e|=|%+0#00e0003&| +0#0000000&|-+0#e000e06&|r|e|g|i|s|t|e|r| +0#0000000&@39
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@63
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@56
+@75
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|c+0#00e0003&|u|s|t|o|m|,+0#0000000&|s+0#00e0e07&|:|C|o|m|p|l|e|t|e|r|1| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@21
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|c+0#00e0003&|u|s|t|o|m|l|i|s|t|,+0#0000000&|s+0#00e0e07&|:|C|o|m|p|l|e|t|e|r|2| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@17
+@57|3|4|,|1| @9|2@1|%| 
index 0fe7a38d9f5112bd2bf5383c4d47c0d646d24fb4..c035fb6d61c65b2024b75b62a415720091accfbf 100644 (file)
@@ -1,20 +1,20 @@
-|"+0#0000e05#ffffff0| @6|\| |e|c|h|o| |"+0#e000002&|F|O@1|"| +0#0000000&@54
+|c+0#af5f00255#ffffff0|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|c+0#00e0003&|u|s|t|o|m|l|i|s|t|,+0#0000000&|s+0#00e0e07&|:|C|o|m|p|l|e|t|e|r|2| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@17
 @75
-|"+0#0000e05&| |e|r@1|o|r|s| +0#0000000&@66
-@75
-|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#ffffff16#ff404010|b|a|d|a|t@1|r|=+0#af5f00255#ffffff0|a+0#00e0e07&|r|g|u|m|e|n|t|s| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#ffffff16#ff404010|b|a|d|a|t@1|r| +0#0000000#ffffff0|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|F|o@1| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@8
+|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@60
+@2|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1| |(|d|e|f|i|n|e|d| |i|n| |:|f|u|n|c|t|i|o|n|)|"| +0#0000000&@26
+|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63
 > @74
-|"+0#0000e05&| |d|e|l|e|t|e| +0#0000000&@66
-@75
-|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|F|o@1| @60
-|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|F|o@1| @52
+|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|2|(+0#e000e06&|)| +0#0000000&@64
+@2|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1| |(|d|e|f|i|n|e|d| |i|n| |:|d|e|f|)|"| +0#0000000&@31
+|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
 @75
-|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|F|o@1| ||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@47
-|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|F|o@1| ||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@39
 @75
-|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|F|o@1| |"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@50
-|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|F|o@1| |"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@42
+|"+0#0000e05&| |m|u|l|t|i|l|i|n|e| |d|e|f|i|n|e| +0#0000000&@56
 @75
-|c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&@66
-|c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56
-@57|5|4|,|0|-|1| @7|8|7|%| 
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|a|d@1|r|=|l+0#00e0003&|i|n|e|s| +0#0000000&@54
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|b|a|r| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|b+0#00e0003&|u|f@1|e|r| +0#0000000&@50
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|c|o|u|n|t| +0#0000000&@60
+@57|5|0|,|0|-|1| @7|3|5|%| 
index 9700fc348855cae1500d7a18674b91678ce74571..a263a186a71dc4585c66ca2c5fbd01a7c96c7433 100644 (file)
@@ -1,20 +1,20 @@
-|c+0#af5f00255#ffffff0|o|m|c|l|e|a|r| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56
-|c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|.@2|"| +0#0000000&@53
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|-+0#e000e06&|c|o|u|n|t| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|r|a|n|g|e| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|r|e|g|i|s|t|e|r| +0#0000000&@57
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|k|e@1|p|s|c|r|i|p|t| +0#0000000&@55
+@6>\+0#e000e06&| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@63
+@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| @54
+@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|r|"| +0#0000000&@56
 @75
-@75
-|"+0#0000e05&| |I|s@1|u|e| |#|1|4|1|3|5| +0#0000000&@60
-> @74
-|c+0#af5f00255&|o|m| +0#0000000&|F|o@1| |c+0#af5f00255&|a|l@1| +0#0000000&|s+0#00e0e07&|y|s|t|e|m|(+0#e000e06&|'+0#e000002&|l|s|'|)+0#e000e06&| +0#0000000&@49
-@75
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|7|2|,|0|-|1| @7|B|o|t| 
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&@66
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|a|d@1|r|=|l+0#00e0003&|i|n|e|s| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&@61
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|b|a|r| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|b+0#00e0003&|u|f@1|e|r| +0#0000000&@50
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|c|o|u|n|t| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|r|a|n|g|e| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|r|e|g|i|s|t|e|r| +0#0000000&@57
+@57|6|8|,|7| @9|4|9|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_command_05.dump b/runtime/syntax/testdir/dumps/vim_ex_command_05.dump
new file mode 100644 (file)
index 0000000..7b78054
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|-+0#e000e06&|r|e|g|i|s|t|e|r| +0#0000000&@57
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|k|e@1|p|s|c|r|i|p|t| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@63
+@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| @54
+@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|r|"| +0#0000000&@56
+> @74
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&@66
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|a|d@1|r|=|l+0#00e0003&|i|n|e|s| +0#0000000&@55
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&@61
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|b|a|r| +0#0000000&@62
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&@59
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|b+0#00e0003&|u|f@1|e|r| +0#0000000&@50
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|c|o|u|n|t| +0#0000000&@60
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@57|8|6|,|0|-|1| @7|6|4|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_command_06.dump b/runtime/syntax/testdir/dumps/vim_ex_command_06.dump
new file mode 100644 (file)
index 0000000..4e9926f
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&@58
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|r|a|n|g|e| +0#0000000&@60
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6>\+0#e000e06&| +0#0000000&|-+0#e000e06&|r|e|g|i|s|t|e|r| +0#0000000&@57
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|-+0#e000e06&|k|e@1|p|s|c|r|i|p|t| +0#0000000&@55
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@63
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| @54
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|B|a|r|"| +0#0000000&@56
+@75
+@75
+|"+0#0000e05&| |e|r@1|o|r|s| +0#0000000&@66
+@75
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#ffffff16#ff404010|b|a|d|a|t@1|r|=+0#0000000#ffffff0|a|r|g|u|m|e|n|t|s| |-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#ffffff16#ff404010|b|a|d|a|t@1|r| +0#0000000#ffffff0|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@8
+@57|1|0|4|,|7| @8|7|8|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_command_07.dump b/runtime/syntax/testdir/dumps/vim_ex_command_07.dump
new file mode 100644 (file)
index 0000000..3d51e30
--- /dev/null
@@ -0,0 +1,20 @@
+|c+0#af5f00255#ffffff0|o|m@1|a|n|d|!| +0#0000000&|-+0#ffffff16#ff404010|b|a|d|a|t@1|r|=+0#0000000#ffffff0|a|r|g|u|m|e|n|t|s| |-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#ffffff16#ff404010|b|a|d|a|t@1|r| +0#0000000#ffffff0|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@8
+@75
+@75
+|"+0#0000e05&| |d|e|l|e|t|e| +0#0000000&@66
+@75
+>d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@60
+|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0@52
+@75
+|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@47
+|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@39
+@75
+|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@50
+|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&|-+0#e000e06&|b|u|f@1|e|r| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@42
+@75
+|c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&@66
+|c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56
+|c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@53
+@75
+@75
+@57|1|2@1|,|1| @8|9|2|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_command_08.dump b/runtime/syntax/testdir/dumps/vim_ex_command_08.dump
new file mode 100644 (file)
index 0000000..19a6c36
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|"+0#0000e05&| |I|s@1|u|e| |#|1|4|1|3|5| |(|v|i|m|.|v|i|m| |s|y|n|t|a|x| |h|i|g|h|l|i|g|h|t|i|n|g| |b|r|o|k|e|n| |w|r|t| |s|y|s|t|e|m|(|)@1| +0#0000000&@10
+@75
+|c+0#af5f00255&|o|m| +0#0000000&|F+0#0000001#ffff4012|o@1| +0#0000000#ffffff0|c+0#af5f00255&|a|l@1| +0#0000000&|s+0#00e0e07&|y|s|t|e|m|(+0#e000e06&|'+0#e000002&|l|s|'|)+0#e000e06&| +0#0000000&@49
+@75
+> @74
+|"+0#0000e05&| |I|s@1|u|e| |#|1|7|0@1|1| |(|W|r|o|n|g| |v|i|m|U|s|e|r|C|m|d|A|t@1|r|E|r@1|o|r| |h|i|g|h|l|i|g|h|t|i|n|g| |i|n| |v|i|m|.|v|i|m|)| +0#0000000&@8
+@75
+|c+0#af5f00255&|o|m@1|a|n|d|!| +0#0000000&|-+0#e000e06&|b|a|n|g| +0#0000000&|-+0#e000e06&|n|a|r|g|s|=|*+0#00e0003&| +0#0000000&|-+0#e000e06&|c|o|m|p|l|e|t|e|=|f+0#00e0003&|i|l|e| +0#0000000&|M+0#0000001#ffff4012|a|k|e| +0#0000000#ffffff0|A|s|y|n|c|R|u|n| |-+0#af5f00255&|p+0#00e0e07&|r|o|g|r|a|m|=+0#af5f00255&|m+0#00e0e07&|a|k|e| +0#0000000&|@| |<+0#e000e06&|a|r|g|s|>
+| +0#0000000&@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|4|0|,|0|-|1| @6|B|o|t| 
index 0873648cb6736e5ac5d5628f881d89113d559126..4679b08e9c72bad122206dab53d85ac1b33b5d1e 100644 (file)
@@ -1,4 +1,6 @@
 " Vim :command, :delcommand and :comclear commands
+" VIM_TEST_SETUP highlight link vimUserCmdName Todo
+" VIM_TEST_SETUP highlight link vimDelcommandName Todo
 
 
 " list
@@ -6,10 +8,12 @@
 command
 command F
 
+
 " define
 
 command  Foo echo "Foo"
 command! Foo echo "Foo"
+
 command! Foo echo "Foo" | echo "Bar"
 
 command! Foo {
@@ -18,11 +22,27 @@ command! Foo {
   echo "Baz"
 }
 
+command! -addr=arguments -bang -bar -buffer -complete=arglist -count=1 -keepscript -nargs=* -range=% -register Foo echo "Foo"
+
+command! -addr=arguments -bang -bar -buffer -complete=arglist -count=1 -keepscript -nargs=* -range=% -register Foo
+      \ echo "Foo"
+
+command! -addr=arguments -bang -bar -buffer -complete=arglist -count=1 -keepscript -nargs=* -range=% -register
+      \ Foo
+      \ echo "Foo"
+
 command! -addr=arguments -bang -bar -buffer -complete=arglist -count=1 -keepscript -nargs=* -range=% -register Foo
+      "\ comment
       \ echo "Foo"
 
-command! -complete=custom,Completer1 Foo echo "Foo"
-command! -complete=customlist,Completer2 Foo echo "Foo"
+command! -addr=arguments -bang -bar -buffer -complete=arglist -count=1 -keepscript -nargs=* -range=% -register
+      "\ comment
+      \ Foo
+      "\ comment
+      \ echo "Foo"
+
+command! -complete=custom,s:Completer1 Foo echo "Foo"
+command! -complete=customlist,s:Completer2 Foo echo "Foo"
 
 function Foo()
   command! Foo echo "Foo (defined in :function)"
@@ -32,43 +52,93 @@ def Foo2()
   command! Foo echo "Foo (defined in :def)"
 enddef
 
+
 " multiline define
 
-" command!
-"       \ -addr=lines
-"       \ -bang
-"       \ -bar
-"       \ -buffer
-"       \ -complete=buffer
-"       \ -count
-"       \ -nargs=*
-"       \ -range
-"       \ -register
-"       \ -keepscript
-"       \ Foo 
-"       \ echo "FOO"
+command! -addr=lines
+      \ -bang
+      \ -bar
+      \ -buffer
+      \ -complete=buffer
+      \ -count
+      \ -nargs=*
+      \ -range
+      \ -register
+      \ -keepscript
+      \ Foo
+      \ echo "Foo" |
+      \ echo "Bar"
+
+command!
+      \ -addr=lines
+      \ -bang
+      \ -bar
+      \ -buffer
+      \ -complete=buffer
+      \ -count
+      \ -nargs=*
+      \ -range
+      \ -register
+      \ -keepscript
+      \ Foo
+      \ echo "Foo" |
+      \ echo "Bar"
+
+command!
+      "\ comment
+      \ -addr=lines
+      \ -bang
+      "\ comment
+      "\ comment
+      \ -bar
+      \ -buffer
+      "\ comment
+      \ -complete=buffer
+      "\ comment
+      \ -count
+      "\ comment
+      \ -nargs=*
+      "\ comment
+      \ -range
+      "\ comment
+      \ -register
+      "\ comment
+      \ -keepscript
+      "\ comment
+      \ Foo
+      "\ comment
+      \ echo "Foo" |
+      "\ comment
+      \ echo "Bar"
+
 
 " errors
 
 command! -badattr=arguments -bang -badattr -nargs=* Foo echo "Foo"
 
+
 " delete
 
 delcommand Foo
 delcommand -buffer Foo
 
-delcommand Foo | echo "..."
-delcommand -buffer Foo | echo "..."
+delcommand Foo | echo "Foo"
+delcommand -buffer Foo | echo "Foo"
 
 delcommand Foo " comment
 delcommand -buffer Foo " comment
 
 comclear
 comclear " comment
-comclear | echo "..."
+comclear | echo "Foo"
 
 
-" Issue #14135
+" Issue #14135 (vim.vim syntax highlighting broken wrt system())
 
 com Foo call system('ls')
 
+
+" Issue #17001 (Wrong vimUserCmdAttrError highlighting in vim.vim)
+
+command! -bang -nargs=* -complete=file Make AsyncRun -program=make @ <args>
+
index dcdb6bc5421528e0b5c8bf3f3f879ddea1562a6f..07c325011a9d84f5c495690dd0018ecbb47fdce9 100644 (file)
@@ -664,22 +664,30 @@ syn match vimSpecFileMod  "\(:[phtre]\)\+"        contained
 " User-Specified Commands: {{{2
 " =======================
 syn cluster    vimUserCmdList  contains=@vimCmdList,vimCmplxRepeat,@vimComment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange
-syn keyword    vimUserCmdKey   contained       com[mand]
-syn match      vimUserCmdName  contained       "\<\u[[:alnum:]]*\>"    skipwhite nextgroup=vimUserCmdBlock
-syn match      vimUserCmd              "\<com\%[mand]\>!\=.*$" contains=vimUserCmdKey,vimBang,vimUserCmdAttr,vimUserCmdAttrError,vimUserCmdName,@vimUserCmdList,vimComFilter
-syn match      vimUserCmdAttrError     contained       "-\a\+\ze\%(\s\|=\)"
-syn match      vimUserCmdAttr  contained       "-addr="                contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrAddr
-syn match      vimUserCmdAttr  contained       "-bang\>"               contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-bar\>"                contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-buffer\>"             contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-complete="            contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrCmplt,vimUserCmdError
-syn match      vimUserCmdAttr  contained       "-count\>"              contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-count="               contains=vimUserCmdAttrKey nextgroup=vimNumber
-syn match      vimUserCmdAttr  contained       "-keepscript\>"         contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-nargs="               contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrNargs
-syn match      vimUserCmdAttr  contained       "-range\>"              contains=vimUserCmdAttrKey
-syn match      vimUserCmdAttr  contained       "-range="               contains=vimUserCmdAttrKey nextgroup=vimNumber,vimUserCmdAttrRange
-syn match      vimUserCmdAttr  contained       "-register\>"           contains=vimUserCmdAttrKey
+
+syn match      vimUserCmd      "\<com\%[mand]\>!\="            skipwhite        nextgroup=vimUserCmdAttrs,vimUserCmdName contains=vimBang
+syn match      vimUserCmd      +\<com\%[mand]\>!\=\ze\s*\n\s*\%(\\\|["#]\\ \)+ skipwhite skipnl nextgroup=vimUserCmdAttrs,vimUserCmdName contains=vimBang
+
+syn region     vimUserCmdAttrs     contained
+      \ start="-\l"
+      \ start=+^\s*\%(\\\|["#]\\ \)+
+      \ end="\ze\s\u"
+      \ skipwhite nextgroup=vimUserCmdName
+      \ contains=@vimContinue,vimUserCmdAttr,vimUserCmdAttrError
+      \ transparent
+syn match      vimUserCmdAttrError contained   "-\a\+\ze\%(\s\|=\)"
+syn match      vimUserCmdAttr    contained     "-addr="                contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrAddr
+syn match      vimUserCmdAttr    contained     "-bang\>"               contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-bar\>"                contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-buffer\>"             contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-complete="            contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrComplete,vimUserCmdError
+syn match      vimUserCmdAttr    contained     "-count\>"              contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-count="               contains=vimUserCmdAttrKey nextgroup=vimNumber
+syn match      vimUserCmdAttr    contained     "-keepscript\>"         contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-nargs="               contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrNargs
+syn match      vimUserCmdAttr    contained     "-range\>"              contains=vimUserCmdAttrKey
+syn match      vimUserCmdAttr    contained     "-range="               contains=vimUserCmdAttrKey nextgroup=vimNumber,vimUserCmdAttrRange
+syn match      vimUserCmdAttr    contained     "-register\>"           contains=vimUserCmdAttrKey
 
 syn match      vimUserCmdAttrNargs     contained       "[01*?+]"
 syn match      vimUserCmdAttrRange     contained       "%"
@@ -690,19 +698,36 @@ endif
 
 syn case ignore
 syn keyword    vimUserCmdAttrKey   contained   a[ddr] ban[g] bar bu[ffer] com[plete] cou[nt] k[eepscript] n[args] ra[nge] re[gister]
-" GEN_SYN_VIM: vimUserCmdAttrCmplt, START_STR='syn keyword vimUserCmdAttrCmplt contained', END_STR=''
-syn keyword vimUserCmdAttrCmplt contained arglist augroup behave breakpoint buffer color command compiler cscope diff_buffer dir dir_in_path environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages option packadd runtime scriptnames shellcmd shellcmdline sign syntax syntime tag tag_listfiles user var
-syn keyword    vimUserCmdAttrCmplt     contained       custom customlist nextgroup=vimUserCmdAttrCmpltFunc,vimUserCmdError
-syn match      vimUserCmdAttrCmpltFunc contained       ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError
+
+" GEN_SYN_VIM: vimUserCmdAttrComplete, START_STR='syn keyword vimUserCmdAttrComplete contained', END_STR=''
+syn keyword vimUserCmdAttrComplete contained arglist augroup behave breakpoint buffer color command compiler cscope diff_buffer dir dir_in_path environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages option packadd runtime scriptnames shellcmd shellcmdline sign syntax syntime tag tag_listfiles user var
+syn keyword vimUserCmdAttrComplete contained arglist augroup behave breakpoint buffer color command compiler cscope diff_buffer dir dir_in_path environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages option packadd runtime scriptnames shellcmd shellcmdline sign syntax syntime tag tag_listfiles user var
+syn keyword    vimUserCmdAttrComplete  contained       custom customlist nextgroup=vimUserCmdAttrCompleteFunc,vimUserCmdError
+syn match      vimUserCmdAttrCompleteFunc      contained       ",\%([bwglstav]:\|<[sS][iI][dD]>\)\=\h\w*\%([.#]\h\w*\)*"hs=s+1 nextgroup=vimUserCmdError contains=vimVarScope,vimFuncSID
+
 " GEN_SYN_VIM: vimUserCmdAttrAddr, START_STR='syn keyword vimUserCmdAttrAddr contained', END_STR=''
 syn keyword vimUserCmdAttrAddr contained arguments arg buffers buf lines line loaded_buffers load other quickfix qf tabs tab windows win
-syn match      vimUserCmdAttrAddr      contained       "?"
+syn keyword vimUserCmdAttrAddr contained arguments arg buffers buf lines line loaded_buffers load other quickfix qf tabs tab windows win
+syn match      vimUserCmdAttrAddr     contained        "?"
 syn case match
 
-syn region     vimUserCmdBlock contained       matchgroup=vimSep start="{" end="^\s*\zs}" contains=@vimDefBodyList
+syn match      vimUserCmdName      contained   "\<\u[[:alnum:]]*\>"            skipwhite        nextgroup=vimUserCmdBlock,vimUserCmdReplacement
+syn match      vimUserCmdName      contained   +\<\u[[:alnum:]]*\>\ze\s*\n\s*\%(\\\|["#]\\ \)+ skipwhite skipnl nextgroup=vimUserCmdBlock,vimUserCmdReplacement
+syn region     vimUserCmdReplacement contained
+      \ start="\S"
+      \ start=+^\s*\%(\\\|["#]\\ \)+
+      \ skip=+\n\s*\%(\\\|["#]\\ \)+
+      \ end="$"
+      \ contains=@vimContinue,@vimUserCmdList,vimComFilter
+syn region     vimUserCmdBlock     contained
+      \ matchgroup=vimSep
+      \ start="{"
+      \ end="^\s*\zs}"
+      \ contains=@vimDefBodyList
 
-syn match      vimDelcommand           "\<delc\%[ommand]\>" skipwhite nextgroup=vimDelcommandAttr
-syn match      vimDelcommandAttr       contained       "-buffer\>"
+syn match      vimDelcommand           "\<delc\%[ommand]\>"    skipwhite nextgroup=vimDelcommandAttr,vimDelcommandName
+syn match      vimDelcommandAttr       contained       "-buffer\>"             skipwhite nextgroup=vimDelcommandName
+syn match      vimDelcommandName       contained       "\<\u[[:alnum:]]*\>"
 
 " Lower Priority Comments: after some vim commands... {{{2
 " =======================
@@ -1787,8 +1812,10 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimUnlet  vimCommand
  hi def link vimUnletBang      vimBang
  hi def link vimUnmap  vimMap
+ hi def link vimUserCmd        vimCommand
  hi def link vimUserCmdAttrAddr        vimSpecial
- hi def link vimUserCmdAttrCmplt       vimSpecial
+ hi def link vimUserCmdAttrComplete    vimSpecial
+ hi def link vimUserCmdAttrCompleteFunc        vimVar
  hi def link vimUserCmdAttrNargs       vimSpecial
  hi def link vimUserCmdAttrRange       vimSpecial
  hi def link vimUserCmdAttrKey vimUserCmdAttr