mirror of https://github.com/helix-editor/helix
perf(statusline): reorder match and specify `u32` for `workspace_diagnostics` (#13512)
parent
908b9edf28
commit
47547e94ad
|
@ -287,14 +287,19 @@ where
|
||||||
{
|
{
|
||||||
use helix_core::diagnostic::Severity;
|
use helix_core::diagnostic::Severity;
|
||||||
let (hints, info, warnings, errors) = context.editor.diagnostics.values().flatten().fold(
|
let (hints, info, warnings, errors) = context.editor.diagnostics.values().flatten().fold(
|
||||||
(0, 0, 0, 0),
|
(0u32, 0u32, 0u32, 0u32),
|
||||||
|mut counts, (diag, _)| {
|
|mut counts, (diag, _)| {
|
||||||
match diag.severity {
|
match diag.severity {
|
||||||
Some(DiagnosticSeverity::HINT) | None => counts.0 += 1,
|
// PERF: For large workspace diagnostics, this loop can be very tight.
|
||||||
Some(DiagnosticSeverity::INFORMATION) => counts.1 += 1,
|
//
|
||||||
|
// Most often the diagnostics will be for warnings and errors.
|
||||||
|
// Errors should tend to be fixed fast, leaving warnings as the most common.
|
||||||
Some(DiagnosticSeverity::WARNING) => counts.2 += 1,
|
Some(DiagnosticSeverity::WARNING) => counts.2 += 1,
|
||||||
Some(DiagnosticSeverity::ERROR) => counts.3 += 1,
|
Some(DiagnosticSeverity::ERROR) => counts.3 += 1,
|
||||||
_ => {}
|
Some(DiagnosticSeverity::HINT) => counts.0 += 1,
|
||||||
|
Some(DiagnosticSeverity::INFORMATION) => counts.1 += 1,
|
||||||
|
// Fallback to `hint`.
|
||||||
|
_ => counts.0 += 1,
|
||||||
}
|
}
|
||||||
counts
|
counts
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue