public void FormattedStringBuilderEndToEnd1() { var classificationFormatMap = new MockClassificationFormatMap(); var htmlMarkupProvider = new HtmlMarkupProvider( classificationFormatMap, MockClassificationType.Default, Brushes.White); var classifier = new MockClassifier(); var formattedStringBuilder = new FormattedStringBuilder( htmlMarkupProvider, classifier, MockClassificationType.Default, waitIndicator: null); var snapshot = new MockTextSnapshot("bla"); var spans = new NormalizedSnapshotSpanCollection(new [] { new SnapshotSpan(snapshot, 0, 3) }); var actualResult = formattedStringBuilder.AppendSnapshotSpans(spans); var expectedResult = "<pre style=\"font-family:Consolas;font-size:12;color:black;background:white;\">b<span style=\"color:blue;\">l</span>a\r\n</pre>"; Assert.AreEqual(expectedResult, actualResult); }
public void CalculateLongestCommonWhitespacePrefix() { var samples = new Dictionary <string, int> { { "", 0 }, { " a\r\n b", 3 }, { "a\r\n b", 0 }, { "a\r\nb", 0 }, { " a\r\n\r\n b", 1 }, { " a\r\nb", 0 }, { " a\r\n b other spaces\t \r\n baz\t", 2 } }; foreach (var sample in samples) { var actual = HtmlMarkupProvider.CalculateLongestCommonWhitespacePrefix(sample.Key) ?? string.Empty; Assert.AreEqual(sample.Value, actual.Length); } }
public void UnindentToRemoveLeadingWhitespace() { var samples = new Dictionary <string, string> { { " a\r\n b", "a\r\nb" }, { "a\r\n b", "a\r\n b" }, { "a\r\nb", "a\r\nb" }, { " a\r\nb", " a\r\nb" }, { " a\r\n b other spaces\t \r\n baz\t", "a\r\nb other spaces\t \r\nbaz\t" }, { " a\r\n b \r\n c\r\n b\r\n a", "a\r\n b \r\n c\r\n b\r\na" }, { " a\r\n\r\n b", "a\r\n\r\nb" }, { " a\r\n \r\n b", "a\r\n\r\nb" } }; foreach (var sample in samples) { var actual = HtmlMarkupProvider.UnindentToRemoveLeadingWhitespace(sample.Key); Assert.AreEqual(sample.Value, actual); } }
public string GenerateHtml(NormalizedSnapshotSpanCollection spans, IWpfTextView textView) { if (spans == null || spans.Count == 0) { return ""; } // this will trigger loading of the package // so we can ensure ToolsOptionsPage gets created and // ToolsOptionsPage.Instance gets set var dte = (_DTE)_serviceProvider.GetService(typeof(_DTE)); var props = dte.Properties[CopyAsHtmlPackage.CategoryName, CopyAsHtmlPackage.PageName]; IClassificationFormatMap formatMap = _classificationFormatMappingService.GetClassificationFormatMap(textView); IClassificationType defaultClassificationType = _classificationTypeRegistry.GetClassificationType("text"); HtmlMarkupProvider htmlMarkupProvider = new HtmlMarkupProvider( formatMap, defaultClassificationType, textView.Background); IClassifier classifier = _classifierAggregatorService.GetClassifier(textView.TextBuffer); var formattedStringBuilder = new FormattedStringBuilder( htmlMarkupProvider, classifier, defaultClassificationType, this.WaitIndicator); string result = formattedStringBuilder.AppendSnapshotSpans(spans); var classifierDispose = classifier as System.IDisposable; if (classifierDispose != null) { classifierDispose.Dispose(); } return result; }