C# 修复使用对象初始值设定项时的缩进

C# 修复使用对象初始值设定项时的缩进,c#,formatting,coding-style,resharper,C#,Formatting,Coding Style,Resharper,是否有一种工具可以自动缩进代码,并以以下方式使用: SomeType someType = new SomeType { Prop1 = "prop 1 value", Prop2 = "prop 2 value", Things = new List<Thing> { new Thing { ThingProp = "thing prop value" } } }; S

是否有一种工具可以自动缩进代码,并以以下方式使用:

SomeType someType = new SomeType
{
    Prop1 = "prop 1 value",
    Prop2 = "prop 2 value",
    Things = new List<Thing>
    {
        new Thing
        {
            ThingProp = "thing prop value"
        }
    }
};
SomeType SomeType=新的SomeType
{
Prop1=“Prop1值”,
Prop2=“Prop2值”,
事物=新列表
{
新事物
{
ThingProp=“事物属性值”
}
}
};
i、 e.使用与其他C#代码中常见的相同的大括号缩进规则

ReSharper喜欢更大程度地缩进,但如果代码稍后发生更改,则不会维护意图(我们关闭了各种ReSharper选项以防止这种情况发生)

标准Visual Studio 2008格式选项(Ctrl-K-D)不会更改对象初始值设定项的缩进

类别定义包括在下面

public class Thing
{
    public string ThingProp { get; set; }
}

public class SomeType
{
    public string Prop1 { get; set; }
    public string Prop2 { get; set; }
    public List<Thing> Things { get; set; }
}
公共类的东西
{
公共字符串ThingProp{get;set;}
}
公共类SomeType
{
公共字符串Prop1{get;set;}
公共字符串Prop2{get;set;}
公共列表事物{get;set;}
}

进入ReSharper/Options/Languages/C#/Formatting Style/Other并取消选中“缩进数组、对象和集合初始值设定项块”(底部附近)

(对于数组、集合和对象初始值设定项,有一些不同的选项,但它们分散在不同的部分。据我所知,预览没有考虑您选择的其他选项,这没有帮助…)


如果您让ReSharper使用Ctrl-eCtrl-C重新格式化代码,您可以让它完全按照您的帖子格式化代码。要使嵌入的列表项完全展开,您需要在换行和换行中取消勾选“将简单数组、对象和集合放在单行上”,这可能不是您在其他地方想要的:(

这阻止了ReSharper干预格式化,但遗憾的是,这对自动格式化没有帮助真的吗?对我来说,它让自动格式化像我期望的那样工作。当你点击},它做了什么?我最初的评论不是100%正确-这是可行的,但对
列表
初始化没有作用好的,我会尝试重现准确的s我用iTunes编辑并进一步修改选项。你打算如何重新格式化?我通常只删除重新键入最后一个右大括号。