From 5a708b199e9d487dd407ec3207e71b863371ad0d Mon Sep 17 00:00:00 2001 From: "Jan Winkelmann (keks)" Date: Wed, 7 Feb 2024 18:39:04 +0100 Subject: [PATCH] use the more sane snippet session logic --- lua/lazyvim/config/autocmds.lua | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lua/lazyvim/config/autocmds.lua b/lua/lazyvim/config/autocmds.lua index 8e09ac0e..178ecbf1 100644 --- a/lua/lazyvim/config/autocmds.lua +++ b/lua/lazyvim/config/autocmds.lua @@ -105,3 +105,17 @@ vim.api.nvim_create_autocmd({ "BufWritePre" }, { vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p") end, }) + +-- Use the more sane snippet session leave logic. Copied from: +-- https://github.com/L3MON4D3/LuaSnip/issues/258#issuecomment-1429989436 +vim.api.nvim_create_autocmd('ModeChanged', { + pattern = '*', + callback = function() + if ((vim.v.event.old_mode == 's' and vim.v.event.new_mode == 'n') or vim.v.event.old_mode == 'i') + and require('luasnip').session.current_nodes[vim.api.nvim_get_current_buf()] + and not require('luasnip').session.jump_active + then + require('luasnip').unlink_current() + end + end +})