use lsp_max::lsp_types_max::{Diagnostic, DiagnosticSeverity, Position, Range};
pub const DIAGNOSTIC_SOURCE: &str = "affidavit";
pub fn verdict_to_diagnostics(verdict: &crate::types::Verdict) -> Vec<Diagnostic> {
let mut diagnostics = Vec::new();
for outcome in &verdict.outcomes {
if !outcome.passed {
diagnostics.push(Diagnostic {
range: Range {
start: Position {
line: 0,
character: 0,
},
end: Position {
line: 0,
character: 10,
},
},
severity: Some(DiagnosticSeverity::ERROR),
code: None,
code_description: None,
source: Some(DIAGNOSTIC_SOURCE.to_string()),
message: format!("{}: {}", outcome.stage, outcome.detail),
related_information: None,
tags: None,
data: None,
});
}
}
diagnostics
}