Ejemplo n.º 1
0
        public async Task CanDoTagging(string testFile)
        {
            // Arrange.
            var sourceCode         = File.ReadAllText(testFile);
            var textBuffer         = TextBufferUtility.CreateTextBuffer(Container, sourceCode);
            var backgroundParser   = new BackgroundParser(textBuffer);
            var snapshot           = textBuffer.CurrentSnapshot;
            var syntaxTree         = snapshot.GetSyntaxTree(CancellationToken.None);
            var snapshotSyntaxTree = new SnapshotSyntaxTree(snapshot, syntaxTree);
            var tagger             = CreateTagger(backgroundParser, snapshot);

            // Act.
            await tagger.InvalidateTags(snapshotSyntaxTree, CancellationToken.None);

            var tagSpans = tagger.GetTags(new NormalizedSnapshotSpanCollection(new[]
            {
                new SnapshotSpan(snapshot, 0, snapshot.Length)
            })).ToList();

            // Assert.
            if (MustCreateTagSpans)
            {
                Assert.That(tagSpans.Any());
            }

            backgroundParser.Dispose();
        }
Ejemplo n.º 2
0
 protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         _parser.Dispose();
     }
 }
        internal async Task <List <ITagSpan <TTag> > > GetTagSpans <TTagger, TTag>(string sourceCode, CreateTagger <TTagger, TTag> createTagger)
            where TTagger : AsyncTagger <TTag>
            where TTag : ITag
        {
            var textBuffer       = TextBufferUtility.CreateTextBuffer(Container, sourceCode);
            var backgroundParser = new BackgroundParser(textBuffer);
            var snapshot         = textBuffer.CurrentSnapshot;
            var tagger           = createTagger(backgroundParser, textBuffer);

            await tagger.InvalidateTags(snapshot, CancellationToken.None);

            var tags = tagger.GetTags(new NormalizedSnapshotSpanCollection(new[]
            {
                new SnapshotSpan(snapshot, 0, snapshot.Length)
            })).ToList();

            backgroundParser.Dispose();

            return(tags);
        }