diff --git a/lua/avante/floating_window.lua b/lua/avante/floating_window.lua index edbc271..651a3c2 100644 --- a/lua/avante/floating_window.lua +++ b/lua/avante/floating_window.lua @@ -91,7 +91,12 @@ function FloatingWindow.from_split_win(split_winid, opts) api.nvim_create_autocmd("WinResized", { group = floating_win.augroup, callback = function() - if not api.nvim_win_is_valid(split_winid) or not api.nvim_win_is_valid(winid) then + if + not split_winid + or not winid + or not api.nvim_win_is_valid(split_winid) + or not api.nvim_win_is_valid(winid) + then return end @@ -113,7 +118,12 @@ function FloatingWindow.from_split_win(split_winid, opts) api.nvim_create_autocmd("WinResized", { group = floating_win.augroup, callback = function() - if not api.nvim_win_is_valid(split_winid) or not api.nvim_win_is_valid(winid) then + if + not split_winid + or not winid + or not api.nvim_win_is_valid(split_winid) + or not api.nvim_win_is_valid(winid) + then return end diff --git a/lua/avante/sidebar.lua b/lua/avante/sidebar.lua index c3ab83f..9f782ae 100644 --- a/lua/avante/sidebar.lua +++ b/lua/avante/sidebar.lua @@ -106,7 +106,7 @@ function Sidebar:close() comp:unmount() end end - if self.code ~= nil and api.nvim_win_is_valid(self.code.winid) then + if self.code and self.code.winid and api.nvim_win_is_valid(self.code.winid) then fn.win_gotoid(self.code.winid) end @@ -589,7 +589,7 @@ function Sidebar:on_mount() api.nvim_create_autocmd("User", { pattern = VIEW_BUFFER_UPDATED_PATTERN, callback = function() - if self.result == nil then + if not self.result or not self.result.bufnr or not api.nvim_buf_is_valid(self.result.bufnr) then return end codeblocks = parse_codeblocks(self.result.bufnr) @@ -775,8 +775,9 @@ function Sidebar:refresh_winids() else current_idx = current_idx + 1 end - if api.nvim_win_is_valid(winids[current_idx]) then - api.nvim_set_current_win(winids[current_idx]) + local winid = winids[current_idx] + if winid and api.nvim_win_is_valid(winid) then + api.nvim_set_current_win(winid) end end @@ -788,8 +789,9 @@ function Sidebar:refresh_winids() else current_idx = current_idx - 1 end - if api.nvim_win_is_valid(winids[current_idx]) then - api.nvim_set_current_win(winids[current_idx]) + local winid = winids[current_idx] + if winid and api.nvim_win_is_valid(winid) then + api.nvim_set_current_win(winid) end end @@ -1265,6 +1267,9 @@ function Sidebar:create_input() end) local function on_submit() + if not self.input or not self.input.bufnr or not api.nvim_buf_is_valid(self.input.bufnr) then + return + end local lines = api.nvim_buf_get_lines(self.input.bufnr, 0, -1, false) local request = table.concat(lines, "\n") if request == "" then