1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 06:48:12 +00:00

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

This commit is contained in:
Andreas Kling 2020-10-29 23:52:31 +01:00
parent 23c4f10027
commit 6365b44773

View file

@ -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;
}
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);
#endif
navigate_to_include_if_available(header_path);
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);
#ifdef EDITOR_DEBUG
dbgln("Ctrl+click: {} \"{}\"", adjusted_range, header_path);
#endif
navigate_to_include_if_available(header_path);
return;
}
GUI::TextEditor::mousedown_event(event);