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)); }
private static string For(ArgumentSyntax argument) { argument = argument.WithoutLeadingTrivia(); return($"{argument.ToFullString()}".Trim()); }