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