Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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;
        }