fix(lsp): skip codelens refresh redraw for deleted buffer #39193

Problem:
After on_refresh() sends a textDocument/codeLens request, the buffer may
be deleted before the response arrives. The response callback then tries
to redraw that deleted buffer and raises Invalid buffer id error.

Solution:
Check buffer validity before redrawing.

AI-assisted: Codex
Co-authored-by: Yi Ming <ofseed@foxmail.com>
This commit is contained in:
Jaehwang Jung
2026-04-19 04:38:09 +09:00
committed by GitHub
parent f0329092f7
commit 97caa88972
2 changed files with 83 additions and 2 deletions

View File

@@ -500,8 +500,10 @@ function M.on_refresh(err, _, ctx)
-- Do nothing if a request is already scheduled.
if not provider.timer then
provider:request(client_id, function()
provider.row_version = {}
vim.api.nvim__redraw({ buf = bufnr, valid = true, flush = false })
if api.nvim_buf_is_valid(bufnr) then
provider.row_version = {}
vim.api.nvim__redraw({ buf = bufnr, valid = true, flush = false })
end
end)
end
end