From f831dbc1072b4b5de50ec808f7a33688aebf5249 Mon Sep 17 00:00:00 2001 From: hrsh7th Date: Mon, 8 Nov 2021 20:38:08 +0900 Subject: [PATCH] strict mapping handling --- lua/cmp/utils/feedkeys.lua | 2 ++ lua/cmp/utils/keymap.lua | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lua/cmp/utils/feedkeys.lua b/lua/cmp/utils/feedkeys.lua index cf0129f..30a3fa7 100644 --- a/lua/cmp/utils/feedkeys.lua +++ b/lua/cmp/utils/feedkeys.lua @@ -22,6 +22,7 @@ feedkeys.call = setmetatable({ table.insert(queue, { keymap.t('set %slazyredraw'):format(vim.o.lazyredraw and '' or 'no'), 'n' }) table.insert(queue, { keymap.t('set eventignore=%s'):format(vim.o.eventignore or ''), 'n' }) end + if callback then local id = misc.id('cmp.utils.feedkeys.call') self.callbacks[id] = callback @@ -37,6 +38,7 @@ feedkeys.call = setmetatable({ vim.api.nvim_feedkeys(queue[i][1], queue[i][2], queue[i][3]) end end + if is_immediate then vim.api.nvim_feedkeys('', 'x', true) end diff --git a/lua/cmp/utils/keymap.lua b/lua/cmp/utils/keymap.lua index 981f523..489275a 100644 --- a/lua/cmp/utils/keymap.lua +++ b/lua/cmp/utils/keymap.lua @@ -16,7 +16,7 @@ end keymap.normalize = function(keys) vim.api.nvim_set_keymap('t', '(cmp.utils.keymap.normalize)', keys, {}) for _, map in ipairs(vim.api.nvim_get_keymap('t')) do - if map.lhs == '(cmp.utils.keymap.normalize)' then + if keymap.equals(map.lhs, '(cmp.utils.keymap.normalize)') then return map.rhs end end @@ -196,7 +196,7 @@ keymap.evacuate = function(bufnr, mode, lhs) elseif not map.noremap then -- remap & non-expr mapping should be checked if recursive or not. rhs = keymap.recursive(bufnr, mode, lhs, rhs) - if rhs == map.rhs or map.noremap then + if keymap.equals(rhs, map.rhs) or map.noremap then return { keys = rhs, mode = 'it' .. (map.noremap and 'n' or '') } end else