更新ParameterSyntaxList不会在Visual Studio中更新代码吗?

伊凡·兹拉捷夫(Ivan Zlatev)

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

前:

public void Method(string a, string b, string c)
{
}

重构后:

public void Method(string a, 
                   string b, 
                   string c)
{
}

重构的代码在下面,但是问题是代码格式在Visual Studio中没有改变。调试时-我可以看到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);
}
伊凡·兹拉捷夫(Ivan Zlatev)

我自己想通了。要插入新行,我必须使用EndOfLine琐事:

.WithLeadingTrivia(SyntaxFactory.EndOfLine("\n"), SyntaxFactory.Whitespace(padding))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SharePoint Visual Studio部署不会在更新时覆盖显示模板

来自分类Dev

为什么 Visual Studio Code 更新不会在 20.04 上运行?

来自分类Dev

JProgressBar不会在循环内更新

来自分类Dev

ListView不会在拖放时更新

来自分类Dev

值不会在视图上更新

来自分类Dev

ListView不会在拖放时更新

来自分类Dev

使用C#,WPF,实体框架和Visual Studio 2012不会在数据库中更新数据

来自分类Dev

对代码的更改不会在 exe 文件上更新

来自分类Dev

CMAKE不会在Visual Studio中创建INSTALL项目

来自分类Dev

ng-model不会在IE中更新

来自分类Dev

OnActivityResult不会在Android中更新ImageView

来自分类Dev

一对多字段不会在JPA中更新

来自分类Dev

合并不会在JPA中更新

来自分类Dev

模型不会在Angular 2单选列表中更新

来自分类Dev

jQuery Timepicker不会在AngularJS指令中更新模型

来自分类Dev

UndoManager的canUndo属性不会在SwiftUI中更新

来自分类Dev

QML对象不会在显示中更新

来自分类Dev

滚动后,UILabel不会在UITableViewCell中更新

来自分类Dev

行不会在数据库中更新

来自分类Dev

OnActivityResult不会在Android中更新ImageView

来自分类Dev

按钮不会在Internet Explorer中更新

来自分类Dev

PUT表单不会在Symfony 2中更新

来自分类Dev

输入值不会在托管Bean中更新

来自分类Dev

更改资产outputPath不会在html中更新

来自分类Dev

数据不会在数据库中更新

来自分类Dev

Observer 不会在 JavaFX GUI 中运行更新

来自分类Dev

React - 道具不会在整个组件中更新相同

来自分类Dev

Rails全局变量不会在更新时更新

来自分类Dev

Visual Studio:不会在子窗口中绘制矩形