我想级联AvalonEdit的SyntaxHighlighting引擎。我有2个“HighlightingDefinitions”。第一个是主语法,第二个是复杂的多行预处理器标记语言。因此,将第二个语法嵌入第一个语法太复杂了。更简单的方法是呈现第一个语法,然后在之后更改受影响的行部分(基于第二个语法)。
所以我用第二种语言实例化了一个新的“HighlightingColorizer”,并将其添加到“LineTransformers”中。但是第二种语言会对整个文档进行着色,而不仅仅是带有预处理器指令的行部分:非预处理器代码为黑色。
当我调试第二个行转换器的“ColorizeLine”方法时,未突出显示的代码行(=无预处理器代码)没有被着色,这是预期的。但是这些行的颜色是黑色。
那么,“HighlightingColorizer”是否在开始着色之前重置了整个文档的所有先前高亮显示?
或者还可能有什么问题?如何正确级联两个“HighlightingColorizers”?
所以我用第二种语言实例化了一个新的“HighlightingColorizer”,并将其添加到“LineTransformers”中。但是第二种语言会对整个文档进行着色,而不仅仅是带有预处理器指令的行部分:非预处理器代码为黑色。
当我调试第二个行转换器的“ColorizeLine”方法时,未突出显示的代码行(=无预处理器代码)没有被着色,这是预期的。但是这些行的颜色是黑色。
那么,“HighlightingColorizer”是否在开始着色之前重置了整个文档的所有先前高亮显示?
或者还可能有什么问题?如何正确级联两个“HighlightingColorizers”?