aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/lua/vim.lua
diff options
context:
space:
mode:
authorshadmansaleh <13149513+shadmansaleh@users.noreply.github.com>2022-01-08 00:39:44 +0600
committershadmansaleh <13149513+shadmansaleh@users.noreply.github.com>2022-02-28 19:18:49 +0600
commitebfe083337701534887ac3ea3d8e7ad47f7a206a (patch)
tree9d8fb276b07ff3a2309d285d9583f8536d28a78f /src/nvim/lua/vim.lua
parente383543342db8e9dcf40f7d5237edeab29638880 (diff)
downloadrneovim-ebfe083337701534887ac3ea3d8e7ad47f7a206a.tar.gz
rneovim-ebfe083337701534887ac3ea3d8e7ad47f7a206a.tar.bz2
rneovim-ebfe083337701534887ac3ea3d8e7ad47f7a206a.zip
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.
Diffstat (limited to 'src/nvim/lua/vim.lua')
-rw-r--r--src/nvim/lua/vim.lua6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/lua/vim.lua b/src/nvim/lua/vim.lua
index 68de4f960c..c0247ad996 100644
--- a/src/nvim/lua/vim.lua
+++ b/src/nvim/lua/vim.lua
@@ -43,6 +43,9 @@ assert(vim.inspect)
vim.filetype = package.loaded['vim.filetype']
assert(vim.filetype)
+vim.keymap = package.loaded['vim.keymap']
+assert(vim.keymap)
+
-- These are for loading runtime modules lazily since they aren't available in
-- the nvim binary as specified in executor.c
setmetatable(vim, {
@@ -69,9 +72,6 @@ setmetatable(vim, {
elseif key == 'ui' then
t.ui = require('vim.ui')
return t.ui
- elseif key == 'keymap' then
- t.keymap = require('vim.keymap')
- return t.keymap
end
end
})