aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-01-10 20:03:34 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-01-10 21:30:32 +0800
commit42e5fd32b0f551358659e7ea5966c087446fe97a (patch)
tree6b1a8dc48df4d06a45e75beb2dc50bc35a246826
parent8f27c4a0417c001fa2dedb6346673da501ea78e5 (diff)
downloadrneovim-42e5fd32b0f551358659e7ea5966c087446fe97a.tar.gz
rneovim-42e5fd32b0f551358659e7ea5966c087446fe97a.tar.bz2
rneovim-42e5fd32b0f551358659e7ea5966c087446fe97a.zip
fix(completion): prevent K_LUA from closing pum
-rw-r--r--src/nvim/edit.c2
-rw-r--r--test/functional/api/keymap_spec.lua10
2 files changed, 11 insertions, 1 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index 5eef4350b7..aa37d1b2dd 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -3620,7 +3620,7 @@ static bool ins_compl_prep(int c)
// Ignore end of Select mode mapping and mouse scroll buttons.
if (c == K_SELECT || c == K_MOUSEDOWN || c == K_MOUSEUP
|| c == K_MOUSELEFT || c == K_MOUSERIGHT || c == K_EVENT
- || c == K_COMMAND) {
+ || c == K_COMMAND || c == K_LUA) {
return retval;
}
diff --git a/test/functional/api/keymap_spec.lua b/test/functional/api/keymap_spec.lua
index bc2759ade7..450a76ddac 100644
--- a/test/functional/api/keymap_spec.lua
+++ b/test/functional/api/keymap_spec.lua
@@ -820,6 +820,16 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
eq(99, exec_lua[[return SomeValue]])
end)
+ it('does not reset pum in lua mapping', function()
+ eq(0, exec_lua [[
+ VisibleCount = 0
+ vim.api.nvim_set_keymap ('i', '<F2>', '', {callback = function() VisibleCount = VisibleCount + vim.fn.pumvisible() end})
+ return VisibleCount
+ ]])
+ feed('i<C-X><C-V><F2><F2><esc>')
+ eq(2, exec_lua[[return VisibleCount]])
+ end)
+
it('can overwrite lua mappings', function()
eq(0, exec_lua [[
GlobalCount = 0