diff options
author | Famiu Haque <famiuhaque@protonmail.com> | 2022-11-07 22:27:37 +0600 |
---|---|---|
committer | Famiu Haque <famiuhaque@protonmail.com> | 2022-11-07 22:27:37 +0600 |
commit | c022140ec6a66402e405152054b6ab0141940419 (patch) | |
tree | fbc4603337fde297b580ad892457650a3fd33fc8 /src/nvim/lua/executor.c | |
parent | e9c1cb71f8a4d6d7818dcb5f71ac78bee431309a (diff) | |
download | rneovim-c022140ec6a66402e405152054b6ab0141940419.tar.gz rneovim-c022140ec6a66402e405152054b6ab0141940419.tar.bz2 rneovim-c022140ec6a66402e405152054b6ab0141940419.zip |
feat(api): add command name to Lua command callback opts
Adds a `name` key to the opts dict passed to Lua command callbacks
created using `nvim_create_user_command()`. This is useful for when
multiple commands use the same callback.
Note that this kind of behavior is not as strange as one might think,
even some internal Neovim commands reuse the same internal C function,
differing their behavior by checking the command name. `substitute`,
`smagic` and `snomagic` are examples of that.
This will also be useful for generalized Lua command preview functions
that can preview a wide range of commands, in which case knowing the
command name is necessary for the preview function to actually be able
to execute the command that it's supposed to preview.
Diffstat (limited to 'src/nvim/lua/executor.c')
-rw-r--r-- | src/nvim/lua/executor.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/nvim/lua/executor.c b/src/nvim/lua/executor.c index 9d63fe55f9..9cb42a81d3 100644 --- a/src/nvim/lua/executor.c +++ b/src/nvim/lua/executor.c @@ -1985,6 +1985,9 @@ int nlua_do_ucmd(ucmd_T *cmd, exarg_T *eap, bool preview) nlua_pushref(lstate, preview ? cmd->uc_preview_luaref : cmd->uc_luaref); lua_newtable(lstate); + lua_pushstring(lstate, cmd->uc_name); + lua_setfield(lstate, -2, "name"); + lua_pushboolean(lstate, eap->forceit == 1); lua_setfield(lstate, -2, "bang"); |