0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.2.4584: error for using autoload function in custom completion

Problem:    Error for using autoload function in custom completion.
Solution:   Do not check for errors when using an autoload function.
            (closes #9962)
This commit is contained in:
Bram Moolenaar
2022-03-17 11:46:55 +00:00
parent 4f6e772c9c
commit da6d42c35a
3 changed files with 28 additions and 4 deletions

View File

@@ -705,10 +705,9 @@ call_vim_function(
// The name might be "import.Func" or "Funcref". We don't know, we need to // The name might be "import.Func" or "Funcref". We don't know, we need to
// ignore errors for an undefined name. But we do want errors when an // ignore errors for an undefined name. But we do want errors when an
// autoload script has errors. Guess that when there is a dot or '#' in // autoload script has errors. Guess that when there is a dot in the name
// the name showing errors is the right choice. // showing errors is the right choice.
ignore_errors = vim_strchr(func, '.') == NULL ignore_errors = vim_strchr(func, '.') == NULL;
&& vim_strchr(func, AUTOLOAD_CHAR) == NULL;
arg = func; arg = func;
if (ignore_errors) if (ignore_errors)
++emsg_off; ++emsg_off;

View File

@@ -1829,6 +1829,29 @@ func Test_wildmode()
let &encoding = save_encoding let &encoding = save_encoding
endfunc endfunc
func Test_custom_complete_autoload()
call mkdir('Xdir/autoload', 'p')
let save_rtp = &rtp
exe 'set rtp=' .. getcwd() .. '/Xdir'
let lines =<< trim END
func vim8#Complete(a, c, p)
return "oneA\noneB\noneC"
endfunc
END
call writefile(lines, 'Xdir/autoload/vim8.vim')
command -nargs=1 -complete=custom,vim8#Complete MyCmd
set nowildmenu
set wildmode=full,list
call feedkeys(":MyCmd \<C-A>\<C-B>\"\<CR>", 'xt')
call assert_equal('"MyCmd oneA oneB oneC', @:)
let &rtp = save_rtp
set wildmode& wildmenu&
delcommand MyCmd
call delete('Xdir', 'rf')
endfunc
" Test for interrupting the command-line completion " Test for interrupting the command-line completion
func Test_interrupt_compl() func Test_interrupt_compl()
func F(lead, cmdl, p) func F(lead, cmdl, p)

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
4584,
/**/ /**/
4583, 4583,
/**/ /**/