SyntaxHighlighter.cpp 1015 B

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