我正在MonoDevelop的Mono中制作一个pascal代码编辑器。我使用Mono.TextEditor
作为代码编辑器小部件。但是,我找不到如何突出显示窗口小部件中的一行。
编译后,我收集出现错误的行号,所以我想用红色突出显示它们。我找到了
Mono.TextEditor.LineBackgroundMarker
这似乎与我想做的事情有关,但我找不到在哪里以及如何使用它。
我正在研究的另一个选择是ViBuilder,但我甚至不知道如何使用它。我可以想出两种方法来解决这个问题:
将行标记为错误,默认样式包括:
{ "name": "Underline(Error)", "color":"invalid-red" }
这似乎也是一种可能的解决方案。
答案 0 :(得分:0)
您可以通过向基础文档添加标记来突出显示文本编辑器中的行。使用TextDocument.AddMarker方法,如下所示:
TextEditor textEditor;
var marker = new Mono.TextEditor.LineBackgroundMarker();
int lineNumber = ...;
textEditor.Document.AddMarker(lineNumber, marker);
textEditor.QueueDraw();
另请参阅Mono.TextEditor.StyleTextMarker类。此类已经具有您要查找的属性“BackgroundColor”/“Color”。可能必须手动完成下划线(例如,通过继承StyleTextMarker并覆盖Draw方法)。