aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-01-26 09:58:27 +0800
committerzeertzjq <zeertzjq@outlook.com>2023-01-26 11:55:34 +0800
commit6320c91c50e4c0ee5c366241f9a413c4edbfdad8 (patch)
treefe86bb030a80ab6459b1903229693a113d5d1088 /src/nvim/testdir
parent6644786db078e019426f90cf85da50e3fa1b6a67 (diff)
downloadrneovim-6320c91c50e4c0ee5c366241f9a413c4edbfdad8.tar.gz
rneovim-6320c91c50e4c0ee5c366241f9a413c4edbfdad8.tar.bz2
rneovim-6320c91c50e4c0ee5c366241f9a413c4edbfdad8.zip
vim-patch:9.0.1231: completion of :runtime does not handle {where} argument
Problem: Completion of :runtime does not handle {where} argument. Solution: Parse the {where} argument. (closes vim/vim#11863) https://github.com/vim/vim/commit/3770f4c9cde7b5fcd10b6fa2e665cd0b69450fb2
Diffstat (limited to 'src/nvim/testdir')
-rw-r--r--src/nvim/testdir/test_cmdline.vim9
-rw-r--r--src/nvim/testdir/test_packadd.vim64
2 files changed, 64 insertions, 9 deletions
diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim
index 8f79f0d8a0..cf1d56ae38 100644
--- a/src/nvim/testdir/test_cmdline.vim
+++ b/src/nvim/testdir/test_cmdline.vim
@@ -542,15 +542,6 @@ func Test_getcompletion()
call assert_true(index(l, '<buffer>') >= 0)
let l = getcompletion('not', 'mapclear')
call assert_equal([], l)
-
- let l = getcompletion('', 'runtime')
- call assert_true(index(l, 'defaults.vim') >= 0)
- let l = getcompletion('synt', 'runtime')
- call assert_true(index(l, 'syntax') >= 0)
- let l = getcompletion('syntax/vi', 'runtime')
- call assert_true(index(l, 'syntax/vim.vim') >= 0)
- let l = getcompletion('notexitsts', 'runtime')
- call assert_equal([], l)
let l = getcompletion('.', 'shellcmd')
call assert_equal(['./', '../'], filter(l, 'v:val =~ "\\./"'))
diff --git a/src/nvim/testdir/test_packadd.vim b/src/nvim/testdir/test_packadd.vim
index fcb8b8033b..3f00548273 100644
--- a/src/nvim/testdir/test_packadd.vim
+++ b/src/nvim/testdir/test_packadd.vim
@@ -193,8 +193,10 @@ func Test_packadd_completion()
call mkdir(optdir1 . '/pluginA', 'p')
call mkdir(optdir1 . '/pluginC', 'p')
+ call writefile([], optdir1 . '/unrelated')
call mkdir(optdir2 . '/pluginB', 'p')
call mkdir(optdir2 . '/pluginC', 'p')
+ call writefile([], optdir2 . '/unrelated')
let li = []
call feedkeys(":packadd \<Tab>')\<C-B>call add(li, '\<CR>", 't')
@@ -358,4 +360,66 @@ func Test_runtime()
call assert_equal('runstartopt', g:sequence)
endfunc
+func Test_runtime_completion()
+ let rundir = &packpath . '/runtime/Xextra'
+ let startdir = &packpath . '/pack/mine/start/foo/Xextra'
+ let optdir = &packpath . '/pack/mine/opt/bar/Xextra'
+ call mkdir(rundir . '/Xrunbaz', 'p')
+ call mkdir(startdir . '/Xstartbaz', 'p')
+ call mkdir(optdir . '/Xoptbaz', 'p')
+ call writefile([], rundir . '/../Xrunfoo.vim')
+ call writefile([], rundir . '/Xrunbar.vim')
+ call writefile([], rundir . '/Xunrelated')
+ call writefile([], rundir . '/../Xunrelated')
+ call writefile([], startdir . '/../Xstartfoo.vim')
+ call writefile([], startdir . '/Xstartbar.vim')
+ call writefile([], startdir . '/Xunrelated')
+ call writefile([], startdir . '/../Xunrelated')
+ call writefile([], optdir . '/../Xoptfoo.vim')
+ call writefile([], optdir . '/Xoptbar.vim')
+ call writefile([], optdir . '/Xunrelated')
+ call writefile([], optdir . '/../Xunrelated')
+ exe 'set rtp=' . &packpath . '/runtime'
+
+ func Check_runtime_completion(arg, arg1, res)
+ call feedkeys(':runtime ' .. a:arg .. "\<C-A>\<C-B>\"\<CR>", 'xt')
+ call assert_equal('"runtime ' .. a:arg1 .. join(a:res), @:)
+ call assert_equal(a:res, getcompletion(a:arg, 'runtime'))
+
+ call feedkeys(':runtime ' .. a:arg .. "X\<C-A>\<C-B>\"\<CR>", 'xt')
+ call assert_equal('"runtime ' .. a:arg1 .. join(a:res), @:)
+ call assert_equal(a:res, getcompletion(a:arg .. 'X', 'runtime'))
+ endfunc
+
+ call Check_runtime_completion('', '',
+ \ ['Xextra/', 'Xrunfoo.vim'])
+ call Check_runtime_completion('Xextra/', '',
+ \ ['Xextra/Xrunbar.vim', 'Xextra/Xrunbaz/'])
+
+ call Check_runtime_completion('START ', 'START ',
+ \ ['Xextra/', 'Xstartfoo.vim'])
+ call Check_runtime_completion('START Xextra/', 'START ',
+ \ ['Xextra/Xstartbar.vim', 'Xextra/Xstartbaz/'])
+
+ call Check_runtime_completion('OPT ', 'OPT ',
+ \ ['Xextra/', 'Xoptfoo.vim'])
+ call Check_runtime_completion('OPT Xextra/', 'OPT ',
+ \ ['Xextra/Xoptbar.vim', 'Xextra/Xoptbaz/'])
+
+ call Check_runtime_completion('PACK ', 'PACK ',
+ \ ['Xextra/', 'Xoptfoo.vim', 'Xstartfoo.vim'])
+ call Check_runtime_completion('PACK Xextra/', 'PACK ',
+ \ ['Xextra/Xoptbar.vim', 'Xextra/Xoptbaz/',
+ \ 'Xextra/Xstartbar.vim', 'Xextra/Xstartbaz/'])
+
+ call Check_runtime_completion('ALL ', 'ALL ',
+ \ ['Xextra/', 'Xoptfoo.vim', 'Xrunfoo.vim', 'Xstartfoo.vim'])
+ call Check_runtime_completion('ALL Xextra/', 'ALL ',
+ \ ['Xextra/Xoptbar.vim', 'Xextra/Xoptbaz/',
+ \ 'Xextra/Xrunbar.vim', 'Xextra/Xrunbaz/',
+ \ 'Xextra/Xstartbar.vim', 'Xextra/Xstartbaz/'])
+
+ delfunc Check_runtime_completion
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab