From 77f000f8a84320c3c1afc1392b5e6b65aad0df93 Mon Sep 17 00:00:00 2001 From: ecal Date: Tue, 8 Apr 2025 07:55:08 -0400 Subject: [PATCH] Close avante sidebar before vimexit (fixes sessions) (#1803) * fix: close avante sidebar before vimexit * [pre-commit.ci lite] apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- lua/avante/init.lua | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lua/avante/init.lua b/lua/avante/init.lua index 20d78b5..7fd1769 100644 --- a/lua/avante/init.lua +++ b/lua/avante/init.lua @@ -232,6 +232,34 @@ function H.autocmds() end, }) + api.nvim_create_autocmd("QuitPre", { + group = H.augroup, + callback = function() + local current_buf = vim.api.nvim_get_current_buf() + if Utils.is_sidebar_buffer(current_buf) then return end + + local non_sidebar_wins = 0 + local sidebar_wins = {} + for _, win in ipairs(vim.api.nvim_list_wins()) do + if vim.api.nvim_win_is_valid(win) then + local win_buf = vim.api.nvim_win_get_buf(win) + if Utils.is_sidebar_buffer(win_buf) then + table.insert(sidebar_wins, win) + else + non_sidebar_wins = non_sidebar_wins + 1 + end + end + end + + if non_sidebar_wins <= 1 then + for _, win in ipairs(sidebar_wins) do + pcall(vim.api.nvim_win_close, win, false) + end + end + end, + nested = true, + }) + api.nvim_create_autocmd("TabClosed", { group = H.augroup, pattern = "*",