private ImmutableArray <CodeAction> GetCodeRefactorings(Document document, IDiagnosticLocator locator)
        {
            var builder  = ImmutableArray.CreateBuilder <CodeAction>();
            var context  = new CodeRefactoringContext(document, locator.GetSpan(), a => builder.Add(a), CancellationToken.None);
            var provider = CreateProvider();

            provider.ComputeRefactoringsAsync(context).Wait();
            return(builder.ToImmutable());
        }
Example #2
0
        private void VerifyExpectations(Document document, IDiagnosticLocator locator, CompletionTrigger?trigger, Action <ImmutableArray <CompletionItem> > assertion)
        {
            var selectedTrigger = trigger ?? CompletionTrigger.Default;
            var provider        = CreateProvider();
            var span            = locator.GetSpan();
            var options         = document.GetOptionsAsync(CancellationToken.None).GetAwaiter().GetResult();
            var service         = new TestCompletionService(document.Project.Solution.Workspace, LanguageName, provider);
            var result          = service.GetCompletionsAsync(document, span.Start, selectedTrigger, ImmutableHashSet <string> .Empty, options, CancellationToken.None).GetAwaiter().GetResult();

            assertion(result.Items);
        }
        private Diagnostic FindOrCreateDiagnosticForDescriptor(Document document, DiagnosticDescriptor descriptor, IDiagnosticLocator locator)
        {
            var reportedDiagnostics = GetReportedDiagnostics(document, locator).ToList();
            var diagnostic          = reportedDiagnostics.FirstOrDefault(x => x.Id == descriptor.Id);

            if (diagnostic != null)
            {
                return(diagnostic);
            }

            var tree = document.GetSyntaxTreeAsync(CancellationToken.None).Result;

            return(Diagnostic.Create(descriptor, Location.Create(tree, locator.GetSpan())));
        }