Я хочу каскадировать движок SyntaxHighlighting AvalonEdit. У меня 2 HighlightingDefinitions
. Первый - основной синтаксис. Второй - сложный многострочный препроцессор-разметка. По этой причине слишком сложно включить вторую грамматику в первую. Более простой способ - сделать первый синтаксис и впоследствии изменить затронутые строки (на основе второго синтаксиса).
Итак, я создал новый HighlightingColorizer
со вторым языком и добавил его в LineTransformers
. Но второй язык раскрашивает полный документ, а не только строки с препроцессорными директивами: не-препроцессорный код является черным.
Когда я отлаживал метод ColorizeLine
второго линейного трансформатора, строки не выделенного кода (= без кода препроцессора) не были раскрашены, как и ожидалось. Но цвет линий черный.
Значит ли HighlightingColorizer
reset все предыдущие выделения всего документа, прежде чем он начнет раскрашиваться?
Или что еще может быть проблемой? Как правильно каскадировать 2 HighlightingColorizers
?