fix(lsp): unclear error on malformed server responses #40422

Problem:
Malformed server responses with `null` (vim.NIL) values, do not show
clear error messages.


Solution:
Assert two known, specific cases, to avoid user confusion.
This commit is contained in:
Kim A. Brandt
2026-07-12 18:52:10 +02:00
committed by GitHub
parent 58b6310adc
commit 543a96e491
4 changed files with 34 additions and 0 deletions

View File

@@ -211,6 +211,7 @@ function M.open(opts, ...)
--- @type lsp.DiagnosticRelatedInformation[]
local related_info = vim.tbl_get(diagnostic, 'user_data', 'lsp', 'relatedInformation') or {}
assert(related_info ~= vim.NIL, 'server response has invalid (null) relatedInformation')
-- Below the diagnostic, show its LSP related information (if any) in the form of file name and
-- range, plus description.
for _, info in ipairs(related_info) do

View File

@@ -83,6 +83,7 @@ end
--- @return table?
local function tags_lsp_to_vim(diagnostic, client_id)
local tags ---@type table?
assert(diagnostic.tags ~= vim.NIL, 'server response has invalid (null) tags')
for _, tag in ipairs(diagnostic.tags or {}) do
if tag == protocol.DiagnosticTag.Unnecessary then
tags = tags or {}