1

我正在 MonoDevelop 中的 Mono 中制作帕斯卡代码编辑器。我Mono.TextEditor用作代码编辑器小部件。但是,我找不到如何突出显示小部件中的一行。编译后,我收集发生错误的行号,因此我想用红色突出显示它们。我发现

Mono.TextEditor.LineBackgroundMarker

这似乎与我想做的事情有关,但我找不到在哪里以及如何使用它。

我正在研究的另一个选项是 ViBuilder,但我什至不知道如何使用它。我可以想到两种方法来解决这个问题:

  1. 只需突出显示
  2. 将一行标记为错误,因为默认样式包括:

    { "name": "Underline(Error)", "color":"invalid-red" }

这似乎也是一个可能的解决方案。

4

1 回答 1

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 方法)。

于 2013-04-28T21:08:29.247 回答