From 28fd704bce2fec56e46991b26eed5a17e519e6bd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= <blaz@mxxn.io>
Date: Mon, 22 Nov 2021 11:26:16 +0900
Subject: [PATCH] ui: Since diagnostics are sorted, we can use binary search

---
 helix-term/src/ui/editor.rs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs
index 19f0243e..de2281c6 100644
--- a/helix-term/src/ui/editor.rs
+++ b/helix-term/src/ui/editor.rs
@@ -482,7 +482,8 @@ impl EditorView {
 
         for (i, line) in (view.offset.row..(last_line + 1)).enumerate() {
             use helix_core::diagnostic::Severity;
-            if let Some(diagnostic) = doc.diagnostics().iter().find(|d| d.line == line) {
+            if let Ok(diagnostic) = doc.diagnostics().binary_search_by_key(&line, |d| d.line) {
+                let diagnostic = &doc.diagnostics()[diagnostic];
                 surface.set_stringn(
                     viewport.x,
                     viewport.y + i as u16,