internal async Task RunTestAsync <TTagger, TTag>(string testFile, CreateTagger <TTagger, TTag> createTagger) where TTagger : AsyncTagger <TTag> where TTag : ITag { var tagSpans = await GetTagSpans(File.ReadAllText(testFile), createTagger); // Assert. if (MustCreateTagSpans) { Assert.NotEmpty(tagSpans); } }
internal async Task <List <ITagSpan <TTag> > > GetTagSpans <TTagger, TTag>(string sourceCode, CreateTagger <TTagger, TTag> createTagger) where TTagger : AsyncTagger <TTag> where TTag : ITag { VisualStudioSourceTextFactory.Instance = Container.GetExportedValue <VisualStudioSourceTextFactory>(); 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); }