Mercurial > vim
changeset 27213:42561e956a70 v8.2.4135
patch 8.2.4135: Vim9: ":scriptnames" shows unloaded imported autoload script
Commit: https://github.com/vim/vim/commit/6079da7cfb10c798535224c92db7fedd3914cb71
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jan 18 14:16:59 2022 +0000
patch 8.2.4135: Vim9: ":scriptnames" shows unloaded imported autoload script
Problem: Vim9: ":scriptnames" shows unloaded imported autoload script.
Solution: Mark the unloaded script with "A". (closes https://github.com/vim/vim/issues/9552)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 18 Jan 2022 15:30:04 +0100 |
parents | ceba1e0d0210 |
children | c2954285f431 |
files | runtime/doc/repeat.txt src/scriptfile.c src/testdir/test_vim9_import.vim src/version.c |
diffstat | 4 files changed, 17 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -380,6 +380,9 @@ For writing a Vim script, see chapter 41 :scr[iptnames] List all sourced script names, in the order they were first sourced. The number is used for the script ID |<SID>|. + For a script that was used with `import autoload` but + was not actually sourced yet an "A" is shown after the + script ID. {not available when compiled without the |+eval| feature}
--- a/src/scriptfile.c +++ b/src/scriptfile.c @@ -1648,16 +1648,22 @@ ex_scriptnames(exarg_T *eap) } for (i = 1; i <= script_items.ga_len && !got_int; ++i) - if (SCRIPT_ITEM(i)->sn_name != NULL) + { + scriptitem_T *si = SCRIPT_ITEM(i); + + if (si->sn_name != NULL) { - home_replace(NULL, SCRIPT_ITEM(i)->sn_name, - NameBuff, MAXPATHL, TRUE); - vim_snprintf((char *)IObuff, IOSIZE, "%3d: %s", i, NameBuff); + home_replace(NULL, si->sn_name, NameBuff, MAXPATHL, TRUE); + vim_snprintf((char *)IObuff, IOSIZE, "%3d%s: %s", + i, + si->sn_state == SN_STATE_NOT_LOADED ? " A" : "", + NameBuff); msg_putchar('\n'); msg_outtrans(IObuff); out_flush(); // output one line at a time ui_breakcheck(); } + } } # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
--- a/src/testdir/test_vim9_import.vim +++ b/src/testdir/test_vim9_import.vim @@ -1397,10 +1397,12 @@ def Test_autoload_mapping() CheckScriptSuccess(lines) assert_false(exists("g:toggle_loaded")) assert_false(exists("g:toggle_called")) + assert_match('\d A: \f*[/\\]toggle.vim', execute('scriptnames')) feedkeys("tt", 'xt') assert_equal('yes', g:toggle_loaded) assert_equal('yes', g:toggle_called) + assert_match('\d: \f*[/\\]toggle.vim', execute('scriptnames')) feedkeys("xx", 'xt') assert_equal('yes', g:doit_called)