Mercurial > vim
changeset 28119:57ea74314c1b v8.2.4584
patch 8.2.4584: error for using autoload function in custom completion
Commit: https://github.com/vim/vim/commit/da6d42c35a68610af872551b03077047258a7551
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Mar 17 11:46:55 2022 +0000
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 17 Mar 2022 13:00:07 +0100 |
parents | 9f0aed0d75e2 |
children | 001b1aa6fc14 |
files | src/eval.c src/testdir/test_cmdline.vim src/version.c |
diffstat | 3 files changed, 28 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -705,10 +705,9 @@ call_vim_function( // 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 - // autoload script has errors. Guess that when there is a dot or '#' in - // the name showing errors is the right choice. - ignore_errors = vim_strchr(func, '.') == NULL - && vim_strchr(func, AUTOLOAD_CHAR) == NULL; + // autoload script has errors. Guess that when there is a dot in the name + // showing errors is the right choice. + ignore_errors = vim_strchr(func, '.') == NULL; arg = func; if (ignore_errors) ++emsg_off;
--- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -1829,6 +1829,29 @@ func Test_wildmode() let &encoding = save_encoding 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 func Test_interrupt_compl() func F(lead, cmdl, p)