fix: don't take over the preview window until it's opened for oil (#532)
This commit is contained in:
parent
dba0375988
commit
78ab7ca107
2 changed files with 12 additions and 3 deletions
|
|
@ -454,7 +454,7 @@ M.open_preview = function(opts, callback)
|
||||||
end
|
end
|
||||||
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 prev_win = vim.api.nvim_get_current_win()
|
||||||
local bufnr = vim.api.nvim_get_current_buf()
|
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)
|
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_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)
|
vim.api.nvim_set_current_win(prev_win)
|
||||||
elseif vim.fn.has("nvim-0.9") == 1 then
|
elseif vim.fn.has("nvim-0.9") == 1 then
|
||||||
vim.api.nvim_win_set_config(preview_win, { title = entry_title })
|
vim.api.nvim_win_set_config(preview_win, { title = entry_title })
|
||||||
|
|
@ -568,6 +569,7 @@ M.open_preview = function(opts, callback)
|
||||||
end
|
end
|
||||||
|
|
||||||
vim.api.nvim_set_option_value("previewwindow", true, { scope = "local", win = 0 })
|
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
|
for k, v in pairs(config.preview_win.win_options) do
|
||||||
vim.api.nvim_set_option_value(k, v, { scope = "local", win = preview_win })
|
vim.api.nvim_set_option_value(k, v, { scope = "local", win = preview_win })
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -668,10 +668,17 @@ M.hack_around_termopen_autocmd = function(prev_mode)
|
||||||
end, 10)
|
end, 10)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@param opts? {include_not_owned?: boolean}
|
||||||
---@return nil|integer
|
---@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
|
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
|
return winid
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue