public static Task <Document> RefactorAsync( Document document, ForStatementSyntax forStatement, CancellationToken cancellationToken) { LiteralExpressionSyntax trueLiteral = TrueLiteralExpression(); TextSpan span = TextSpan.FromBounds( forStatement.OpenParenToken.FullSpan.End, forStatement.CloseParenToken.FullSpan.Start); IEnumerable <SyntaxTrivia> trivia = forStatement.DescendantTrivia(span); if (!trivia.All(f => f.IsWhitespaceOrEndOfLineTrivia())) { trueLiteral = trueLiteral.WithTrailingTrivia(trivia); } WhileStatementSyntax whileStatement = WhileStatement( WhileKeyword().WithTriviaFrom(forStatement.ForKeyword), forStatement.OpenParenToken, trueLiteral, forStatement.CloseParenToken, forStatement.Statement); whileStatement = whileStatement .WithTriviaFrom(forStatement) .WithFormatterAnnotation(); return(document.ReplaceNodeAsync(forStatement, whileStatement, cancellationToken)); }