protected override void ColorizeLine(DocumentLine documentLine)
{
Argument.IsNotNull(() => documentLine);
var lineStartOffset = documentLine.Offset;
var text = CurrentContext.Document.GetText(documentLine);
var start = 0;
if (_textToHighlight == null)
{
return;
}
var endOffset = _textToHighlight.ToCharArray().Length;
try
{
int index;
while ((index = text.IndexOf(_textToHighlight, start, StringComparison.Ordinal)) >= 0)
{
ChangeLinePart(
lineStartOffset + index,
lineStartOffset + index + endOffset,
element =>
{
var typeface = element.TextRunProperties.Typeface;
element.TextRunProperties.SetTypeface(new Typeface(
typeface.FontFamily,
FontStyles.Normal,
FontWeights.UltraBold,
typeface.Stretch
));
});
start = index + 1;
}
}
catch (Exception)
{
//Swallow the exception
}
}
#endregion