patch 9.0.1238: :runtime completion can be further improved
Problem: :runtime completion can be further improved.
Solution: Also complete the {where} argument values and adjust the
completion for that. (closes #11874)
diff --git a/src/testdir/test_packadd.vim b/src/testdir/test_packadd.vim
index b5583ae..332f009 100644
--- a/src/testdir/test_packadd.vim
+++ b/src/testdir/test_packadd.vim
@@ -370,63 +370,75 @@
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')
+ let rundir = &packpath . '/runtime/Aextra'
+ let startdir = &packpath . '/pack/mine/start/foo/Aextra'
+ let optdir = &packpath . '/pack/mine/opt/bar/Aextra'
+ call mkdir(rundir . '/Arunbaz', 'p')
+ call mkdir(startdir . '/Astartbaz', 'p')
+ call mkdir(optdir . '/Aoptbaz', 'p')
+ call writefile([], rundir . '/../Arunfoo.vim')
+ call writefile([], rundir . '/Arunbar.vim')
+ call writefile([], rundir . '/Aunrelated')
+ call writefile([], rundir . '/../Aunrelated')
+ call writefile([], startdir . '/../Astartfoo.vim')
+ call writefile([], startdir . '/Astartbar.vim')
+ call writefile([], startdir . '/Aunrelated')
+ call writefile([], startdir . '/../Aunrelated')
+ call writefile([], optdir . '/../Aoptfoo.vim')
+ call writefile([], optdir . '/Aoptbar.vim')
+ call writefile([], optdir . '/Aunrelated')
+ call writefile([], optdir . '/../Aunrelated')
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/'])
+ \ ['Aextra/', 'Arunfoo.vim', 'START', 'OPT', 'PACK', 'ALL'])
+ call Check_runtime_completion('S', '',
+ \ ['START'])
+ call Check_runtime_completion('O', '',
+ \ ['OPT'])
+ call Check_runtime_completion('P', '',
+ \ ['PACK'])
+ call Check_runtime_completion('A', '',
+ \ ['Aextra/', 'Arunfoo.vim', 'ALL'])
+ call Check_runtime_completion('Aextra/', '',
+ \ ['Aextra/Arunbar.vim', 'Aextra/Arunbaz/'])
call Check_runtime_completion('START ', 'START ',
- \ ['Xextra/', 'Xstartfoo.vim'])
- call Check_runtime_completion('START Xextra/', 'START ',
- \ ['Xextra/Xstartbar.vim', 'Xextra/Xstartbaz/'])
+ \ ['Aextra/', 'Astartfoo.vim'])
+ call Check_runtime_completion('START A', 'START ',
+ \ ['Aextra/', 'Astartfoo.vim'])
+ call Check_runtime_completion('START Aextra/', 'START ',
+ \ ['Aextra/Astartbar.vim', 'Aextra/Astartbaz/'])
call Check_runtime_completion('OPT ', 'OPT ',
- \ ['Xextra/', 'Xoptfoo.vim'])
- call Check_runtime_completion('OPT Xextra/', 'OPT ',
- \ ['Xextra/Xoptbar.vim', 'Xextra/Xoptbaz/'])
+ \ ['Aextra/', 'Aoptfoo.vim'])
+ call Check_runtime_completion('OPT A', 'OPT ',
+ \ ['Aextra/', 'Aoptfoo.vim'])
+ call Check_runtime_completion('OPT Aextra/', 'OPT ',
+ \ ['Aextra/Aoptbar.vim', 'Aextra/Aoptbaz/'])
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/'])
+ \ ['Aextra/', 'Aoptfoo.vim', 'Astartfoo.vim'])
+ call Check_runtime_completion('PACK A', 'PACK ',
+ \ ['Aextra/', 'Aoptfoo.vim', 'Astartfoo.vim'])
+ call Check_runtime_completion('PACK Aextra/', 'PACK ',
+ \ ['Aextra/Aoptbar.vim', 'Aextra/Aoptbaz/',
+ \ 'Aextra/Astartbar.vim', 'Aextra/Astartbaz/'])
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/'])
+ \ ['Aextra/', 'Aoptfoo.vim', 'Arunfoo.vim', 'Astartfoo.vim'])
+ call Check_runtime_completion('ALL A', 'ALL ',
+ \ ['Aextra/', 'Aoptfoo.vim', 'Arunfoo.vim', 'Astartfoo.vim'])
+ call Check_runtime_completion('ALL Aextra/', 'ALL ',
+ \ ['Aextra/Aoptbar.vim', 'Aextra/Aoptbaz/',
+ \ 'Aextra/Arunbar.vim', 'Aextra/Arunbaz/',
+ \ 'Aextra/Astartbar.vim', 'Aextra/Astartbaz/'])
delfunc Check_runtime_completion
endfunc