Mercurial > vim
comparison 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 |
comparison
equal
deleted
inserted
replaced
28452:d41ef9630691 | 28453:862068e9e2a7 |
---|---|
667 delete('Xmapscript.vim') | 667 delete('Xmapscript.vim') |
668 nunmap <F3> | 668 nunmap <F3> |
669 nunmap <F4> | 669 nunmap <F4> |
670 enddef | 670 enddef |
671 | 671 |
672 def Test_use_autoload_import_in_mapping() | 672 def Test_use_relative_autoload_import_in_mapping() |
673 var lines =<< trim END | 673 var lines =<< trim END |
674 vim9script | 674 vim9script |
675 export def Func() | 675 export def Func() |
676 g:result = 42 | 676 g:result = 42 |
677 enddef | 677 enddef |
678 END | 678 END |
679 writefile(lines, 'XautoloadExport.vim') | 679 writefile(lines, 'XrelautoloadExport.vim') |
680 lines =<< trim END | 680 lines =<< trim END |
681 vim9script | 681 vim9script |
682 import autoload './XautoloadExport.vim' as some | 682 import autoload './XrelautoloadExport.vim' as some |
683 nnoremap <F3> :call <SID>some.Func()<CR> | 683 nnoremap <F3> :call <SID>some.Func()<CR> |
684 END | 684 END |
685 writefile(lines, 'Xmapscript.vim') | 685 writefile(lines, 'Xmapscript.vim') |
686 | 686 |
687 source Xmapscript.vim | 687 source Xmapscript.vim |
688 assert_match('\d\+ A: .*XautoloadExport.vim', execute('scriptnames')->split("\n")[-1]) | 688 assert_match('\d\+ A: .*XrelautoloadExport.vim', execute('scriptnames')->split("\n")[-1]) |
689 feedkeys("\<F3>", "xt") | 689 feedkeys("\<F3>", "xt") |
690 assert_equal(42, g:result) | 690 assert_equal(42, g:result) |
691 | 691 |
692 unlet g:result | 692 unlet g:result |
693 delete('XautoloadExport.vim') | 693 delete('XrelautoloadExport.vim') |
694 delete('Xmapscript.vim') | 694 delete('Xmapscript.vim') |
695 nunmap <F3> | 695 nunmap <F3> |
696 enddef | |
697 | |
698 def Test_use_autoload_import_in_mapping() | |
699 var lines =<< trim END | |
700 vim9script | |
701 export def Func() | |
702 g:result = 49 | |
703 enddef | |
704 END | |
705 mkdir('Xdir/autoload', 'p') | |
706 writefile(lines, 'Xdir/autoload/XautoloadExport.vim') | |
707 var save_rtp = &rtp | |
708 exe 'set rtp^=' .. getcwd() .. '/Xdir' | |
709 | |
710 lines =<< trim END | |
711 vim9script | |
712 import autoload 'XautoloadExport.vim' as some | |
713 nnoremap <F3> :call <SID>some.Func()<CR> | |
714 END | |
715 writefile(lines, 'Xmapscript.vim') | |
716 | |
717 source Xmapscript.vim | |
718 assert_match('\d\+ A: .*autoload/XautoloadExport.vim', execute('scriptnames')->split("\n")[-1]) | |
719 feedkeys("\<F3>", "xt") | |
720 assert_equal(49, g:result) | |
721 | |
722 unlet g:result | |
723 delete('Xmapscript.vim') | |
724 nunmap <F3> | |
725 delete('Xdir', 'rf') | |
726 &rtp = save_rtp | |
696 enddef | 727 enddef |
697 | 728 |
698 def Test_use_import_in_command_completion() | 729 def Test_use_import_in_command_completion() |
699 var lines =<< trim END | 730 var lines =<< trim END |
700 vim9script | 731 vim9script |