Use binary_search when looking up diagnostics

They're sorted by range so they should also be sorted by line
This commit is contained in:
Blaž Hrastnik 2021-12-06 12:48:25 +09:00
parent cab09093dd
commit a2b22ec152

View File

@ -22,7 +22,7 @@ pub fn diagnostic<'doc>(
Box::new(move |line: usize, _selected: bool, out: &mut String| { Box::new(move |line: usize, _selected: bool, out: &mut String| {
use helix_core::diagnostic::Severity; use helix_core::diagnostic::Severity;
if let Some(diagnostic) = diagnostics.iter().find(|d| d.line == line) { if let Some(diagnostic) = diagnostics.binary_search_by_key(&line, |d| d.line) {
write!(out, "").unwrap(); write!(out, "").unwrap();
return Some(match diagnostic.severity { return Some(match diagnostic.severity {
Some(Severity::Error) => error, Some(Severity::Error) => error,