public static Task <Document> RefactorAsync( Document document, ForStatementSyntax forStatement, CancellationToken cancellationToken) { ForStatementSyntax newForStatement = forStatement; if (forStatement .DescendantTrivia(TextSpan.FromBounds(forStatement.FirstSemicolonToken.Span.End, forStatement.SecondSemicolonToken.Span.Start)) .All(f => f.IsWhitespaceOrEndOfLineTrivia())) { newForStatement = forStatement.Update( forStatement.ForKeyword, forStatement.OpenParenToken, forStatement.Declaration, forStatement.Initializers, forStatement.FirstSemicolonToken.WithTrailingTrivia(SyntaxFactory.Space), default(ExpressionSyntax), forStatement.SecondSemicolonToken.WithoutLeadingTrivia(), forStatement.Incrementors, forStatement.CloseParenToken, forStatement.Statement); } else { newForStatement = forStatement.RemoveNode(forStatement.Condition, SyntaxRemoveOptions.KeepExteriorTrivia); } return(document.ReplaceNodeAsync(forStatement, newForStatement, cancellationToken)); }