Mercurial > vim
diff src/testdir/test_vim9_import.vim @ 27362:2ca6dd1f62af v8.2.4209
patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Commit: https://github.com/vim/vim/commit/3e93a2b075e99a2b3ced85227a6373be233712ff
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jan 24 21:28:01 2022 +0000
patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Problem: partial in 'opfunc' cannot use an imported function.
Solution: Also expand the function name in a partial. (closes https://github.com/vim/vim/issues/9614)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 24 Jan 2022 22:30:04 +0100 |
parents | 9a9c34c84cd4 |
children | 1a6421c5be20 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_import.vim +++ b/src/testdir/test_vim9_import.vim @@ -673,6 +673,39 @@ def Test_use_autoload_import_in_insert_c &rtp = save_rtp enddef +def Test_use_autoload_import_partial_in_opfunc() + mkdir('Xdir/autoload', 'p') + var save_rtp = &rtp + exe 'set rtp^=' .. getcwd() .. '/Xdir' + + var lines =<< trim END + vim9script + export def Opfunc(..._) + g:opfunc_called = 'yes' + enddef + END + writefile(lines, 'Xdir/autoload/opfunc.vim') + + new + lines =<< trim END + vim9script + import autoload 'opfunc.vim' + nnoremap <expr> <F3> TheFunc() + def TheFunc(): string + &operatorfunc = function('opfunc.Opfunc', [0]) + return 'g@' + enddef + feedkeys("\<F3>l", 'xt') + assert_equal('yes', g:opfunc_called) + END + CheckScriptSuccess(lines) + + set opfunc= + bwipe! + delete('Xdir', 'rf') + &rtp = save_rtp +enddef + def Test_use_autoload_import_in_fold_expression() mkdir('Xdir/autoload', 'p') var save_rtp = &rtp