neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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:
Mruntime/lua/vim/_editor.lua | 5+++++
Mtest/functional/lua/command_line_completion_spec.lua | 8++++++++
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( {{