fix(lsp): retrigger diagnostics request on server cancellation (#31345)

Co-authored-by: Jesse <github@jessebakker.com>
This commit is contained in:
Gregory Anders
2024-11-25 11:48:11 -06:00
committed by GitHub
parent 8d55cc218c
commit 29c72cdf4a
7 changed files with 120 additions and 5 deletions

View File

@ -246,10 +246,18 @@ end
---
--- See |vim.diagnostic.config()| for configuration options.
---
---@param _ lsp.ResponseError?
---@param error lsp.ResponseError?
---@param result lsp.DocumentDiagnosticReport
---@param ctx lsp.HandlerContext
function M.on_diagnostic(_, result, ctx)
function M.on_diagnostic(error, result, ctx)
if error ~= nil and error.code == protocol.ErrorCodes.ServerCancelled then
if error.data == nil or error.data.retriggerRequest ~= false then
local client = assert(vim.lsp.get_client_by_id(ctx.client_id))
client:request(ctx.method, ctx.params)
end
return
end
if result == nil or result.kind == 'unchanged' then
return
end