public async Task TestGetTagsOnBufferTagger() { // don't crash using (var workspace = await TestWorkspace.CreateCSharpAsync("class C { C c; }")) { var document = workspace.Documents.First(); var waiter = new Waiter(); var provider = new SemanticClassificationBufferTaggerProvider( workspace.ExportProvider.GetExportedValue <IForegroundNotificationService>(), workspace.ExportProvider.GetExportedValue <ISemanticChangeNotificationService>(), workspace.ExportProvider.GetExportedValue <ClassificationTypeMap>(), SpecializedCollections.SingletonEnumerable( new Lazy <IAsynchronousOperationListener, FeatureMetadata>( () => waiter, new FeatureMetadata(new Dictionary <string, object>() { { "FeatureName", FeatureAttribute.Classification } })))); var tagger = provider.CreateTagger <IClassificationTag>(document.TextBuffer); using (var disposable = (IDisposable)tagger) { await waiter.CreateWaitTask(); var tags = tagger.GetTags(document.TextBuffer.CurrentSnapshot.GetSnapshotSpanCollection()); var allTags = tagger.GetAllTags(document.TextBuffer.CurrentSnapshot.GetSnapshotSpanCollection(), CancellationToken.None); Assert.Empty(tags); Assert.NotEmpty(allTags); Assert.Equal(allTags.Count(), 1); } } }
public async Task TestGetTagsOnBufferTagger() { // don't crash using (var workspace = await TestWorkspace.CreateCSharpAsync("class C { C c; }")) { var document = workspace.Documents.First(); var waiter = new Waiter(); var provider = new SemanticClassificationBufferTaggerProvider( workspace.ExportProvider.GetExportedValue<IForegroundNotificationService>(), workspace.ExportProvider.GetExportedValue<ISemanticChangeNotificationService>(), workspace.ExportProvider.GetExportedValue<ClassificationTypeMap>(), SpecializedCollections.SingletonEnumerable( new Lazy<IAsynchronousOperationListener, FeatureMetadata>( () => waiter, new FeatureMetadata(new Dictionary<string, object>() { { "FeatureName", FeatureAttribute.Classification } })))); var tagger = provider.CreateTagger<IClassificationTag>(document.TextBuffer); using (var disposable = (IDisposable)tagger) { await waiter.CreateWaitTask(); var tags = tagger.GetTags(document.TextBuffer.CurrentSnapshot.GetSnapshotSpanCollection()); var allTags = tagger.GetAllTags(document.TextBuffer.CurrentSnapshot.GetSnapshotSpanCollection(), CancellationToken.None); Assert.Empty(tags); Assert.NotEmpty(allTags); Assert.Equal(allTags.Count(), 1); } } }