Mono.TextEditor高亮线

时间:2013-03-27 14:04:40

标签: c# mono text-editor

我正在MonoDevelop的Mono中制作一个pascal代码编辑器。我使用Mono.TextEditor作为代码编辑器小部件。但是,我找不到如何突出显示窗口小部件中的一行。 编译后,我收集出现错误的行号,所以我想用红色突出显示它们。我找到了

Mono.TextEditor.LineBackgroundMarker

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

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

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

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

  4. 这似乎也是一种可能的解决方案。

1 个答案:

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