diff options
| author | b-r-o-c-k <brockmammen@gmail.com> | 2018-04-29 21:02:17 -0500 |
|---|---|---|
| committer | b-r-o-c-k <brockmammen@gmail.com> | 2018-05-03 21:05:20 -0500 |
| commit | 7170de19714acd5efa6979ef94de2a29e41d6173 (patch) | |
| tree | aef99101c9b9926704fdc0ec59ee7102af26631e /src/nvim/ex_cmds2.c | |
| parent | 4744142fad9209a1adaa190b9bf16ddcbcb67ca9 (diff) | |
| download | rneovim-7170de19714acd5efa6979ef94de2a29e41d6173.tar.gz rneovim-7170de19714acd5efa6979ef94de2a29e41d6173.tar.bz2 rneovim-7170de19714acd5efa6979ef94de2a29e41d6173.zip | |
api: Make nvim_set_option() update `:verbose set ...`
Make `:verbose set ...` show when an option was last modified by an
API client or Lua script/chunk. In the case of an API client, the
channel ID is displayed.
Diffstat (limited to 'src/nvim/ex_cmds2.c')
| -rw-r--r-- | src/nvim/ex_cmds2.c | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index 821c050c50..96d2102156 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -3055,24 +3055,32 @@ void scriptnames_slash_adjust(void) # endif /// Get a pointer to a script name. Used for ":verbose set". -char_u *get_scriptname(scid_T id) -{ - if (id == SID_MODELINE) { - return (char_u *)_("modeline"); - } - if (id == SID_CMDARG) { - return (char_u *)_("--cmd argument"); - } - if (id == SID_CARG) { - return (char_u *)_("-c argument"); - } - if (id == SID_ENV) { - return (char_u *)_("environment variable"); - } - if (id == SID_ERROR) { - return (char_u *)_("error handler"); +char_u *get_scriptname(LastSet last_set, bool *should_free) +{ + *should_free = false; + + switch (last_set.script_id) { + case SID_MODELINE: + return (char_u *)_("modeline"); + case SID_CMDARG: + return (char_u *)_("--cmd argument"); + case SID_CARG: + return (char_u *)_("-c argument"); + case SID_ENV: + return (char_u *)_("environment variable"); + case SID_ERROR: + return (char_u *)_("error handler"); + case SID_LUA: + return (char_u *)_("Lua"); + case SID_API_CLIENT: + vim_snprintf((char *)IObuff, IOSIZE, + _("API client (channel id %" PRIu64 ")"), + last_set.channel_id); + return IObuff; + default: + *should_free = true; + return home_replace_save(NULL, SCRIPT_ITEM(last_set.script_id).sn_name); } - return SCRIPT_ITEM(id).sn_name; } # if defined(EXITFREE) |