Просмотр исходного кода

HackStudio: Use GUI::TextDocument::span_at()

Andreas Kling 4 лет назад
Родитель
Сommit
6365b44773
1 измененных файлов с 12 добавлено и 14 удалено
  1. 12 14
      DevTools/HackStudio/Editor.cpp

+ 12 - 14
DevTools/HackStudio/Editor.cpp

@@ -293,23 +293,21 @@ void Editor::mousedown_event(GUI::MouseEvent& event)
         return;
     }
 
-    for (auto& span : document().spans()) {
-        if (span.range.contains(text_position)) {
-            if (!highlighter->is_navigatable(span.data)) {
-                GUI::TextEditor::mousedown_event(event);
-                return;
-            }
+    if (auto* span = document().span_at(text_position)) {
+        if (!highlighter->is_navigatable(span->data)) {
+            GUI::TextEditor::mousedown_event(event);
+            return;
+        }
 
-            auto adjusted_range = span.range;
-            adjusted_range.end().set_column(adjusted_range.end().column() + 1);
-            auto span_text = document().text_in_range(adjusted_range);
-            auto header_path = span_text.substring(1, span_text.length() - 2);
+        auto adjusted_range = span->range;
+        adjusted_range.end().set_column(adjusted_range.end().column() + 1);
+        auto span_text = document().text_in_range(adjusted_range);
+        auto header_path = span_text.substring(1, span_text.length() - 2);
 #ifdef EDITOR_DEBUG
-            dbgln("Ctrl+click: {} \"{}\"", adjusted_range, header_path);
+        dbgln("Ctrl+click: {} \"{}\"", adjusted_range, header_path);
 #endif
-            navigate_to_include_if_available(header_path);
-            return;
-        }
+        navigate_to_include_if_available(header_path);
+        return;
     }
 
     GUI::TextEditor::mousedown_event(event);