diff --git a/.config/nvim/lua/config/autocmds.lua b/.config/nvim/lua/config/autocmds.lua index cdc6361c..df99c3b3 100644 --- a/.config/nvim/lua/config/autocmds.lua +++ b/.config/nvim/lua/config/autocmds.lua @@ -90,6 +90,22 @@ au({ "BufNewFile", "BufRead" }, { vim.diagnostic.disable(0) end, }) + +-- Use the more sane snippet session leave logic. Copied from: +-- https://github.com/L3MON4D3/LuaSnip/issues/258#issuecomment-1429989436 +au("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, +}) + local numbertoggle = ag("numbertoggle", { clear = true }) -- Toggle between relative/absolute line numbers au({ "BufEnter", "FocusGained", "InsertLeave", "CmdlineLeave", "WinEnter" }, {