feat: delete preview buffers #1145 (#1149)

This commit is contained in:
Michael
2022-04-10 18:23:37 +03:00
committed by GitHub
parent d5e4f0655b
commit 6e0e70b1ca

View File

@@ -194,6 +194,15 @@ function M.fn(mode, filename)
local do_split = mode == "split" or mode == "vsplit" local do_split = mode == "split" or mode == "vsplit"
local vertical = mode ~= "split" local vertical = mode ~= "split"
-- Check if file is already loaded in a buffer
local buf_loaded = false
for _, buf_id in ipairs(api.nvim_list_bufs()) do
if api.nvim_buf_is_loaded(buf_id) and filename == api.nvim_buf_get_name(buf_id) then
buf_loaded = true
break
end
end
-- Check if filename is already open in a window -- Check if filename is already open in a window
local found = false local found = false
for _, id in ipairs(win_ids) do for _, id in ipairs(win_ids) do
@@ -245,6 +254,16 @@ function M.fn(mode, filename)
end end
if mode == "preview" then if mode == "preview" then
if not buf_loaded then
vim.bo.bufhidden = "delete"
vim.cmd [[
augroup RemoveBufHidden
autocmd!
autocmd TextChanged <buffer> setlocal bufhidden= | autocmd! RemoveBufHidden
autocmd TextChangedI <buffer> setlocal bufhidden= | autocmd! RemoveBufHidden
augroup end
]]
end
view.focus() view.focus()
return return
end end