private async Task <Document> BreakParametersApart(Document document, ArgumentListSyntax argumentListNode, CancellationToken cancellationToken)
        {
            if (argumentListNode.Arguments.Count < 2)
            {
                return(document);
            }

            ArgumentSyntax firstParameter = argumentListNode.Arguments.First();

            List <ArgumentSyntax> updatedParameters = new List <ArgumentSyntax>();

            updatedParameters.Add(firstParameter.WithoutLeadingTrivia().WithoutTrailingTrivia());

            foreach (ArgumentSyntax parameter in argumentListNode.Arguments.Skip(1).ToList())
            {
                updatedParameters.Add(parameter
                                      .WithoutTrailingTrivia()
                                      .WithLeadingTrivia(SyntaxFactory.EndOfLine("\r\n"), GetIndentTrivia(argumentListNode)));
            }

            ArgumentListSyntax updatedParameterList = SyntaxFactory.ArgumentList(argumentListNode.OpenParenToken,
                                                                                 SyntaxFactory.SeparatedList(updatedParameters),
                                                                                 argumentListNode.CloseParenToken);

            SyntaxNode root = await document.GetSyntaxRootAsync(cancellationToken);

            var newRoot = root.ReplaceNode(argumentListNode, updatedParameterList);

            return(document.WithSyntaxRoot(newRoot));
        }
Beispiel #2
0
 private static string For(ArgumentSyntax argument)
 {
     argument = argument.WithoutLeadingTrivia();
     return($"{argument.ToFullString()}".Trim());
 }