mirror of
https://github.com/neovim/neovim.git
synced 2025-12-16 03:15:39 +00:00
feat(lua): omnifunc for builting lua interpreter
also make implicit submodules "uri" and "_inspector" work with completion this is needed for `:lua=vim.uri_<tab>` wildmenu completion to work even before uri or _inspector functions are used.
This commit is contained in:
@@ -5,7 +5,7 @@ local eq = helpers.eq
|
||||
local exec_lua = helpers.exec_lua
|
||||
|
||||
local get_completions = function(input, env)
|
||||
return exec_lua("return {vim._expand_pat(...)}", '^' .. input, env)
|
||||
return exec_lua("return {vim._expand_pat(...)}", input, env)
|
||||
end
|
||||
|
||||
local get_compl_parts = function(parts)
|
||||
@@ -107,9 +107,12 @@ describe('nlua_expand_pat', function()
|
||||
end)
|
||||
|
||||
it('should work with lazy submodules of "vim" global', function()
|
||||
eq({{ 'inspect' }, 4 },
|
||||
eq({{ 'inspect', 'inspect_pos' }, 4 },
|
||||
get_completions('vim.inspec'))
|
||||
|
||||
eq({{ 'treesitter' }, 4 },
|
||||
get_completions('vim.treesi'))
|
||||
|
||||
eq({{ 'set' }, 11 },
|
||||
get_completions('vim.keymap.se'))
|
||||
end)
|
||||
|
||||
@@ -2900,6 +2900,29 @@ describe('lua stdlib', function()
|
||||
end)
|
||||
end)
|
||||
|
||||
it('vim.lua_omnifunc', function()
|
||||
local screen = Screen.new(60,5)
|
||||
screen:set_default_attr_ids {
|
||||
[1] = {foreground = Screen.colors.Blue1, bold = true};
|
||||
[2] = {background = Screen.colors.WebGray};
|
||||
[3] = {background = Screen.colors.LightMagenta};
|
||||
[4] = {bold = true};
|
||||
[5] = {foreground = Screen.colors.SeaGreen, bold = true};
|
||||
}
|
||||
screen:attach()
|
||||
command [[ set omnifunc=v:lua.vim.lua_omnifunc ]]
|
||||
|
||||
-- Note: the implementation is shared with lua command line completion.
|
||||
-- More tests for completion in lua/command_line_completion_spec.lua
|
||||
feed [[ivim.insp<c-x><c-o>]]
|
||||
screen:expect{grid=[[
|
||||
vim.inspect^ |
|
||||
{1:~ }{2: inspect }{1: }|
|
||||
{1:~ }{3: inspect_pos }{1: }|
|
||||
{1:~ }|
|
||||
{4:-- Omni completion (^O^N^P) }{5:match 1 of 2} |
|
||||
]]}
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('lua: builtin modules', function()
|
||||
|
||||
Reference in New Issue
Block a user