aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/pack.lua
diff options
context:
space:
mode:
authorEvgeni Chasnovski <evgeni.chasnovski@gmail.com>2026-02-14 15:26:36 +0200
committerGitHub <noreply@github.com>2026-02-14 08:26:36 -0500
commit539b8027a3099399ad362896dc7de0e93e2f5bfa (patch)
treec43dc0f82d1fb0e02ef18279d77535f3e770165f /runtime/lua/vim/pack.lua
parentcadddbff6959a23337d417b000177326abc5a862 (diff)
downloadrneovim-539b8027a3099399ad362896dc7de0e93e2f5bfa.tar.gz
rneovim-539b8027a3099399ad362896dc7de0e93e2f5bfa.tar.bz2
rneovim-539b8027a3099399ad362896dc7de0e93e2f5bfa.zip
fix(pack): explicitly close confirmation window #37861
Problem: Executing `nvim_buf_delete()` does not guarantee that the window which shows the buffer is going to close after `:write` or `:quit`. In particular, if there is no listed buffer present. Solution: Explicitly close the window that was created for confirmation buffer. Use `pcall` to catch cases when the window was already closed or when it is the last window.
Diffstat (limited to 'runtime/lua/vim/pack.lua')
-rw-r--r--runtime/lua/vim/pack.lua1
1 files changed, 1 insertions, 0 deletions
diff --git a/runtime/lua/vim/pack.lua b/runtime/lua/vim/pack.lua
index 3371f66c31..f336a22c7a 100644
--- a/runtime/lua/vim/pack.lua
+++ b/runtime/lua/vim/pack.lua
@@ -1122,6 +1122,7 @@ local function show_confirm_buf(lines, on_finish)
local win_id = api.nvim_get_current_win()
local delete_buffer = vim.schedule_wrap(function()
+ pcall(api.nvim_win_close, win_id, true)
pcall(api.nvim_buf_delete, bufnr, { force = true })
vim.cmd.redraw()
end)