committed by
GitHub
parent
6b7b1b34fa
commit
d9aaa2f985
@@ -130,16 +130,31 @@ local function open_window()
|
|||||||
set_window_options_and_buffer()
|
set_window_options_and_buffer()
|
||||||
end
|
end
|
||||||
|
|
||||||
local function get_existing_buffers()
|
local function is_buf_displayed(buf)
|
||||||
return vim.tbl_filter(function(buf)
|
return a.nvim_buf_is_valid(buf) and vim.fn.buflisted(buf) == 1
|
||||||
return a.nvim_buf_is_valid(buf) and vim.fn.buflisted(buf) == 1
|
end
|
||||||
end, a.nvim_list_bufs())
|
|
||||||
|
local function get_alt_or_next_buf()
|
||||||
|
local alt_buf = vim.fn.bufnr "#"
|
||||||
|
if is_buf_displayed(alt_buf) then
|
||||||
|
return alt_buf
|
||||||
|
end
|
||||||
|
|
||||||
|
local next_buf = nil
|
||||||
|
for _, buf in ipairs(a.nvim_list_bufs()) do
|
||||||
|
if is_buf_displayed(buf) then
|
||||||
|
next_buf = next_buf or buf
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return next_buf
|
||||||
end
|
end
|
||||||
|
|
||||||
local function switch_buf_if_last_buf()
|
local function switch_buf_if_last_buf()
|
||||||
if #a.nvim_list_wins() == 1 then
|
if #a.nvim_list_wins() == 1 then
|
||||||
if #get_existing_buffers() > 0 then
|
local buf = get_alt_or_next_buf()
|
||||||
vim.cmd "sbnext"
|
if buf then
|
||||||
|
vim.cmd("sb" .. buf)
|
||||||
else
|
else
|
||||||
vim.cmd "new"
|
vim.cmd "new"
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user