mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.2.4366: not enough tests for command line completion
Problem: Not enough tests for command line completion. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #9760)
This commit is contained in:
committed by
Bram Moolenaar
parent
cdf0485969
commit
4d03d87000
@@ -50,6 +50,9 @@ sort_func_compare(const void *s1, const void *s2)
|
|||||||
return STRCMP(p1, p2);
|
return STRCMP(p1, p2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Escape special characters in the cmdline completion matches.
|
||||||
|
*/
|
||||||
static void
|
static void
|
||||||
ExpandEscape(
|
ExpandEscape(
|
||||||
expand_T *xp,
|
expand_T *xp,
|
||||||
|
@@ -409,6 +409,12 @@ func Test_getcompletion()
|
|||||||
call assert_equal(cmds, l)
|
call assert_equal(cmds, l)
|
||||||
let l = getcompletion('list ', 'sign')
|
let l = getcompletion('list ', 'sign')
|
||||||
call assert_equal(['Testing'], l)
|
call assert_equal(['Testing'], l)
|
||||||
|
let l = getcompletion('de*', 'sign')
|
||||||
|
call assert_equal(['define'], l)
|
||||||
|
let l = getcompletion('p?', 'sign')
|
||||||
|
call assert_equal(['place'], l)
|
||||||
|
let l = getcompletion('j.', 'sign')
|
||||||
|
call assert_equal(['jump'], l)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Command line completion tests
|
" Command line completion tests
|
||||||
@@ -461,6 +467,18 @@ func Test_getcompletion()
|
|||||||
call delete('Xtags')
|
call delete('Xtags')
|
||||||
set tags&
|
set tags&
|
||||||
|
|
||||||
|
edit a~b
|
||||||
|
enew
|
||||||
|
call assert_equal(['a~b'], getcompletion('a~', 'buffer'))
|
||||||
|
bw a~b
|
||||||
|
|
||||||
|
if has('unix')
|
||||||
|
edit Xtest\
|
||||||
|
enew
|
||||||
|
call assert_equal(['Xtest\'], getcompletion('Xtest\', 'buffer'))
|
||||||
|
bw Xtest\
|
||||||
|
endif
|
||||||
|
|
||||||
call assert_fails("call getcompletion('\\\\@!\\\\@=', 'buffer')", 'E871:')
|
call assert_fails("call getcompletion('\\\\@!\\\\@=', 'buffer')", 'E871:')
|
||||||
call assert_fails('call getcompletion("", "burp")', 'E475:')
|
call assert_fails('call getcompletion("", "burp")', 'E475:')
|
||||||
call assert_fails('call getcompletion("abc", [])', 'E475:')
|
call assert_fails('call getcompletion("abc", [])', 'E475:')
|
||||||
@@ -1006,6 +1024,25 @@ func Test_cmdline_complete_various()
|
|||||||
call feedkeys(":chist\<Esc>\<Esc>", 'xt')
|
call feedkeys(":chist\<Esc>\<Esc>", 'xt')
|
||||||
call assert_equal('"g/a\xb/clearjumps', @:)
|
call assert_equal('"g/a\xb/clearjumps', @:)
|
||||||
set wildchar&
|
set wildchar&
|
||||||
|
|
||||||
|
" should be able to complete a file name that starts with a '~'.
|
||||||
|
if has('unix')
|
||||||
|
call writefile([], '~Xtest')
|
||||||
|
call feedkeys(":e \\~X\<Tab>\<C-B>\"\<CR>", 'xt')
|
||||||
|
call assert_equal('"e \~Xtest', @:)
|
||||||
|
call delete('~Xtest')
|
||||||
|
endif
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for 'wildignorecase'
|
||||||
|
func Test_cmdline_wildignorecase()
|
||||||
|
CheckUnix
|
||||||
|
call writefile([], 'XTEST')
|
||||||
|
set wildignorecase
|
||||||
|
call feedkeys(":e xt\<Tab>\<C-B>\"\<CR>", 'xt')
|
||||||
|
call assert_equal('"e XTEST', @:)
|
||||||
|
set wildignorecase&
|
||||||
|
call delete('XTEST')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_cmdline_write_alternatefile()
|
func Test_cmdline_write_alternatefile()
|
||||||
@@ -1627,6 +1664,14 @@ func Test_wildmode()
|
|||||||
call assert_equal('AAA AAAA AAAAA', g:Sline)
|
call assert_equal('AAA AAAA AAAAA', g:Sline)
|
||||||
call assert_equal('"b A', @:)
|
call assert_equal('"b A', @:)
|
||||||
|
|
||||||
|
" when using longest completion match, matches shorter than the argument
|
||||||
|
" should be ignored (happens with :help)
|
||||||
|
set wildmode=longest,full
|
||||||
|
set wildmenu
|
||||||
|
call feedkeys(":help a*\t\<C-B>\"\<CR>", 'xt')
|
||||||
|
call assert_equal('"help a', @:)
|
||||||
|
set wildmenu&
|
||||||
|
|
||||||
%argdelete
|
%argdelete
|
||||||
delcommand MyCmd
|
delcommand MyCmd
|
||||||
delfunc T
|
delfunc T
|
||||||
|
@@ -384,6 +384,17 @@ func Test_CmdCompletion()
|
|||||||
com! -nargs=? -complete=custom,min DoCmd
|
com! -nargs=? -complete=custom,min DoCmd
|
||||||
call assert_fails("call feedkeys(':DoCmd \t', 'tx')", 'E118:')
|
call assert_fails("call feedkeys(':DoCmd \t', 'tx')", 'E118:')
|
||||||
|
|
||||||
|
" custom completion for a pattern with a backslash
|
||||||
|
let g:ArgLead = ''
|
||||||
|
func! CustCompl(A, L, P)
|
||||||
|
let g:ArgLead = a:A
|
||||||
|
return ['one', 'two', 'three']
|
||||||
|
endfunc
|
||||||
|
com! -nargs=? -complete=customlist,CustCompl DoCmd
|
||||||
|
call feedkeys(":DoCmd a\\\t", 'xt')
|
||||||
|
call assert_equal('a\', g:ArgLead)
|
||||||
|
delfunc CustCompl
|
||||||
|
|
||||||
delcom DoCmd
|
delcom DoCmd
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
4366,
|
||||||
/**/
|
/**/
|
||||||
4365,
|
4365,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user