mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:9.0.0089: fuzzy argument completion doesn't work for shell commands (#21852)
Problem: Fuzzy argument completion doesn't work for shell commands.
Solution: Check for cmdidx not being CMD_bang. (Yegappan Lakshmanan,
closes vim/vim#10769)
7db3a8e329
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
parent
fc692dfce1
commit
8abf53be6e
@ -1418,8 +1418,10 @@ static const char *set_cmd_index(const char *cmd, exarg_T *eap, expand_T *xp, in
|
||||
eap->cmdidx = excmd_get_cmdidx(cmd, len);
|
||||
|
||||
// User defined commands support alphanumeric characters.
|
||||
// Also when doing fuzzy expansion, support alphanumeric characters.
|
||||
if ((cmd[0] >= 'A' && cmd[0] <= 'Z') || (fuzzy && *p != NUL)) {
|
||||
// Also when doing fuzzy expansion for non-shell commands, support
|
||||
// alphanumeric characters.
|
||||
if ((cmd[0] >= 'A' && cmd[0] <= 'Z')
|
||||
|| (fuzzy && eap->cmdidx != CMD_bang && *p != NUL)) {
|
||||
while (ASCII_ISALNUM(*p) || *p == '*') { // Allow * wild card
|
||||
p++;
|
||||
}
|
||||
|
@ -3384,6 +3384,16 @@ func Test_cmdline_complete_substitute_short()
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
" Test for :! shell command argument completion
|
||||
func Test_cmdline_complete_bang_cmd_argument()
|
||||
set wildoptions=fuzzy
|
||||
call feedkeys(":!vim test_cmdline.\<Tab>\<C-B>\"\<CR>", 'xt')
|
||||
call assert_equal('"!vim test_cmdline.vim', @:)
|
||||
set wildoptions&
|
||||
call feedkeys(":!vim test_cmdline.\<Tab>\<C-B>\"\<CR>", 'xt')
|
||||
call assert_equal('"!vim test_cmdline.vim', @:)
|
||||
endfunc
|
||||
|
||||
func Check_completion()
|
||||
call assert_equal('let a', getcmdline())
|
||||
call assert_equal(6, getcmdpos())
|
||||
|
Loading…
Reference in New Issue
Block a user