mirror of
https://github.com/neovim/neovim.git
synced 2025-11-30 22:20:42 +00:00
feat(lua): show proper verbose output for lua configuration
`:verbose` didn't work properly with lua configs (For example:
options or keymaps are set from lua, just say that they were set
from lua, doesn't say where they were set at.
This fixes that issue. Now `:verbose` will provide filename and line no
when option/keymap is set from lua.
Changes:
- compiles lua/vim/keymap.lua as vim/keymap.lua
- When souring a lua file current_sctx.sc_sid is set to SID_LUA
- Moved finding scripts SID out of `do_source()` to `get_current_script_id()`.
So it can be reused for lua files.
- Added new function `nlua_get_sctx` that extracts current lua scripts
name and line no with debug library. And creates a sctx for it.
NOTE: This function ignores C functions and blacklist which
currently contains only vim/_meta.lua so vim.o/opt wrappers aren't
targeted.
- Added function `nlua_set_sctx` that changes provided sctx to current
lua scripts sctx if a lua file is being executed.
- Added tests in tests/functional/lua/verbose_spec.lua
- add primary support for additional types (:autocmd, :function, :syntax) to lua verbose
Note: These can't yet be directly set from lua but once that's possible
:verbose should work for them hopefully :D
- add :verbose support for nvim_exec & nvim_command within lua
Currently auto commands/commands/functions ... can only be defined
by nvim_exec/nvim_command this adds support for them. Means if those
Are defined within lua with vim.cmd/nvim_exec :verbose will show their
location . Though note it'll show the line no on which nvim_exec call was made.
This commit is contained in:
@@ -1586,6 +1586,7 @@ ArrayOf(Dictionary) nvim_get_keymap(uint64_t channel_id, String mode)
|
||||
/// nmap <nowait> <Space><NL> <Nop>
|
||||
/// </pre>
|
||||
///
|
||||
/// @param channel_id
|
||||
/// @param mode Mode short-name (map command prefix: "n", "i", "v", "x", …)
|
||||
/// or "!" for |:map!|, or empty string for |:map|.
|
||||
/// @param lhs Left-hand-side |{lhs}| of the mapping.
|
||||
@@ -1597,10 +1598,11 @@ ArrayOf(Dictionary) nvim_get_keymap(uint64_t channel_id, String mode)
|
||||
/// a Lua function to call when the mapping is executed.
|
||||
/// Values are Booleans. Unknown key is an error.
|
||||
/// @param[out] err Error details, if any.
|
||||
void nvim_set_keymap(String mode, String lhs, String rhs, Dict(keymap) *opts, Error *err)
|
||||
void nvim_set_keymap(uint64_t channel_id, String mode, String lhs, String rhs, Dict(keymap) *opts,
|
||||
Error *err)
|
||||
FUNC_API_SINCE(6)
|
||||
{
|
||||
modify_keymap(-1, false, mode, lhs, rhs, opts, err);
|
||||
modify_keymap(channel_id, -1, false, mode, lhs, rhs, opts, err);
|
||||
}
|
||||
|
||||
/// Unmaps a global |mapping| for the given mode.
|
||||
@@ -1608,10 +1610,10 @@ void nvim_set_keymap(String mode, String lhs, String rhs, Dict(keymap) *opts, Er
|
||||
/// To unmap a buffer-local mapping, use |nvim_buf_del_keymap()|.
|
||||
///
|
||||
/// @see |nvim_set_keymap()|
|
||||
void nvim_del_keymap(String mode, String lhs, Error *err)
|
||||
void nvim_del_keymap(uint64_t channel_id, String mode, String lhs, Error *err)
|
||||
FUNC_API_SINCE(6)
|
||||
{
|
||||
nvim_buf_del_keymap(-1, mode, lhs, err);
|
||||
nvim_buf_del_keymap(channel_id, -1, mode, lhs, err);
|
||||
}
|
||||
|
||||
/// Gets a map of global (non-buffer-local) Ex commands.
|
||||
|
||||
Reference in New Issue
Block a user