fix(lsp): stale codelens after external file change (#39203)

Problem:
Codelens virtual lines remain on stale rows after an external file
change and buffer reload.

Solution:
Clear codelens extmarks and cached row/version state in `on_reload`
before requesting fresh code lenses.
This commit is contained in:
Jaehwang Jung
2026-04-19 10:27:02 +09:00
committed by GitHub
parent b351afb1b1
commit 88dd492996

View File

@@ -55,6 +55,7 @@ function Provider:new(bufnr)
on_reload = function(_, buf)
local provider = Provider.active[buf]
if provider then
provider:clear()
provider:automatic_request()
end
end,
@@ -94,6 +95,20 @@ function Provider:on_detach(client_id)
end
end
---@package
function Provider:clear()
self:reset_timer()
self.version = nil
self.row_version = {}
for _, state in pairs(self.client_state) do
state.row_lenses = {}
api.nvim_buf_clear_namespace(self.bufnr, state.namespace, 0, -1)
end
api.nvim__redraw({ buf = self.bufnr, valid = true, flush = false })
end
--- `lsp.Handler` for `textDocument/codeLens`.
---
---@package