public override ExpressionSyntax VisitConditionalExpression(ConditionalExpressionSyntax node)
 {
     return(node
            .WithCondition(
                Visit(node.Condition))
            .WithWhenTrue(
                Visit(node.WhenTrue))
            .WithWhenFalse(
                Visit(node.WhenFalse)));
 }
        public static Task <Document> RefactorAsync(
            Document document,
            ConditionalExpressionSyntax conditionalExpression,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            ConditionalExpressionSyntax newConditionalExpression = conditionalExpression
                                                                   .WithCondition(Negator.LogicallyNegate(conditionalExpression.Condition))
                                                                   .WithWhenTrue(conditionalExpression.WhenFalse.WithTriviaFrom(conditionalExpression.WhenTrue))
                                                                   .WithWhenFalse(conditionalExpression.WhenTrue.WithTriviaFrom(conditionalExpression.WhenFalse))
                                                                   .WithFormatterAnnotation();

            return(document.ReplaceNodeAsync(conditionalExpression, newConditionalExpression, cancellationToken));
        }
        public static Task <Document> RefactorAsync(
            Document document,
            ConditionalExpressionSyntax conditionalExpression,
            CancellationToken cancellationToken)
        {
            ConditionalExpressionSyntax newNode = conditionalExpression
                                                  .WithCondition(
                ParenthesizedExpression(conditionalExpression.Condition.WithoutTrivia())
                .WithTriviaFrom(conditionalExpression.Condition))
                                                  .WithFormatterAnnotation();

            return(document.ReplaceNodeAsync(conditionalExpression, newNode, cancellationToken));
        }
        public static async Task <Document> RefactorAsync(
            Document document,
            ConditionalExpressionSyntax conditionalExpression,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            SyntaxNode oldRoot = await document.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false);

            ConditionalExpressionSyntax newConditionalExpression = conditionalExpression
                                                                   .WithCondition(conditionalExpression.Condition.Negate())
                                                                   .WithWhenTrue(conditionalExpression.WhenFalse.WithTriviaFrom(conditionalExpression.WhenTrue))
                                                                   .WithWhenFalse(conditionalExpression.WhenTrue.WithTriviaFrom(conditionalExpression.WhenFalse))
                                                                   .WithFormatterAnnotation();

            SyntaxNode newRoot = oldRoot.ReplaceNode(conditionalExpression, newConditionalExpression);

            return(document.WithSyntaxRoot(newRoot));
        }
Beispiel #5
0
        private static async Task <Document> SwapStatementsAsync(
            Document document,
            ConditionalExpressionSyntax conditionalExpression,
            CancellationToken cancellationToken)
        {
            SyntaxNode oldRoot = await document.GetSyntaxRootAsync(cancellationToken);

            ConditionalExpressionSyntax newConditionalExpression = conditionalExpression
                                                                   .WithCondition(conditionalExpression.Condition.Negate())
                                                                   .WithWhenTrue(conditionalExpression.WhenFalse.WithTriviaFrom(conditionalExpression.WhenTrue))
                                                                   .WithWhenFalse(conditionalExpression.WhenTrue.WithTriviaFrom(conditionalExpression.WhenFalse))
                                                                   .WithAdditionalAnnotations(Formatter.Annotation);

            SyntaxNode newRoot = oldRoot.ReplaceNode(conditionalExpression, newConditionalExpression);

            return(document.WithSyntaxRoot(newRoot));
        }
Beispiel #6
0
        private static async Task <Document> AddParenthesesToConditionAsync(
            Document document,
            ConditionalExpressionSyntax conditionalExpression,
            CancellationToken cancellationToken)
        {
            SyntaxNode oldRoot = await document.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false);

            ConditionalExpressionSyntax newNode = conditionalExpression
                                                  .WithCondition(
                SyntaxFactory.ParenthesizedExpression(
                    conditionalExpression.Condition.WithoutTrivia()
                    ).WithTriviaFrom(conditionalExpression.Condition)
                ).WithFormatterAnnotation();

            SyntaxNode newRoot = oldRoot.ReplaceNode(conditionalExpression, newNode);

            return(document.WithSyntaxRoot(newRoot));
        }
Beispiel #7
0
 private static ConditionalExpressionSyntax InvertConditionalExpression(ConditionalExpressionSyntax node, ExpressionSyntax condition) =>
 node
 .WithCondition(condition.WithTriviaFrom(node.Condition))
 .WithWhenTrue(node.WhenFalse.WithTriviaFrom(node.WhenTrue))
 .WithWhenFalse(node.WhenTrue.WithTriviaFrom(node.WhenFalse));