diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2022-08-28 18:52:10 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-08-28 18:52:10 +0100 |
commit | 2f892d8663498c21296ad6661dac1bb8372cfd10 (patch) | |
tree | 96b4bed89d8d4237fc46370fa227f086944e514f /src/testdir/test_vim9_builtin.vim | |
parent | 75e9a6693e8d0126b5fff42203bfba9428cd19ae (diff) |
patch 9.0.0303: it is not easy to get information about a scriptv9.0.0303
Problem: It is not easy to get information about a script.
Solution: Make getscriptinf() return the version. When selecting a specific
script return functions and variables. (Yegappan Lakshmanan,
closes #10991)
Diffstat (limited to 'src/testdir/test_vim9_builtin.vim')
-rw-r--r-- | src/testdir/test_vim9_builtin.vim | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim index e3ebc3e587..d68ddce7aa 100644 --- a/src/testdir/test_vim9_builtin.vim +++ b/src/testdir/test_vim9_builtin.vim @@ -1898,6 +1898,46 @@ enddef def Test_getscriptinfo() v9.CheckDefAndScriptFailure(['getscriptinfo("x")'], ['E1013: Argument 1: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 1']) + + var lines1 =<< trim END + vim9script + g:loaded_script_id = expand("<SID>") + var XscriptVar = [1, {v: 2}] + func XgetScriptVar() + return XscriptVar + endfunc + func Xscript_legacy_func1() + endfunc + def Xscript_def_func1() + enddef + func g:Xscript_legacy_func2() + endfunc + def g:Xscript_def_func2() + enddef + END + writefile(lines1, 'X22script92') + + var lines2 =<< trim END + source X22script92 + var sid = matchstr(g:loaded_script_id, '<SNR>\zs\d\+\ze_')->str2nr() + + var l = getscriptinfo({sid: sid, name: 'ignored'}) + assert_match('X22script92$', l[0].name) + assert_equal(g:loaded_script_id, $"<SNR>{l[0].sid}_") + assert_equal(999999, l[0].version) + assert_equal(0, l[0].sourced) + assert_equal({XscriptVar: [1, {v: 2}]}, l[0].variables) + var funcs = ['Xscript_legacy_func2', + $"<SNR>{sid}_Xscript_legacy_func1", + $"<SNR>{sid}_Xscript_def_func1", + 'Xscript_def_func2', + $"<SNR>{sid}_XgetScriptVar"] + for f in funcs + assert_true(index(l[0].functions, f) != -1) + endfor + END + v9.CheckDefAndScriptSuccess(lines2) + delete('X22script92') enddef def Test_gettabinfo() |