Beispiel #1
0
        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);
                }
            }
        }