如何使用 Roslyn 在对象初始值设定项中添加新行?

问题描述 投票:0回答:1

我正在尝试使用 Roslyn 自动格式化代码以提高可读性。

这就是我的方法:

public SyntaxNode GetFormatedNode(SyntaxNode node)
{
        var workspace = new AdhocWorkspace();
    OptionSet options = workspace.Options;
    options = options
                .WithChangedOption(CSharpFormattingOptions.NewLinesForBracesInMethods, true)
            .WithChangedOption(CSharpFormattingOptions.NewLinesForBracesInProperties, true)
        .WithChangedOption(new OptionKey(FormattingOptions.UseTabs, LanguageNames.CSharp), true)
        .WithChangedOption(new OptionKey(FormattingOptions.IndentationSize, LanguageNames.CSharp), 4);

    return Formatter.Format(node, workspace, options);
}

例如,这就是我的代码现在给我的:

class Example
{
    void Method()
    {
        Column col = new Column { ID = "mySuperColumnID", Code = "mySuperColumnCode" };
    }
}

我想自动将其格式化为:

class Example
{
    void Method()
    {
        Column col = new Column
        {
            ID = "mySuperColumnID",
            Code = "mySuperColumnCode"
        };
    }
}
c# .net code-generation roslyn
1个回答
0
投票

虽然我还没有实际测试过,但

NewLineForMembersInObjectInit
听起来这就是你想要的。 (这是一个对象初始值设定项,您需要在成员之后添加一个新行...)

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.