summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_vim9_import.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-04-14 12:58:23 +0100
committerBram Moolenaar <Bram@vim.org>2022-04-14 12:58:23 +0100
commit8944551534b311a2d25acf6e8db235c6d906256c (patch)
treeefcd900fc101768e456d5124ca1d5b2f7d064920 /src/testdir/test_vim9_import.vim
parentf420ff2440a009acd9573fdb6ad6d53509d78009 (diff)
patch 8.2.4748: cannot use an imported function in a mappingv8.2.4748
Problem: Cannot use an imported function in a mapping. Solution: Recognize <SID>name.Func.
Diffstat (limited to 'src/testdir/test_vim9_import.vim')
-rw-r--r--src/testdir/test_vim9_import.vim36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/testdir/test_vim9_import.vim b/src/testdir/test_vim9_import.vim
index 2c3792f844..94cb76033e 100644
--- a/src/testdir/test_vim9_import.vim
+++ b/src/testdir/test_vim9_import.vim
@@ -642,8 +642,8 @@ enddef
def Test_use_import_in_mapping()
var lines =<< trim END
vim9script
- export def Funcx()
- g:result = 42
+ export def Funcx(nr: number)
+ g:result = nr
enddef
END
writefile(lines, 'XsomeExport.vim')
@@ -651,18 +651,48 @@ def Test_use_import_in_mapping()
vim9script
import './XsomeExport.vim' as some
var Funcy = some.Funcx
- nnoremap <F3> :call <sid>Funcy()<cr>
+ nnoremap <F3> :call <sid>Funcy(42)<cr>
+ nnoremap <F4> :call <sid>some.Funcx(44)<cr>
END
writefile(lines, 'Xmapscript.vim')
source Xmapscript.vim
feedkeys("\<F3>", "xt")
assert_equal(42, g:result)
+ feedkeys("\<F4>", "xt")
+ assert_equal(44, g:result)
unlet g:result
delete('XsomeExport.vim')
delete('Xmapscript.vim')
nunmap <F3>
+ nunmap <F4>
+enddef
+
+def Test_use_autoload_import_in_mapping()
+ var lines =<< trim END
+ vim9script
+ export def Func()
+ g:result = 42
+ enddef
+ END
+ writefile(lines, 'XautoloadExport.vim')
+ lines =<< trim END
+ vim9script
+ import autoload './XautoloadExport.vim' as some
+ nnoremap <F3> :call <SID>some.Func()<CR>
+ END
+ writefile(lines, 'Xmapscript.vim')
+
+ source Xmapscript.vim
+ assert_match('\d\+ A: .*XautoloadExport.vim', execute('scriptnames')->split("\n")[-1])
+ feedkeys("\<F3>", "xt")
+ assert_equal(42, g:result)
+
+ unlet g:result
+ delete('XautoloadExport.vim')
+ delete('Xmapscript.vim')
+ nunmap <F3>
enddef
def Test_use_import_in_command_completion()