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