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()); }
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()))); }