From 628f8250f83aebaa00d6e4790c28294c4338f70e Mon Sep 17 00:00:00 2001 From: newbieQQ Date: Wed, 17 Jun 2026 16:36:24 +0800 Subject: [PATCH] fix: guard original_bufnr validity on borrowed restore If the user deletes the original empty buffer (:bw!) between hide and restore, nvim_win_set_buf would error. Now falls back to closing the window if the original buffer is invalid. --- lua/QQdock/init.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lua/QQdock/init.lua b/lua/QQdock/init.lua index 362f262..4d19c8f 100644 --- a/lua/QQdock/init.lua +++ b/lua/QQdock/init.lua @@ -121,8 +121,12 @@ function M.open(cmd) vim.notify('QQdock: hide [' .. name .. ']', vim.log.levels.INFO) end if term.borrowed then - -- 占了主窗口 → 换回原始空 buffer - vim.api.nvim_win_set_buf(term.winid, term.original_bufnr) + -- 占了主窗口 → 换回原始空 buffer(如果还在的话,否则关窗) + if term.original_bufnr and vim.api.nvim_buf_is_valid(term.original_bufnr) then + vim.api.nvim_win_set_buf(term.winid, term.original_bufnr) + else + vim.api.nvim_win_close(term.winid, true) + end else vim.api.nvim_win_close(term.winid, true) end