patch 8.2.3550: completion() does not work properly
Problem: completion() does not work properly.
Solution: Set xp_line and add WILD_HOME_REPLACE. (Shougo Matsushita,
closes #9016)
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 9c21a20..87ae6fa 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -305,6 +305,11 @@
let l = getcompletion('NoMatch', 'dir')
call assert_equal([], l)
+ if glob('~/*') !=# ''
+ let l = getcompletion('~/', 'dir')
+ call assert_true(l[0][0] ==# '~')
+ endif
+
let l = getcompletion('exe', 'expression')
call assert_true(index(l, 'executable(') >= 0)
let l = getcompletion('kill', 'expression')
@@ -418,6 +423,16 @@
let l = getcompletion('call paint', 'cmdline')
call assert_equal([], l)
+ func T(a, c, p)
+ return "oneA\noneB\noneC"
+ endfunc
+ command -nargs=1 -complete=custom,T MyCmd
+ let l = getcompletion('MyCmd ', 'cmdline')
+ call assert_equal(['oneA', 'oneB', 'oneC'], l)
+
+ delcommand MyCmd
+ delfunc T
+
" For others test if the name is recognized.
let names = ['buffer', 'environment', 'file_in_path', 'mapping', 'tag', 'tag_listfiles', 'user']
if has('cmdline_hist')