forked from aniani/vim
patch 8.2.3141: no error when using :complete for :command without -nargs
Problem: No error when using :complete for :command without -nargs. Solution: Give an error. (Martin Tournoij, closes #8544, closes #8541)
This commit is contained in:
committed by
Bram Moolenaar
parent
482d2f37a5
commit
de69a7353e
@@ -270,6 +270,8 @@ func Test_CmdErrors()
|
||||
call assert_fails('com! -complete=custom DoCmd :', 'E467:')
|
||||
call assert_fails('com! -complete=customlist DoCmd :', 'E467:')
|
||||
call assert_fails('com! -complete=behave,CustomComplete DoCmd :', 'E468:')
|
||||
call assert_fails('com! -complete=file DoCmd :', 'E1208:')
|
||||
call assert_fails('com! -nargs=0 -complete=file DoCmd :', 'E1208:')
|
||||
call assert_fails('com! -nargs=x DoCmd :', 'E176:')
|
||||
call assert_fails('com! -count=1 -count=2 DoCmd :', 'E177:')
|
||||
call assert_fails('com! -count=x DoCmd :', 'E178:')
|
||||
@@ -338,34 +340,30 @@ func Test_CmdCompletion()
|
||||
call feedkeys(":com DoC\<C-A>\<C-B>\"\<CR>", 'tx')
|
||||
call assert_equal('"com DoC', @:)
|
||||
|
||||
com! -complete=behave DoCmd :
|
||||
com! -nargs=1 -complete=behave DoCmd :
|
||||
call feedkeys(":DoCmd \<C-A>\<C-B>\"\<CR>", 'tx')
|
||||
call assert_equal('"DoCmd mswin xterm', @:)
|
||||
|
||||
" This does not work. Why?
|
||||
"call feedkeys(":DoCmd x\<C-A>\<C-B>\"\<CR>", 'tx')
|
||||
"call assert_equal('"DoCmd xterm', @:)
|
||||
|
||||
com! -complete=custom,CustomComplete DoCmd :
|
||||
com! -nargs=* -complete=custom,CustomComplete DoCmd :
|
||||
call feedkeys(":DoCmd \<C-A>\<C-B>\"\<CR>", 'tx')
|
||||
call assert_equal('"DoCmd January February Mars', @:)
|
||||
|
||||
com! -complete=customlist,CustomCompleteList DoCmd :
|
||||
com! -nargs=? -complete=customlist,CustomCompleteList DoCmd :
|
||||
call feedkeys(":DoCmd \<C-A>\<C-B>\"\<CR>", 'tx')
|
||||
call assert_equal('"DoCmd Monday Tuesday Wednesday', @:)
|
||||
|
||||
com! -complete=custom,CustomCompleteList DoCmd :
|
||||
com! -nargs=+ -complete=custom,CustomCompleteList DoCmd :
|
||||
call assert_fails("call feedkeys(':DoCmd \<C-D>', 'tx')", 'E730:')
|
||||
|
||||
com! -complete=customlist,CustomComp DoCmd :
|
||||
com! -nargs=+ -complete=customlist,CustomComp DoCmd :
|
||||
call assert_fails("call feedkeys(':DoCmd \<C-D>', 'tx')", 'E117:')
|
||||
|
||||
" custom completion without a function
|
||||
com! -complete=custom, DoCmd
|
||||
com! -nargs=? -complete=custom, DoCmd
|
||||
call assert_beeps("call feedkeys(':DoCmd \t', 'tx')")
|
||||
|
||||
" custom completion failure with the wrong function
|
||||
com! -complete=custom,min DoCmd
|
||||
com! -nargs=? -complete=custom,min DoCmd
|
||||
call assert_fails("call feedkeys(':DoCmd \t', 'tx')", 'E118:')
|
||||
|
||||
delcom DoCmd
|
||||
@@ -500,21 +498,21 @@ func Test_command_list()
|
||||
\ execute('command DoCmd'))
|
||||
|
||||
" Test with various -complete= argument values (non-exhaustive list)
|
||||
command! -complete=arglist DoCmd :
|
||||
command! -nargs=1 -complete=arglist DoCmd :
|
||||
call assert_equal("\n Name Args Address Complete Definition"
|
||||
\ .. "\n DoCmd 0 arglist :",
|
||||
\ .. "\n DoCmd 1 arglist :",
|
||||
\ execute('command DoCmd'))
|
||||
command! -complete=augroup DoCmd :
|
||||
command! -nargs=* -complete=augroup DoCmd :
|
||||
call assert_equal("\n Name Args Address Complete Definition"
|
||||
\ .. "\n DoCmd 0 augroup :",
|
||||
\ .. "\n DoCmd * augroup :",
|
||||
\ execute('command DoCmd'))
|
||||
command! -complete=custom,CustomComplete DoCmd :
|
||||
command! -nargs=? -complete=custom,CustomComplete DoCmd :
|
||||
call assert_equal("\n Name Args Address Complete Definition"
|
||||
\ .. "\n DoCmd 0 custom :",
|
||||
\ .. "\n DoCmd ? custom :",
|
||||
\ execute('command DoCmd'))
|
||||
command! -complete=customlist,CustomComplete DoCmd :
|
||||
command! -nargs=+ -complete=customlist,CustomComplete DoCmd :
|
||||
call assert_equal("\n Name Args Address Complete Definition"
|
||||
\ .. "\n DoCmd 0 customlist :",
|
||||
\ .. "\n DoCmd + customlist :",
|
||||
\ execute('command DoCmd'))
|
||||
|
||||
" Test with various -narg= argument values.
|
||||
|
Reference in New Issue
Block a user