fix: do not use invalid bufnr and winid (#236)
* fix: do not use invalid buf * fix: do not use invalid win
This commit is contained in:
parent
0769cef291
commit
8cd87ac5de
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user