From e5bfbc1b140222fd1d0b48d8a09a0cd54209dd77 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Fri, 21 Nov 2025 14:34:35 +0100 Subject: [PATCH] [ruff] Still emit diagnostic severity when secondary code is missing --- crates/ruff_server/src/lint.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/crates/ruff_server/src/lint.rs b/crates/ruff_server/src/lint.rs index 665e303b39fba9..c9d0d76becd636 100644 --- a/crates/ruff_server/src/lint.rs +++ b/crates/ruff_server/src/lint.rs @@ -283,24 +283,27 @@ fn to_lsp_diagnostic( range = diagnostic_range.to_range(source_kind.source_code(), index, encoding); } - let (severity, tags, code) = if let Some(code) = code { - let code = code.to_string(); + let (severity, code) = if let Some(code) = code { + (severity(code), code.to_string()) + } else { ( - Some(severity(&code)), - tags(diagnostic), - Some(lsp_types::NumberOrString::String(code)), + match diagnostic.severity() { + ruff_db::diagnostic::Severity::Info => lsp_types::DiagnosticSeverity::INFORMATION, + ruff_db::diagnostic::Severity::Warning => lsp_types::DiagnosticSeverity::WARNING, + ruff_db::diagnostic::Severity::Error => lsp_types::DiagnosticSeverity::ERROR, + ruff_db::diagnostic::Severity::Fatal => lsp_types::DiagnosticSeverity::ERROR, + }, + diagnostic.id().to_string(), ) - } else { - (None, None, None) }; ( cell, lsp_types::Diagnostic { range, - severity, - tags, - code, + severity: Some(severity), + tags: tags(diagnostic), + code: Some(lsp_types::NumberOrString::String(code)), code_description: diagnostic.documentation_url().and_then(|url| { Some(lsp_types::CodeDescription { href: lsp_types::Url::parse(url).ok()?,