summaryrefslogtreecommitdiff
path: root/DevTools/HackStudio/Editor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'DevTools/HackStudio/Editor.cpp')
-rw-r--r--DevTools/HackStudio/Editor.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/DevTools/HackStudio/Editor.cpp b/DevTools/HackStudio/Editor.cpp
index 921416ede0..a999f5bd82 100644
--- a/DevTools/HackStudio/Editor.cpp
+++ b/DevTools/HackStudio/Editor.cpp
@@ -172,17 +172,8 @@ void Editor::mousemove_event(GMouseEvent& event)
GApplication::the().hide_tooltip();
}
-void Editor::cursor_did_change()
+void Editor::highlight_matching_curlies_or_parens()
{
- if (m_has_brace_buddies) {
- if (m_brace_buddies[0].index >= 0 && m_brace_buddies[0].index < document().spans().size())
- document().set_span_at_index(m_brace_buddies[0].index, m_brace_buddies[0].span_backup);
- if (m_brace_buddies[1].index >= 0 && m_brace_buddies[1].index < document().spans().size())
- document().set_span_at_index(m_brace_buddies[1].index, m_brace_buddies[1].span_backup);
- m_has_brace_buddies = false;
- update();
- }
-
enum class Direction {
Forward,
Backward,
@@ -254,3 +245,22 @@ void Editor::cursor_did_change()
}
}
}
+
+void Editor::cursor_did_change()
+{
+ if (m_has_brace_buddies) {
+ if (m_brace_buddies[0].index >= 0 && m_brace_buddies[0].index < document().spans().size())
+ document().set_span_at_index(m_brace_buddies[0].index, m_brace_buddies[0].span_backup);
+ if (m_brace_buddies[1].index >= 0 && m_brace_buddies[1].index < document().spans().size())
+ document().set_span_at_index(m_brace_buddies[1].index, m_brace_buddies[1].span_backup);
+ m_has_brace_buddies = false;
+ update();
+ }
+ highlight_matching_curlies_or_parens();
+}
+
+void Editor::notify_did_rehighlight()
+{
+ m_has_brace_buddies = false;
+ highlight_matching_curlies_or_parens();
+}