123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- From cad0c71adc30ca4d358cec3146495b340b2e068e Mon Sep 17 00:00:00 2001
- From: Tronikel <contactdonatas@gmail.com>
- Date: Tue, 15 Jul 2025 18:18:50 +0300
- Subject: [PATCH] fix: close floating preview window correctly
- ---
- runtime/lua/vim/lsp/util.lua | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
- diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
- index db221ddc6889e6..28d00d6cd307f2 100644
- --- a/runtime/lua/vim/lsp/util.lua
- +++ b/runtime/lua/vim/lsp/util.lua
- @@ -1418,9 +1418,10 @@ end
- ---
- ---@param events table list of events
- ---@param winnr integer window id of preview window
- ----@param bufnrs table list of buffers where the preview window will remain visible
- +---@param floating_bufnr integer floating preview buffer
- +---@param bufnr integer buffer that opened the floating preview buffer
- ---@see autocmd-events
- -local function close_preview_autocmd(events, winnr, bufnrs)
- +local function close_preview_autocmd(events, winnr, floating_bufnr, bufnr)
- local augroup = api.nvim_create_augroup('nvim.preview_window_' .. winnr, {
- clear = true,
- })
- @@ -1429,13 +1430,13 @@ local function close_preview_autocmd(events, winnr, bufnrs)
- -- the floating window buffer or the buffer that spawned it
- api.nvim_create_autocmd('BufLeave', {
- group = augroup,
- - buffer = bufnrs[1],
- + buffer = bufnr,
- callback = function()
- vim.schedule(function()
- -- When jumping to the quickfix window from the preview window,
- -- do not close the preview window.
- if api.nvim_get_option_value('filetype', { buf = 0 }) ~= 'qf' then
- - close_preview_window(winnr, bufnrs)
- + close_preview_window(winnr, { floating_bufnr, bufnr })
- end
- end)
- end,
- @@ -1444,7 +1445,7 @@ local function close_preview_autocmd(events, winnr, bufnrs)
- if #events > 0 then
- api.nvim_create_autocmd(events, {
- group = augroup,
- - buffer = bufnrs[2],
- + buffer = bufnr,
- callback = function()
- close_preview_window(winnr)
- end,
- @@ -1690,7 +1691,7 @@ function M.open_floating_preview(contents, syntax, opts)
- '<cmd>bdelete<cr>',
- { silent = true, noremap = true, nowait = true }
- )
- - close_preview_autocmd(opts.close_events, floating_winnr, { floating_bufnr, bufnr })
- + close_preview_autocmd(opts.close_events, floating_winnr, floating_bufnr, bufnr)
-
- -- save focus_id
- if opts.focus_id then
|