From a2b22ec15207926acf9bbf6617492925a6e50d27 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= <blaz@mxxn.io>
Date: Mon, 6 Dec 2021 12:48:25 +0900
Subject: [PATCH] Use binary_search when looking up diagnostics

They're sorted by range so they should also be sorted by line
---
 helix-view/src/gutter.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/helix-view/src/gutter.rs b/helix-view/src/gutter.rs
index 86773c1d..4c0edd90 100644
--- a/helix-view/src/gutter.rs
+++ b/helix-view/src/gutter.rs
@@ -22,7 +22,7 @@ pub fn diagnostic<'doc>(
 
     Box::new(move |line: usize, _selected: bool, out: &mut String| {
         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();
             return Some(match diagnostic.severity {
                 Some(Severity::Error) => error,