From ca4d3330d386e76967e53b85953c170658255ecb Mon Sep 17 00:00:00 2001 From: Wick Date: Sat, 30 Nov 2024 14:34:44 +0800 Subject: [PATCH] fix: some symbols can't be mapped correctly (#2081) * fix: support , . / symbol binding * test: add keymap test --- lua/cmp/utils/keymap.lua | 4 ++-- lua/cmp/utils/keymap_spec.lua | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lua/cmp/utils/keymap.lua b/lua/cmp/utils/keymap.lua index fa9b4ca1e..d21cf0e81 100644 --- a/lua/cmp/utils/keymap.lua +++ b/lua/cmp/utils/keymap.lua @@ -8,7 +8,7 @@ local keymap = {} ---@param keys string ---@return string keymap.t = function(keys) - return (string.gsub(keys, "(<[A-Za-z0-9\\%-%[%]%^@;,:_']->)", function(match) + return (string.gsub(keys, "(<[A-Za-z0-9\\%-%[%]%^@;,:_'%./]->)", function(match) return vim.api.nvim_eval(string.format([["\%s"]], match)) end)) end @@ -17,7 +17,7 @@ end ---@param keys string ---@return string keymap.normalize = vim.fn.has('nvim-0.8') == 1 and function(keys) - local t = string.gsub(keys, "<([A-Za-z0-9\\%-%[%]%^@;,:_']-)>", function(match) + local t = string.gsub(keys, "<([A-Za-z0-9\\%-%[%]%^@;,:_'%./]-)>", function(match) -- Use the \<* notation, which distinguishes from , etc. return vim.api.nvim_eval(string.format([["\<*%s>"]], match)) end) diff --git a/lua/cmp/utils/keymap_spec.lua b/lua/cmp/utils/keymap_spec.lua index 3d9c35d9e..587d9c6d5 100644 --- a/lua/cmp/utils/keymap_spec.lua +++ b/lua/cmp/utils/keymap_spec.lua @@ -19,6 +19,8 @@ describe('keymap', function() '', '', '', + '', + '', '', "", '',