Scintilla .NET突出显示功能的设计非常糟糕,或者我在这里缺少什么?

时间:2018-08-17 10:08:50

标签: c# syntax-highlighting scintilla

我想在此处突出显示的是使用Lexer.Sql向现有Regular Expression添加一些自定义规则。但是,看起来我们需要将Lexer设置为Lexer.Container并处理事件StyleNeeded。因此,我必须为Lexer.Sql实现所有标准突出显示规则,而不能从Scintilla继承任何规则。这需要相当多的工作(并为此进行测试)。

基本上,代码如下所示:

txtScintilla.Lexer = Lexer.Container;
txtScintilla.StyleNeeded += (s,e) => {
    //here we use the pair of 2 methods: 
    //txtScintilla.StartStyling and
    //txtScintilla.SetStyling
    //But there will be fairly many Regular expressions 
    //involved here to RE-implement all.
};

这里好的设计应该提供一些overriding机制或管道注入...自定义突出显示规则将覆盖默认设置(如果有冲突)。

我希望我可能会错过一些正确执行此操作的事情,而不必仅仅因为高亮显示规则而自己实施所有默认设置。

0 个答案:

没有答案