diff --git a/lua/avante/init.lua b/lua/avante/init.lua index 4e1fff4..ecb3e20 100644 --- a/lua/avante/init.lua +++ b/lua/avante/init.lua @@ -93,7 +93,7 @@ H.autocmds = function() local s = M.sidebars[tab] local sl = M.selections[tab] if s then - s:destroy() + s:reset() end if sl then sl:delete_autocmds() @@ -177,6 +177,7 @@ M.refresh = function() local curwin = vim.api.nvim_get_current_win() + sidebar:close() sidebar.code.winid = curwin sidebar.code.bufnr = curbuf sidebar:render() diff --git a/lua/avante/selection.lua b/lua/avante/selection.lua index 9bf3cae..7e87ef8 100644 --- a/lua/avante/selection.lua +++ b/lua/avante/selection.lua @@ -65,18 +65,22 @@ function Selection:setup_autocmds() api.nvim_create_autocmd({ "ModeChanged" }, { group = self.augroup, pattern = { "n:v", "n:V", "n:" }, -- Entering Visual mode from Normal mode - callback = function() - self:show_hints_popup() + callback = function(ev) + if vim.bo[ev.buf].filetype ~= "Avante" then + self:show_hints_popup() + end end, }) api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, { group = self.augroup, - callback = function() - if vim.fn.mode() == "v" or vim.fn.mode() == "V" or vim.fn.mode() == "" then - self:show_hints_popup() - else - self:close_hints_popup() + callback = function(ev) + if vim.bo[ev.buf].filetype ~= "Avante" then + if vim.fn.mode() == "v" or vim.fn.mode() == "V" or vim.fn.mode() == "" then + self:show_hints_popup() + else + self:close_hints_popup() + end end end, }) @@ -84,8 +88,10 @@ function Selection:setup_autocmds() api.nvim_create_autocmd({ "ModeChanged" }, { group = self.augroup, pattern = { "v:n", "v:i", "v:c" }, -- Switching from visual mode back to normal, insert, or other modes - callback = function() - self:close_hints_popup() + callback = function(ev) + if vim.bo[ev.buf].filetype ~= "Avante" then + self:close_hints_popup() + end end, }) return self diff --git a/lua/avante/sidebar.lua b/lua/avante/sidebar.lua index c8f3934..7cce5d2 100644 --- a/lua/avante/sidebar.lua +++ b/lua/avante/sidebar.lua @@ -58,11 +58,6 @@ function Sidebar:new(id) }, { __index = self }) end ---- This function should only be used on TabClosed, nothing else. -function Sidebar:destroy() - self:reset() -end - function Sidebar:delete_autocmds() if self.augroup then api.nvim_del_augroup_by_id(self.augroup) @@ -85,13 +80,13 @@ end function Sidebar:open() local in_visual_mode = Utils.in_visual_mode() and self:in_code_win() if not self:is_open() then - self:destroy() + self:reset() self:intialize() self:render() else if in_visual_mode then self:close() - self:destroy() + self:reset() self:intialize() self:render() return self