internal sealed override async Task <CodeAction> GetFixAsync( ImmutableDictionary <Document, ImmutableArray <Diagnostic> > documentsAndDiagnosticsToFixMap, FixAllState fixAllState, CancellationToken cancellationToken) { // Process all documents in parallel. var updatedDocumentTasks = documentsAndDiagnosticsToFixMap.Select( kvp => FixDocumentAsync(kvp.Key, kvp.Value, cancellationToken)); await Task.WhenAll(updatedDocumentTasks).ConfigureAwait(false); var currentSolution = fixAllState.Solution; foreach (var task in updatedDocumentTasks) { // 'await' the tasks so that if any completed in a canceled manner then we'll // throw the right exception here. Calling .Result on the tasks might end up // with AggregateExceptions being thrown instead. var updatedDocument = await task.ConfigureAwait(false); currentSolution = currentSolution.WithDocumentSyntaxRoot( updatedDocument.Id, await updatedDocument.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false)); } var title = fixAllState.GetDefaultFixAllTitle(); return(new CodeAction.SolutionChangeAction(title, _ => Task.FromResult(currentSolution))); }
internal sealed override async Task<CodeAction> GetFixAsync( ImmutableDictionary<Document, ImmutableArray<Diagnostic>> documentsAndDiagnosticsToFixMap, FixAllState fixAllState, CancellationToken cancellationToken) { // Process all documents in parallel. var updatedDocumentTasks = documentsAndDiagnosticsToFixMap.Select( kvp => FixDocumentAsync(kvp.Key, kvp.Value, cancellationToken)); await Task.WhenAll(updatedDocumentTasks).ConfigureAwait(false); var currentSolution = fixAllState.Solution; foreach (var task in updatedDocumentTasks) { // 'await' the tasks so that if any completed in a cancelled manner then we'll // throw the right exception here. Calling .Result on the tasks might end up // with AggregateExceptions being thrown instead. var updatedDocument = await task.ConfigureAwait(false); currentSolution = currentSolution.WithDocumentSyntaxRoot( updatedDocument.Id, await updatedDocument.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false)); } var title = fixAllState.GetDefaultFixAllTitle(); return new CodeAction.SolutionChangeAction(title, _ => Task.FromResult(currentSolution)); }
public virtual string GetFixAllTitle(FixAllState fixAllState) { return(fixAllState.GetDefaultFixAllTitle()); }
public virtual string GetFixAllTitle(FixAllState fixAllState) { return fixAllState.GetDefaultFixAllTitle(); }