From 5fe7dc1eea795a7fceea8530c24ffec91003a269 Mon Sep 17 00:00:00 2001 From: hrsh7th Date: Sat, 16 Oct 2021 12:16:37 +0900 Subject: [PATCH] Fix #348 Fix #254 --- lua/cmp/utils/keymap.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lua/cmp/utils/keymap.lua b/lua/cmp/utils/keymap.lua index f70724d..ad7269b 100644 --- a/lua/cmp/utils/keymap.lua +++ b/lua/cmp/utils/keymap.lua @@ -139,8 +139,13 @@ keymap.listen = setmetatable({ __call = function(self, mode, keys, callback) keys = keymap.to_keymap(keys) + local bufnr = vim.api.nvim_get_current_buf() local existing = keymap.find_map_by_lhs(mode, keys) - if string.match(existing.rhs, '^.*' .. vim.pesc('v:lua.cmp.utils.keymap.listen.run') .. '.*$') then + + local done = true + done = done and string.match(existing.rhs, vim.pesc('v:lua.cmp.utils.keymap.listen.run')) + done = done and self.cache:get({ mode, bufnr, keys }) ~= nil + if done then return end @@ -152,7 +157,6 @@ keymap.listen = setmetatable({ nowait = true, }) - local bufnr = vim.api.nvim_get_current_buf() self.cache:set({ mode, bufnr, keys }, { mode = mode, callback = callback,