From 243d5f4a120580ebb171484b5a3fe15d06cf8fae Mon Sep 17 00:00:00 2001 From: hrsh7th Date: Sat, 15 Jan 2022 22:56:01 +0900 Subject: [PATCH] Fix expression resolving timing --- lua/cmp/utils/keymap.lua | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/lua/cmp/utils/keymap.lua b/lua/cmp/utils/keymap.lua index b88c992..e104739 100644 --- a/lua/cmp/utils/keymap.lua +++ b/lua/cmp/utils/keymap.lua @@ -186,18 +186,12 @@ keymap.feed_map = function(map) rhs = keymap.t(map.rhs) end - rhs = keymap.expression(rhs) - - if map.noremap then - vim.api.nvim_feedkeys(rhs, 'itn', true) + if not map.noremap and string.find(rhs, lhs, 1, true) == 1 then + rhs = string.gsub(rhs, '^' .. vim.pesc(lhs), '') + vim.api.nvim_feedkeys(keymap.expression(rhs), 'itm', true) + vim.api.nvim_feedkeys(lhs, 'itn', true) else - if string.find(rhs, lhs, 1, true) == 1 then - rhs = string.gsub(rhs, '^' .. vim.pesc(lhs), '') - vim.api.nvim_feedkeys(rhs, 'itm', true) - vim.api.nvim_feedkeys(lhs, 'itn', true) - else - vim.api.nvim_feedkeys(rhs, 'itm', true) - end + vim.api.nvim_feedkeys(keymap.expression(rhs), 'it' .. (map.noremap and 'n' or 'm'), true) end end