@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user