示例#1
0
        public static ParameterListSyntax ToMultiLine(ParameterListSyntax parameterList, CancellationToken cancellationToken = default)
        {
            SyntaxTriviaList leadingTrivia = SyntaxTriviaAnalysis.GetIncreasedIndentationTriviaList(parameterList, cancellationToken);

            var nodesAndTokens = new List <SyntaxNodeOrToken>();

            SeparatedSyntaxList <ParameterSyntax> .Enumerator en = parameterList.Parameters.GetEnumerator();

            if (en.MoveNext())
            {
                nodesAndTokens.Add(en.Current.WithLeadingTrivia(leadingTrivia));

                while (en.MoveNext())
                {
                    nodesAndTokens.Add(CommaToken().WithTrailingTrivia(NewLine()));

                    nodesAndTokens.Add(en.Current.WithLeadingTrivia(leadingTrivia));
                }
            }

            return(ParameterList(
                       OpenParenToken().WithTrailingTrivia(NewLine()),
                       SeparatedList <ParameterSyntax>(nodesAndTokens),
                       parameterList.CloseParenToken));
        }
示例#2
0
        private static AttributeArgumentListSyntax ToMultiLine(AttributeArgumentListSyntax argumentList, CancellationToken cancellationToken = default)
        {
            SyntaxTriviaList leadingTrivia = SyntaxTriviaAnalysis.GetIncreasedIndentationTriviaList(argumentList, cancellationToken);

            var nodesAndTokens = new List <SyntaxNodeOrToken>();

            SeparatedSyntaxList <AttributeArgumentSyntax> .Enumerator en = argumentList.Arguments.GetEnumerator();

            if (en.MoveNext())
            {
                nodesAndTokens.Add(en.Current
                                   .TrimTrailingTrivia()
                                   .WithLeadingTrivia(leadingTrivia));

                while (en.MoveNext())
                {
                    nodesAndTokens.Add(CommaToken().WithTrailingTrivia(NewLine()));

                    nodesAndTokens.Add(en.Current
                                       .TrimTrailingTrivia()
                                       .WithLeadingTrivia(leadingTrivia));
                }
            }

            return(AttributeArgumentList(
                       OpenParenToken().WithTrailingTrivia(NewLine()),
                       SeparatedList <AttributeArgumentSyntax>(nodesAndTokens),
                       argumentList.CloseParenToken.WithoutLeadingTrivia()));
        }
示例#3
0
        public static ConditionalExpressionSyntax ToMultiLine(ConditionalExpressionSyntax conditionalExpression, CancellationToken cancellationToken = default)
        {
            SyntaxTriviaList leadingTrivia = SyntaxTriviaAnalysis.GetIncreasedIndentationTriviaList(conditionalExpression, cancellationToken);

            leadingTrivia = leadingTrivia.Insert(0, NewLine());

            return(ConditionalExpression(
                       conditionalExpression.Condition.WithoutTrailingTrivia(),
                       Token(leadingTrivia, SyntaxKind.QuestionToken, TriviaList(Space)),
                       conditionalExpression.WhenTrue.WithoutTrailingTrivia(),
                       Token(leadingTrivia, SyntaxKind.ColonToken, TriviaList(Space)),
                       conditionalExpression.WhenFalse.WithoutTrailingTrivia()));
        }
示例#4
0
        public static Task <Document> ToMultiLineAsync(
            Document document,
            BinaryExpressionSyntax condition,
            CancellationToken cancellationToken = default)
        {
            SyntaxTriviaList leadingTrivia = SyntaxTriviaAnalysis.GetIncreasedIndentationTriviaList(condition, cancellationToken);

            leadingTrivia = leadingTrivia.Insert(0, NewLine());

            var rewriter = new BinaryExpressionToMultiLineRewriter(leadingTrivia);

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

            return(document.ReplaceNodeAsync(condition, newCondition, cancellationToken));
        }