我使用scintilla作为MarkDown编辑器的语法高亮显示。
scintilla.Styles[Style.Markdown.Default].ForeColor = Color.Blue;
scintilla.Styles[Style.Html.Comment].ForeColor = Color.Gray;
scintilla.Styles[Style.Markdown.Header1].ForeColor = Color.Green;
scintilla.Styles[Style.Markdown.Header2].ForeColor = Color.Green;
scintilla.Styles[Style.Markdown.Header3].ForeColor = Color.Green;
scintilla.Styles[Style.Markdown.Header4].ForeColor = Color.Green;
scintilla.Styles[Style.Markdown.Header6].ForeColor = Color.Green;
scintilla.Styles[Style.Markdown.HRule].ForeColor = Color.Purple;
scintilla.Styles[Style.Markdown.Header5].ForeColor = Color.Green;
scintilla.Lexer = Lexer.Markdown;显然,它不支持Markdown.Comment,我希望它是灰色的。在注释中,我甚至可能希望有CSS或Xml代码。无论如何,我想使用两种类型的突出显示。一个用于标记,另一个用于注释或评论内部。
我没有找到任何显示多个语法突出显示的源代码。但是,有一些自定义语法突出显示文档。我需要一个自定义的设置,还是可以使用组合设置来实现我的目标?
发布于 2019-08-28 15:49:08
不幸的是,您需要实现自定义的lexer,或者使用整个不同的库,因为内置Markdown lexer不支持支持注释或多语法突出显示(正如源文件顶部的注释所指示的,它甚至不支持嵌入式HTML的着色)。而且,由于在本例中Scintilla.NET是一个本机库的包装器,所以它不会为Markdown公开额外的功能。
如果您查看内置,您将看到它实现了对各种嵌入式语言(如PHP和JavaScript)的多重突出显示支持;对Markdown实现也需要同样的方法。
为了解决这个问题,您有一些选择:
https://stackoverflow.com/questions/57554999
复制相似问题