Example #1
0
        private static async Task <Document> RefactorAsync(
            Document document,
            StatementSyntax statement,
            ExpressionSyntax condition,
            CancellationToken cancellationToken)
        {
            SyntaxNode oldRoot = await document.GetSyntaxRootAsync(cancellationToken);

            SyntaxTriviaList triviaList = SyntaxFactory.TriviaList(SyntaxHelper.NewLine)
                                          .AddRange(statement.GetIndentTrivia())
                                          .Add(SyntaxHelper.DefaultIndent);

            var rewriter = new SyntaxRewriter(triviaList);

            var newCondition = (ExpressionSyntax)rewriter.Visit(condition);

            StatementSyntax newStatement = SetCondition(statement, newCondition)
                                           .WithAdditionalAnnotations(Formatter.Annotation);

            return(document.WithSyntaxRoot(oldRoot.ReplaceNode(statement, newStatement)));
        }