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", {
|
api.nvim_create_autocmd("WinResized", {
|
||||||
group = floating_win.augroup,
|
group = floating_win.augroup,
|
||||||
callback = function()
|
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
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -113,7 +118,12 @@ function FloatingWindow.from_split_win(split_winid, opts)
|
|||||||
api.nvim_create_autocmd("WinResized", {
|
api.nvim_create_autocmd("WinResized", {
|
||||||
group = floating_win.augroup,
|
group = floating_win.augroup,
|
||||||
callback = function()
|
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
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ function Sidebar:close()
|
|||||||
comp:unmount()
|
comp:unmount()
|
||||||
end
|
end
|
||||||
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)
|
fn.win_gotoid(self.code.winid)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -589,7 +589,7 @@ function Sidebar:on_mount()
|
|||||||
api.nvim_create_autocmd("User", {
|
api.nvim_create_autocmd("User", {
|
||||||
pattern = VIEW_BUFFER_UPDATED_PATTERN,
|
pattern = VIEW_BUFFER_UPDATED_PATTERN,
|
||||||
callback = function()
|
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
|
return
|
||||||
end
|
end
|
||||||
codeblocks = parse_codeblocks(self.result.bufnr)
|
codeblocks = parse_codeblocks(self.result.bufnr)
|
||||||
@ -775,8 +775,9 @@ function Sidebar:refresh_winids()
|
|||||||
else
|
else
|
||||||
current_idx = current_idx + 1
|
current_idx = current_idx + 1
|
||||||
end
|
end
|
||||||
if api.nvim_win_is_valid(winids[current_idx]) then
|
local winid = winids[current_idx]
|
||||||
api.nvim_set_current_win(winids[current_idx])
|
if winid and api.nvim_win_is_valid(winid) then
|
||||||
|
api.nvim_set_current_win(winid)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -788,8 +789,9 @@ function Sidebar:refresh_winids()
|
|||||||
else
|
else
|
||||||
current_idx = current_idx - 1
|
current_idx = current_idx - 1
|
||||||
end
|
end
|
||||||
if api.nvim_win_is_valid(winids[current_idx]) then
|
local winid = winids[current_idx]
|
||||||
api.nvim_set_current_win(winids[current_idx])
|
if winid and api.nvim_win_is_valid(winid) then
|
||||||
|
api.nvim_set_current_win(winid)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1265,6 +1267,9 @@ function Sidebar:create_input()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
local function on_submit()
|
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 lines = api.nvim_buf_get_lines(self.input.bufnr, 0, -1, false)
|
||||||
local request = table.concat(lines, "\n")
|
local request = table.concat(lines, "\n")
|
||||||
if request == "" then
|
if request == "" then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user