C# 更新参数SyntaxList不是在更新Visual Studio中的代码?

C# 更新参数SyntaxList不是在更新Visual Studio中的代码?,c#,.net,roslyn,C#,.net,Roslyn,我正在尝试编写一个小的重构,它将方法/参与者参数分开,如下所示: 之前: public void Method(string a, string b, string c) { } 重构后: public void Method(string a, string b, string c) { } 重构的代码如下所示,但问题是代码格式在VisualStudio中没有更改。调试时-我可以看到updatedParamet

我正在尝试编写一个小的重构,它将方法/参与者参数分开,如下所示:

之前:

public void Method(string a, string b, string c)
{
}
重构后:

public void Method(string a, 
                   string b, 
                   string c)
{
}
重构的代码如下所示,但问题是代码格式在VisualStudio中没有更改。调试时-我可以看到updatedParameterList的格式正确。我错过了什么

private async Task<Document> BreakParametersApart(Document document, ParameterListSyntax parameterListNode, CancellationToken cancellationToken)
{
    ParameterSyntax firstParameter = parameterListNode.Parameters.First();

    int column = firstParameter.GetLocation().GetLineSpan().StartLinePosition.Character;

    StringBuilder paddingBuilder = new StringBuilder("\n");
    for (int i = 0; i < column; i++)
        paddingBuilder.Append(" ");
    string padding = paddingBuilder.ToString();

    List<ParameterSyntax> updatedParameters = new List<ParameterSyntax>();
    updatedParameters.Add(firstParameter.WithoutLeadingTrivia().WithoutTrailingTrivia());

    foreach (ParameterSyntax parameter in parameterListNode.Parameters.Skip(1).ToList())
        updatedParameters.Add(parameter.WithoutLeadingTrivia().WithoutTrailingTrivia().WithLeadingTrivia(SyntaxFactory.Whitespace(padding)));

    ParameterListSyntax updatedParameterList = SyntaxFactory.ParameterList(parameterListNode.OpenParenToken, SyntaxFactory.SeparatedList(updatedParameters), parameterListNode.CloseParenToken);

    SyntaxNode root = await document.GetSyntaxRootAsync(cancellationToken);
    var newRoot = root.ReplaceNode(parameterListNode, updatedParameterList);
    return document.WithSyntaxRoot(newRoot);
}

我自己想出来的。要插入新行,我必须使用EndOfLine的琐事:


.WithLeadingTrivaSyntaxFactory.EndOfLine\n,SyntaxFactory.Whitespacepadding

一个关键问题:避免硬编码,因为您需要使用所处文件的行尾格式。一种可能的方法是去追踪的琐事,并抓住任何EndOfLine琐事。或者也可以做其他事情。