fix: don't take over the preview window until it's opened for oil (#532)

This commit is contained in:
Gustavo Sampaio 2024-12-21 01:15:47 -03:00 committed by GitHub
parent dba0375988
commit 78ab7ca107
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 3 deletions

View file

@ -454,7 +454,7 @@ M.open_preview = function(opts, callback)
end
end
local preview_win = util.get_preview_win()
local preview_win = util.get_preview_win({ include_not_owned = true })
local prev_win = vim.api.nvim_get_current_win()
local bufnr = vim.api.nvim_get_current_buf()
@ -501,6 +501,7 @@ M.open_preview = function(opts, callback)
preview_win = vim.api.nvim_open_win(bufnr, true, win_opts)
vim.api.nvim_set_option_value("previewwindow", true, { scope = "local", win = preview_win })
vim.api.nvim_win_set_var(preview_win, "oil_preview", true)
vim.api.nvim_set_current_win(prev_win)
elseif vim.fn.has("nvim-0.9") == 1 then
vim.api.nvim_win_set_config(preview_win, { title = entry_title })
@ -568,6 +569,7 @@ M.open_preview = function(opts, callback)
end
vim.api.nvim_set_option_value("previewwindow", true, { scope = "local", win = 0 })
vim.api.nvim_win_set_var(0, "oil_preview", true)
for k, v in pairs(config.preview_win.win_options) do
vim.api.nvim_set_option_value(k, v, { scope = "local", win = preview_win })
end

View file

@ -668,10 +668,17 @@ M.hack_around_termopen_autocmd = function(prev_mode)
end, 10)
end
---@param opts? {include_not_owned?: boolean}
---@return nil|integer
M.get_preview_win = function()
M.get_preview_win = function(opts)
opts = opts or {}
for _, winid in ipairs(vim.api.nvim_tabpage_list_wins(0)) do
if vim.api.nvim_win_is_valid(winid) and vim.wo[winid].previewwindow then
if
vim.api.nvim_win_is_valid(winid)
and vim.wo[winid].previewwindow
and (opts.include_not_owned or vim.w[winid]["oil_preview"])
then
return winid
end
end