private static Run CreateRun(TaggedText text) { var run = new Run(text.ToString()); var classificationTypeName = ClassificationTags.GetClassificationTypeName(text.Tag); run.Foreground = new SolidColorBrush(CodeHighlightColors.GetColor(classificationTypeName)); return(run); }
public static Run GetRun(TaggedText part, IClassificationFormatMap formatMap, ClassificationTypeMap typeMap) { var text = GetVisibleDisplayString(part, includeLeftToRightMarker: true); var run = new Run(text); var format = formatMap.GetTextProperties( typeMap.GetClassificationType(ClassificationTags.GetClassificationTypeName(part.Tag))); run.SetTextProperties(format); return(run); }
private static string GetVisibleDisplayString(TaggedText part, bool includeLeftToRightMarker) { var text = part.Text; if (includeLeftToRightMarker) { var classificationTypeName = ClassificationTags.GetClassificationTypeName(part.Tag); if (classificationTypeName == ClassificationTypeNames.Punctuation || classificationTypeName == ClassificationTypeNames.WhiteSpace) { text = LeftToRightMarkerPrefix + text; } } return(text); }
private static IList <ClassificationSpan> GetClassificationSpans( IEnumerable <TaggedText> parts, ITextSnapshot textSnapshot, ClassificationTypeMap typeMap) { var result = new List <ClassificationSpan>(); var index = 0; foreach (var part in parts) { var text = part.ToString(); result.Add(new ClassificationSpan( new SnapshotSpan(textSnapshot, new Microsoft.VisualStudio.Text.Span(index, text.Length)), typeMap.GetClassificationType(ClassificationTags.GetClassificationTypeName(part.Tag)))); index += text.Length; } return(result); }