Mercurial > vim
diff src/testdir/test_vim9_import.vim @ 28453:862068e9e2a7 v8.2.4751
patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Commit: https://github.com/vim/vim/commit/648dd88af67c7abac31915cbf0025f97031c96c1
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Apr 14 21:36:15 2022 +0100
patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Problem: Mapping <SID>name.Func does not work for script in autoload
directory.
Solution: Use the # form for a script in the autoload directory.
(closes #10186)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 14 Apr 2022 22:45:03 +0200 |
parents | 6f753a8125f0 |
children | 938c174b8088 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_import.vim +++ b/src/testdir/test_vim9_import.vim @@ -669,32 +669,63 @@ def Test_use_import_in_mapping() nunmap <F4> enddef -def Test_use_autoload_import_in_mapping() +def Test_use_relative_autoload_import_in_mapping() var lines =<< trim END vim9script export def Func() g:result = 42 enddef END - writefile(lines, 'XautoloadExport.vim') + writefile(lines, 'XrelautoloadExport.vim') lines =<< trim END vim9script - import autoload './XautoloadExport.vim' as some + import autoload './XrelautoloadExport.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]) + assert_match('\d\+ A: .*XrelautoloadExport.vim', execute('scriptnames')->split("\n")[-1]) feedkeys("\<F3>", "xt") assert_equal(42, g:result) unlet g:result - delete('XautoloadExport.vim') + delete('XrelautoloadExport.vim') delete('Xmapscript.vim') nunmap <F3> enddef +def Test_use_autoload_import_in_mapping() + var lines =<< trim END + vim9script + export def Func() + g:result = 49 + enddef + END + mkdir('Xdir/autoload', 'p') + writefile(lines, 'Xdir/autoload/XautoloadExport.vim') + var save_rtp = &rtp + exe 'set rtp^=' .. getcwd() .. '/Xdir' + + 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: .*autoload/XautoloadExport.vim', execute('scriptnames')->split("\n")[-1]) + feedkeys("\<F3>", "xt") + assert_equal(49, g:result) + + unlet g:result + delete('Xmapscript.vim') + nunmap <F3> + delete('Xdir', 'rf') + &rtp = save_rtp +enddef + def Test_use_import_in_command_completion() var lines =<< trim END vim9script