コード例 #1
0
        private static void ClassifyFile(MarkdownTestFilesFixture fixture, string fileName)
        {
            string testFile = fixture.GetDestinationPath(fileName);
            string content = fixture.LoadDestinationFile(fileName);

            TextBufferMock textBuffer = new TextBufferMock(content, MdContentTypeDefinition.ContentType);

            MdClassifierProvider classifierProvider = new MdClassifierProvider();
            EditorShell.Current.CompositionService.SatisfyImportsOnce(classifierProvider);

            IClassifier cls = classifierProvider.GetClassifier(textBuffer);

            IList<ClassificationSpan> spans = cls.GetClassificationSpans(new SnapshotSpan(textBuffer.CurrentSnapshot, new Span(0, textBuffer.CurrentSnapshot.Length)));
            string actual = ClassificationWriter.WriteClassifications(spans);

            string baselineFile = testFile + ".colors";

            if (_regenerateBaselineFiles)
            {
                // Update this to your actual enlistment if you need to update baseline
                string enlistmentPath = @"F:\RTVS\src\Markdown\Editor\Test\Files\Classification";
                baselineFile = Path.Combine(enlistmentPath, Path.GetFileName(testFile)) + ".colors";

                TestFiles.UpdateBaseline(baselineFile, actual);
            }
            else
            {
                TestFiles.CompareToBaseLine(baselineFile, actual);
            }
        }
コード例 #2
0
ファイル: MdClassifierTest.cs プロジェクト: ktaranov/RTVS
        private void ClassifyFile(MarkdownTestFilesFixture fixture, string fileName)
        {
            string testFile = fixture.GetDestinationPath(fileName);
            string content  = fixture.LoadDestinationFile(fileName);

            TextBufferMock textBuffer = new TextBufferMock(content, MdContentTypeDefinition.ContentType);

            var crs  = _exportProvider.GetExportedValue <IClassificationTypeRegistryService>();
            var ctrs = _exportProvider.GetExportedValue <IContentTypeRegistryService>();
            var cnp  = _exportProvider.GetExports <IClassificationNameProvider, IComponentContentTypes>();

            MdClassifierProvider classifierProvider = new MdClassifierProvider(crs, ctrs, cnp, _exportProvider.GetExportedValue <ICoreShell>());

            _exportProvider.GetExportedValue <ICoreShell>().CompositionService.SatisfyImportsOnce(classifierProvider);

            IClassifier cls = classifierProvider.GetClassifier(textBuffer);

            IList <ClassificationSpan> spans = cls.GetClassificationSpans(new SnapshotSpan(textBuffer.CurrentSnapshot, new Span(0, textBuffer.CurrentSnapshot.Length)));
            string actual = ClassificationWriter.WriteClassifications(spans);

            string baselineFile = testFile + ".colors";

            if (_regenerateBaselineFiles)
            {
                baselineFile = Path.Combine(fixture.SourcePath, @"Classification\", Path.GetFileName(testFile)) + ".colors";
                TestFiles.UpdateBaseline(baselineFile, actual);
            }
            else
            {
                TestFiles.CompareToBaseLine(baselineFile, actual);
            }
        }
コード例 #3
0
        private void ClassifyFile(MarkdownTestFilesFixture fixture, string fileName)
        {
            var testFile = fixture.GetDestinationPath(fileName);
            var content  = fixture.LoadDestinationFile(fileName);

            var textBuffer = new TextBufferMock(content, MdContentTypeDefinition.ContentType);

            var crs  = _coreShell.GetService <IClassificationTypeRegistryService>();
            var ctrs = _coreShell.GetService <IContentTypeRegistryService>();
            var classifierProvider = new MdClassifierProvider(crs, ctrs);
            var cls = classifierProvider.GetClassifier(textBuffer);

            var spans        = cls.GetClassificationSpans(new SnapshotSpan(textBuffer.CurrentSnapshot, new Span(0, textBuffer.CurrentSnapshot.Length)));
            var actual       = ClassificationWriter.WriteClassifications(spans);
            var baselineFile = testFile + ".colors";

            if (_regenerateBaselineFiles)
            {
                baselineFile = Path.Combine(fixture.SourcePath, @"Classification\", Path.GetFileName(testFile)) + ".colors";
                TestFiles.UpdateBaseline(baselineFile, actual);
            }
            else
            {
                TestFiles.CompareToBaseLine(baselineFile, actual);
            }
        }
コード例 #4
0
ファイル: MdClassifierTest.cs プロジェクト: Microsoft/RTVS
        private void ClassifyFile(MarkdownTestFilesFixture fixture, string fileName) {
            string testFile = fixture.GetDestinationPath(fileName);
            string content = fixture.LoadDestinationFile(fileName);

            TextBufferMock textBuffer = new TextBufferMock(content, MdContentTypeDefinition.ContentType);

            var crs = _exportProvider.GetExportedValue<IClassificationTypeRegistryService>();
            var ctrs = _exportProvider.GetExportedValue<IContentTypeRegistryService>();
            var cnp = _exportProvider.GetExports<IClassificationNameProvider, IComponentContentTypes>();

            MdClassifierProvider classifierProvider = new MdClassifierProvider(crs, ctrs, cnp, _exportProvider.GetExportedValue<ICoreShell>());
            _exportProvider.GetExportedValue<ICoreShell>().CompositionService.SatisfyImportsOnce(classifierProvider);

            IClassifier cls = classifierProvider.GetClassifier(textBuffer);

            IList<ClassificationSpan> spans = cls.GetClassificationSpans(new SnapshotSpan(textBuffer.CurrentSnapshot, new Span(0, textBuffer.CurrentSnapshot.Length)));
            string actual = ClassificationWriter.WriteClassifications(spans);

            string baselineFile = testFile + ".colors";

            if (_regenerateBaselineFiles) {
                baselineFile = Path.Combine(fixture.SourcePath, @"Classification\", Path.GetFileName(testFile)) + ".colors";
                TestFiles.UpdateBaseline(baselineFile, actual);
            } else {
                TestFiles.CompareToBaseLine(baselineFile, actual);
            }
        }
コード例 #5
0
ファイル: MarkdownCodeTest.cs プロジェクト: Microsoft/RTVS
        private IClassifier GetClassifier(string content, out ITextBuffer textBuffer) {
            textBuffer = _tbfs.CreateTextBuffer(new ContentTypeMock(MdContentTypeDefinition.ContentType));
            textBuffer.Insert(0, content);

            MdClassifierProvider classifierProvider = new MdClassifierProvider(_crs, _ctrs, _cnp, _exportProvider.GetExportedValue<ICoreShell>());
           return classifierProvider.GetClassifier(textBuffer);
        }
コード例 #6
0
ファイル: MarkdownCodeTest.cs プロジェクト: xoriath/RTVS
        private IClassifier GetClassifier(string content, out ITextBuffer textBuffer)
        {
            textBuffer = _tbfs.CreateTextBuffer(new ContentTypeMock(MdContentTypeDefinition.ContentType));
            textBuffer.Insert(0, content);

            MdClassifierProvider classifierProvider = new MdClassifierProvider(_crs, _ctrs, _cnp);

            return(classifierProvider.GetClassifier(textBuffer));
        }
コード例 #7
0
        public void Markdown_InvalidateCodeTest()
        {
            string      content    = "```{r}#R\n```";
            var         factory    = EditorShell.Current.ExportProvider.GetExportedValue <ITextBufferFactoryService>();
            ITextBuffer textBuffer = factory.CreateTextBuffer(new ContentTypeMock(MdContentTypeDefinition.ContentType));

            textBuffer.Insert(0, content);

            var crs  = EditorShell.Current.ExportProvider.GetExportedValue <IClassificationTypeRegistryService>();
            var ctrs = EditorShell.Current.ExportProvider.GetExportedValue <IContentTypeRegistryService>();
            var cnp  = EditorShell.Current.ExportProvider.GetExports <IClassificationNameProvider, IComponentContentTypes>();

            MdClassifierProvider classifierProvider = new MdClassifierProvider(crs, ctrs, cnp);
            IClassifier          cls = classifierProvider.GetClassifier(textBuffer);

            string actual = GetSpans(cls, textBuffer);

            actual.TrimEnd().Should().Be(
                @"[0:3] Markdown Code
[6:2] comment
[9:3] Markdown Code");

            Typing.Type(textBuffer, 6, "\n");
            actual = GetSpans(cls, textBuffer);
            actual.TrimEnd().Should().Be(
                @"[0:3] Markdown Code
[7:2] comment
[10:3] Markdown Code");

            Typing.Delete(textBuffer, 4, 1);
            actual = GetSpans(cls, textBuffer);
            actual.TrimEnd().Should().Be(
                @"[0:3] Markdown Code
[4:5] Markdown Code
[9:3] Markdown Code");

            Typing.Type(textBuffer, 4, "R");
            actual = GetSpans(cls, textBuffer);
            actual.TrimEnd().Should().Be(
                @"[0:3] Markdown Code
[7:2] comment
[10:3] Markdown Code");
        }
コード例 #8
0
        public void Markdown_InvalidateCodeTest() {
            string content = "```{r}#R\n```";
            var factory = EditorShell.Current.ExportProvider.GetExportedValue<ITextBufferFactoryService>();
            ITextBuffer textBuffer = factory.CreateTextBuffer(new ContentTypeMock(MdContentTypeDefinition.ContentType));
            textBuffer.Insert(0, content);

            MdClassifierProvider classifierProvider = new MdClassifierProvider();
            IClassifier cls = classifierProvider.GetClassifier(textBuffer);

            string actual = GetSpans(cls, textBuffer);
            actual.TrimEnd().Should().Be(
@"[0:3] Markdown Code
[6:2] comment
[9:3] Markdown Code");

            Typing.Type(textBuffer, 6, "\n");
            actual = GetSpans(cls, textBuffer);
            actual.TrimEnd().Should().Be(
@"[0:3] Markdown Code
[7:2] comment
[10:3] Markdown Code");

            Typing.Delete(textBuffer, 4, 1);
            actual = GetSpans(cls, textBuffer);
            actual.TrimEnd().Should().Be(
@"[0:3] Markdown Code
[4:5] Markdown Code
[9:3] Markdown Code");

            Typing.Type(textBuffer, 4, "R");
            actual = GetSpans(cls, textBuffer);
            actual.TrimEnd().Should().Be(
@"[0:3] Markdown Code
[7:2] comment
[10:3] Markdown Code");
        }