commit 6170574d2faae4e30f49098e4947075bb0bdd3b5
parent 3a32aa96159ae1fdd0efd55389a4b1c2f92c98f7
Author: bfredl <bjorn.linse@gmail.com>
Date: Thu, 10 Mar 2022 15:46:18 +0100
Merge pull request #17660 from bfredl/luacomplete
feat(lua): handle lazy submodules in `:lua vim.` wildmenu completion
Diffstat:
2 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/runtime/lua/vim/_editor.lua b/runtime/lua/vim/_editor.lua
@@ -519,6 +519,8 @@ function vim._expand_pat(pat, env)
local mt = getmetatable(final_env)
if mt and type(mt.__index) == "table" then
field = rawget(mt.__index, key)
+ elseif final_env == vim and vim._submodules[key] then
+ field = vim[key]
end
end
final_env = field
@@ -545,6 +547,9 @@ function vim._expand_pat(pat, env)
if mt and type(mt.__index) == "table" then
insert_keys(mt.__index)
end
+ if final_env == vim then
+ insert_keys(vim._submodules)
+ end
table.sort(keys)
diff --git a/test/functional/lua/command_line_completion_spec.lua b/test/functional/lua/command_line_completion_spec.lua
@@ -106,6 +106,14 @@ describe('nlua_expand_pat', function()
)
end)
+ it('should work with lazy submodules of "vim" global', function()
+ eq({{ 'inspect' }, 4 },
+ get_completions('vim.inspec'))
+
+ eq({{ 'set' }, 11 },
+ get_completions('vim.keymap.se'))
+ end)
+
it('should be able to interpolate globals', function()
eq(
{{