mirror of
https://github.com/neovim/neovim.git
synced 2024-12-31 17:13:26 -07:00
vim-patch:7.4.2112 (#5175)
Problem: getcompletion(.., 'dir') returns a match with trailing "*" when
there are no matches. (Chdiza)
Solution: Return an empty list when there are no matches. Add a trailing
slash to directories. (Yegappan Lakshmanan) Add tests for no
matches. (closes vim/vim#947)
b56195ed00
This commit is contained in:
parent
6b48d25cbf
commit
dfb6a5133b
@ -9994,8 +9994,8 @@ static void f_getcompletion(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
char_u *pat;
|
||||
expand_T xpc;
|
||||
int options = WILD_KEEP_ALL | WILD_SILENT | WILD_USE_NL
|
||||
| WILD_LIST_NOTFOUND | WILD_NO_BEEP;
|
||||
int options = WILD_SILENT | WILD_USE_NL | WILD_ADD_SLASH
|
||||
| WILD_NO_BEEP;
|
||||
|
||||
if (p_wic) {
|
||||
options |= WILD_ICASE;
|
||||
|
@ -47,45 +47,79 @@ func Test_getcompletion()
|
||||
|
||||
let l = getcompletion('v:n', 'var')
|
||||
call assert_true(index(l, 'v:null') >= 0)
|
||||
let l = getcompletion('v:notexists', 'var')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('', 'augroup')
|
||||
call assert_true(index(l, 'END') >= 0)
|
||||
let l = getcompletion('blahblah', 'augroup')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('', 'behave')
|
||||
call assert_true(index(l, 'mswin') >= 0)
|
||||
let l = getcompletion('not', 'behave')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('', 'color')
|
||||
call assert_true(index(l, 'default') >= 0)
|
||||
let l = getcompletion('dirty', 'color')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('', 'command')
|
||||
call assert_true(index(l, 'sleep') >= 0)
|
||||
let l = getcompletion('awake', 'command')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('', 'dir')
|
||||
call assert_true(index(l, 'sautest') >= 0)
|
||||
call assert_true(index(l, 'sautest/') >= 0)
|
||||
let l = getcompletion('NoMatch', 'dir')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('exe', 'expression')
|
||||
call assert_true(index(l, 'executable(') >= 0)
|
||||
let l = getcompletion('kill', 'expression')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('tag', 'function')
|
||||
call assert_true(index(l, 'taglist(') >= 0)
|
||||
let l = getcompletion('paint', 'function')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('run', 'file')
|
||||
call assert_true(index(l, 'runtest.vim') >= 0)
|
||||
let l = getcompletion('walk', 'file')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('ha', 'filetype')
|
||||
call assert_true(index(l, 'hamster') >= 0)
|
||||
let l = getcompletion('horse', 'filetype')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('z', 'syntax')
|
||||
call assert_true(index(l, 'zimbu') >= 0)
|
||||
let l = getcompletion('emacs', 'syntax')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('jikes', 'compiler')
|
||||
call assert_true(index(l, 'jikes') >= 0)
|
||||
let l = getcompletion('break', 'compiler')
|
||||
call assert_equal([], l)
|
||||
|
||||
helptags ALL
|
||||
let l = getcompletion('last', 'help')
|
||||
call assert_true(index(l, ':tablast') >= 0)
|
||||
let l = getcompletion('giveup', 'help')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('time', 'option')
|
||||
call assert_true(index(l, 'timeoutlen') >= 0)
|
||||
let l = getcompletion('space', 'option')
|
||||
call assert_equal([], l)
|
||||
|
||||
let l = getcompletion('er', 'highlight')
|
||||
call assert_true(index(l, 'ErrorMsg') >= 0)
|
||||
let l = getcompletion('dark', 'highlight')
|
||||
call assert_equal([], l)
|
||||
|
||||
" For others test if the name is recognized.
|
||||
let names = ['buffer', 'environment', 'file_in_path',
|
||||
|
@ -163,7 +163,7 @@ static int included_patches[] = {
|
||||
// 2115,
|
||||
// 2114,
|
||||
// 2113,
|
||||
// 2112,
|
||||
2112,
|
||||
// 2111,
|
||||
// 2110,
|
||||
// 2109,
|
||||
|
Loading…
Reference in New Issue
Block a user