AvalonEdit の SyntaxHighlighting Engine をカスケードしたいと考えています。私は 2 を持っていHighlightingDefinitions
ます。最初のものは主な構文です。2 つ目は、複雑な複数行のプリプロセッサ マークアップ言語です。このため、最初の文法に 2 番目の文法を埋め込むのは複雑すぎます。より簡単な方法は、最初の構文をレンダリングし、後で影響を受ける行部分を (2 番目の構文に基づいて) 変更することです。
そこでHighlightingColorizer
、2 番目の言語で new をインスタンス化し、LineTransformers
. しかし、2 番目の言語は、プリプロセッサ ディレクティブを含む行部分だけでなく、ドキュメント全体を色分けします。非プリプロセッサ コードは黒です。
ColorizeLine
2 番目の行トランスフォーマーの -method をデバッグしたところ、強調表示されていないコード (= プリプロセッサ コードがない) の行は、期待どおりに色付けされていません。でも線の色は黒。
HighlightingColorizer
色付けを開始する前に、ドキュメント全体の以前の強調表示をすべてリセットしますか?
または、他に何が問題になる可能性がありますか?2 を適切にカスケードするにはどうすればよいHighlightingColorizers
ですか?