diff --git a/helix-core/src/diagnostic.rs b/helix-core/src/diagnostic.rs index db1f2da9..6b5da17e 100644 --- a/helix-core/src/diagnostic.rs +++ b/helix-core/src/diagnostic.rs @@ -45,4 +45,5 @@ pub struct Diagnostic { pub code: Option, pub tags: Vec, pub source: Option, + pub data: Option, } diff --git a/helix-lsp/src/lib.rs b/helix-lsp/src/lib.rs index 5de76c6c..abc930f8 100644 --- a/helix-lsp/src/lib.rs +++ b/helix-lsp/src/lib.rs @@ -102,16 +102,17 @@ pub mod util { None }; - // TODO: add support for Diagnostic.data - lsp::Diagnostic::new( - range_to_lsp_range(doc, range, offset_encoding), + lsp::Diagnostic { + range: range_to_lsp_range(doc, range, offset_encoding), severity, code, - diag.source.clone(), - diag.message.to_owned(), - None, + source: diag.source.clone(), + message: diag.message.to_owned(), + related_information: None, tags, - ) + data: diag.data.to_owned(), + ..Default::default() + } } /// Converts [`lsp::Position`] to a position in the document. diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index dc12ba3c..7a50e007 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -772,7 +772,8 @@ impl Application { severity, code, tags, - source: diagnostic.source.clone() + source: diagnostic.source.clone(), + data: diagnostic.data.clone(), }) }) .collect();