private async Task <Solution> RunLocalSemanticPass(Solution originalSolution, IReadOnlyList <DocumentId> documentIds, ILocalSemanticFormattingRule localSemanticRule, CancellationToken cancellationToken) { if (_verbose) { FormatLogger.WriteLine(" {0}", localSemanticRule.GetType().Name); } var currentSolution = originalSolution; foreach (var documentId in documentIds) { var document = originalSolution.GetDocument(documentId); var syntaxRoot = await GetSyntaxRootAndFilter(localSemanticRule, document, cancellationToken); if (syntaxRoot == null) { continue; } StartDocument(); var newRoot = await localSemanticRule.ProcessAsync(document, syntaxRoot, cancellationToken); EndDocument(document); if (syntaxRoot != newRoot) { currentSolution = currentSolution.WithDocumentSyntaxRoot(documentId, newRoot); } } return(currentSolution); }
private async Task<Solution> RunLocalSemanticPass(Solution originalSolution, IReadOnlyList<DocumentId> documentIds, ILocalSemanticFormattingRule localSemanticRule, CancellationToken cancellationToken) { if (_verbose) { FormatLogger.WriteLine(" {0}", localSemanticRule.GetType().Name); } var currentSolution = originalSolution; foreach (var documentId in documentIds) { var document = originalSolution.GetDocument(documentId); var syntaxRoot = await GetSyntaxRootAndFilter(localSemanticRule, document, cancellationToken); if (syntaxRoot == null) { continue; } StartDocument(); var newRoot = await localSemanticRule.ProcessAsync(document, syntaxRoot, cancellationToken); EndDocument(document); if (syntaxRoot != newRoot) { currentSolution = currentSolution.WithDocumentSyntaxRoot(documentId, newRoot); } } return currentSolution; }