Как выделить синтаксические ошибки, используя ICSharpCode.TextEditor.TextEditorControl? - PullRequest
6 голосов
/ 16 сентября 2011

Я использую ICSharpCode.TextEditor.TextEditorControl в качестве редактора DSL.Когда я получаю ошибки компиляции DSL, я хотел бы выделить оскорбительный текст, чтобы улучшить взаимодействие с пользователем.Однако мне трудно найти, как это сделать.

До сих пор я обнаружил, что есть свойство ShowInvalidLines, но я не вижу способа пометить какие-либо строки как недействительные.Я также вижу HighlightSpanStack свойства LineSegment и HighlightingStrategy, но не уверен, как они должны использоваться.

Любая помощь будет оценена.Спасибо!

1 Ответ

12 голосов
/ 17 сентября 2011

Чтобы выделить фрагмент текста, используйте TextMarker.Следующий код подчеркивает слово Error красной волнистой линией.

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 поддерживает подчеркивание, волнистые линии или сплошной блок цвета.

...