diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index a4c8f353..45c89c4a 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -7,9 +7,7 @@ local map = LazyVim.safe_keymap_set -- Clear search and stop snippet on escape Snacks.util.on_key("", function() vim.cmd("noh") - if vim.snippet then - vim.snippet.stop() - end + LazyVim.cmp.actions.snippet_stop() end) -- better up/down diff --git a/lua/lazyvim/plugins/extras/coding/luasnip.lua b/lua/lazyvim/plugins/extras/coding/luasnip.lua index f0f815b4..6b16ba90 100644 --- a/lua/lazyvim/plugins/extras/coding/luasnip.lua +++ b/lua/lazyvim/plugins/extras/coding/luasnip.lua @@ -34,6 +34,12 @@ return { return true end end + LazyVim.cmp.actions.snippet_stop = function() + if require("luasnip").expand_or_jumpable() then -- or just jumpable(1) is fine? + require("luasnip").unlink_current() + return true + end + end end, }, diff --git a/lua/lazyvim/util/cmp.lua b/lua/lazyvim/util/cmp.lua index 34bb44c4..0641c892 100644 --- a/lua/lazyvim/util/cmp.lua +++ b/lua/lazyvim/util/cmp.lua @@ -13,6 +13,11 @@ M.actions = { return true end end, + snippet_stop = function() + if vim.snippet then + vim.snippet.stop() + end + end, } ---@param actions string[]