mirror of
https://github.com/neovim/neovim.git
synced 2025-12-16 03:15:39 +00:00
fix(diagnostic): preserve fields from LSP diagnostics via user_data (#15735)
* preserve fields from LSP diagnostics via adding a user_data table to the diagnostic, which can hold arbitrary data in addition to the lsp diagnostic information.
This commit is contained in:
@@ -102,7 +102,16 @@ local function diagnostic_lsp_to_vim(diagnostics, bufnr, client_id)
|
||||
end_lnum = _end.line,
|
||||
end_col = line_byte_from_position(buf_lines, _end.line, _end.character, offset_encoding),
|
||||
severity = severity_lsp_to_vim(diagnostic.severity),
|
||||
message = diagnostic.message
|
||||
message = diagnostic.message,
|
||||
user_data = {
|
||||
lsp = {
|
||||
code = diagnostic.code,
|
||||
codeDescription = diagnostic.codeDescription,
|
||||
tags = diagnostic.tags,
|
||||
relatedInformation = diagnostic.relatedInformation,
|
||||
data = diagnostic.data,
|
||||
},
|
||||
},
|
||||
}
|
||||
end, diagnostics)
|
||||
end
|
||||
@@ -110,7 +119,7 @@ end
|
||||
---@private
|
||||
local function diagnostic_vim_to_lsp(diagnostics)
|
||||
return vim.tbl_map(function(diagnostic)
|
||||
return {
|
||||
return vim.tbl_extend("error", {
|
||||
range = {
|
||||
start = {
|
||||
line = diagnostic.lnum,
|
||||
@@ -123,7 +132,7 @@ local function diagnostic_vim_to_lsp(diagnostics)
|
||||
},
|
||||
severity = severity_vim_to_lsp(diagnostic.severity),
|
||||
message = diagnostic.message,
|
||||
}
|
||||
}, diagnostic.user_data and (diagnostic.user_data.lsp or {}) or {})
|
||||
end, diagnostics)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user