Как выделить синтаксические ошибки, используя ICSharpCode.TextEditor.TextEditorControl?
Я использую ICSharpCode.TextEditor.TextEditorControl
как мой редактор DSL. Когда я получаю ошибки компиляции DSL, я хотел бы выделить оскорбительный текст, чтобы улучшить взаимодействие с пользователем. Однако мне трудно найти, как это сделать.
До сих пор я обнаружил, что есть ShowInvalidLines
свойство, но я не вижу способа пометить какие-либо строки как недействительные. Я тоже вижу HighlightSpanStack
собственностью LineSegment
а также HighlightingStrategy
но не уверен, как они должны быть использованы.
Любая помощь будет оценена. Спасибо!
1 ответ
Чтобы выделить фрагмент текста, используйте 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 поддерживает подчеркивание, волнистые линии или сплошной блок цвета.