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

LibGUI: Support multiple layers of TextDocument spans

TextDocument::set_spans() now also takes a "span collection index"
argument.

TextDocument keeps a map between a span collection index and its spans.
It merges the spans from all collections into a single set of spans
whenever set_spans() is called.

This allows us to style a document with multiple layers of spans, where
as previously we only supported a single layer of spans that was set
from the SyntaxHighlighter.
This commit is contained in:
Itamar 2022-03-29 16:31:26 +03:00 committed by Andreas Kling
parent b75ed992a6
commit ab0b4f46f7
5 changed files with 107 additions and 2 deletions

View file

@ -1951,7 +1951,7 @@ void TextEditor::set_syntax_highlighter(OwnPtr<Syntax::Highlighter> highlighter)
m_highlighter->attach(*this);
m_needs_rehighlight = true;
} else
document().set_spans({});
document().set_spans(Syntax::HighlighterClient::span_collection_index, {});
if (on_highlighter_change)
on_highlighter_change();
}