summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_vim9_import.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-01-21 13:29:56 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-21 13:29:56 +0000
commitf0e7e6365e86ca42c177fe165d3097d1bfb35f72 (patch)
treeda24c974e4cfc8f3a1853f80e2974e60689fb833 /src/testdir/test_vim9_import.vim
parentb7057bdd090ddcce96dc058e4e65340c8ec961d7 (diff)
patch 8.2.4171: cannot invoke option function using autoload importv8.2.4171
Problem: Cannot invoke option function using autoload import. Solution: Expand the import to an autoload function name. (closes #9578)
Diffstat (limited to 'src/testdir/test_vim9_import.vim')
-rw-r--r--src/testdir/test_vim9_import.vim43
1 files changed, 42 insertions, 1 deletions
diff --git a/src/testdir/test_vim9_import.vim b/src/testdir/test_vim9_import.vim
index bacba2e8bf..6e61d07189 100644
--- a/src/testdir/test_vim9_import.vim
+++ b/src/testdir/test_vim9_import.vim
@@ -609,7 +609,7 @@ def Test_use_import_in_mapping()
nunmap <F3>
enddef
-def Test_use_import_in_completion()
+def Test_use_import_in_command_completion()
var lines =<< trim END
vim9script
export def Complete(..._): list<string>
@@ -632,6 +632,47 @@ def Test_use_import_in_completion()
delete('Xscript.vim')
enddef
+def Test_use_autoload_import_in_insert_completion()
+ mkdir('Xdir/autoload', 'p')
+ var save_rtp = &rtp
+ exe 'set rtp^=' .. getcwd() .. '/Xdir'
+
+ var lines =<< trim END
+ vim9script
+ export def ThesaurusFunc(findbase: bool, _): any
+ if findbase
+ return 1
+ endif
+ return [
+ 'check',
+ 'experiment',
+ 'test',
+ 'verification'
+ ]
+ enddef
+ g:completion_loaded = 'yes'
+ END
+ writefile(lines, 'Xdir/autoload/completion.vim')
+
+ new
+ lines =<< trim END
+ vim9script
+ g:completion_loaded = 'no'
+ import autoload 'completion.vim'
+ set thesaurusfunc=completion.ThesaurusFunc
+ assert_equal('no', g:completion_loaded)
+ feedkeys("i\<C-X>\<C-T>\<C-N>\<Esc>", 'xt')
+ assert_equal('experiment', getline(1))
+ assert_equal('yes', g:completion_loaded)
+ END
+ CheckScriptSuccess(lines)
+
+ set thesaurusfunc=
+ bwipe!
+ delete('Xdir', 'rf')
+ &rtp = save_rtp
+enddef
+
def Test_export_fails()
CheckScriptFailure(['export var some = 123'], 'E1042:')
CheckScriptFailure(['vim9script', 'export var g:some'], 'E1022:')