Serenity Operating System
1#include <LibGUI/SyntaxHighlighter.h>
2#include <LibGUI/TextEditor.h>
3
4namespace GUI {
5
6SyntaxHighlighter::~SyntaxHighlighter()
7{
8}
9
10void SyntaxHighlighter::attach(TextEditor& editor)
11{
12 ASSERT(!m_editor);
13 m_editor = editor.make_weak_ptr();
14}
15
16void SyntaxHighlighter::detach()
17{
18 ASSERT(m_editor);
19 m_editor = nullptr;
20}
21
22void SyntaxHighlighter::cursor_did_change()
23{
24 ASSERT(m_editor);
25 auto& document = m_editor->document();
26 if (m_has_brace_buddies) {
27 if (m_brace_buddies[0].index >= 0 && m_brace_buddies[0].index < static_cast<int>(document.spans().size()))
28 document.set_span_at_index(m_brace_buddies[0].index, m_brace_buddies[0].span_backup);
29 if (m_brace_buddies[1].index >= 0 && m_brace_buddies[1].index < static_cast<int>(document.spans().size()))
30 document.set_span_at_index(m_brace_buddies[1].index, m_brace_buddies[1].span_backup);
31 m_has_brace_buddies = false;
32 m_editor->update();
33 }
34 highlight_matching_token_pair();
35}
36
37}