如何使用ICSharpCode.TextEditor.TextEditorControl突出显示语法错误?

时间:2011-09-15 21:22:23

标签: sharpdevelop icsharpcode

我正在使用ICSharpCode.TextEditor.TextEditorControl作为我的DSL编辑器。当我收到DSL编译错误时,我想突出显示有问题的文本以提供更好的用户体验。但是,我很难找到如何做到这一点。

到目前为止,我发现有一个ShowInvalidLines属性,但我没有看到将任何行标记为无效的方法。我还看到HighlightSpanStackLineSegment的{​​{1}}属性,但不确定它们应该如何使用。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:12)

要突出显示一段文字,请使用TextMarker。以下代码使用红色波浪线突出显示“错误”一词。

TextEditorControl textEditor = new TextEditorControl();
textEditor.Text = "Mark Error";

int offset = 5;
int length = 5;
TextMarker marker = new TextMarker(offset, length, TextMarkerType.WaveLine, Color.Red);
textEditor.Document.MarkerStrategy.AddMarker(marker);

您可以使用任何背景和前景色突出显示文本,TextMarkerType支持下划线,波浪线或纯色块。