是否有一种工具会以下列方式自动缩进使用object initializers的代码:
SomeType someType = new SomeType
{
Prop1 = "prop 1 value",
Prop2 = "prop 2 value",
Things = new List<Thing>
{
new Thing
{
ThingProp = "thing prop value"
}
}
};
即。使用与其他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; }
}
答案 0 :(得分:16)
进入ReSharper / Options / Languages / C#/格式化样式/其他并取消选中“缩进数组,对象和集合初始化程序块”(靠近底部)。
(有几个不同的选项可以处理数组,集合和对象初始化器,但它们分散在不同的部分。据我所知,预览不会采取你有的其他选项选择考虑,这没有帮助...)
如果让ReSharper使用 Ctrl - E Ctrl - C 重新格式化代码,你可以得到它根据您的帖子完全格式化代码。要使嵌入式列表项完全展开,您需要在“换行符”和“换行”中取消“在单行放置简单数组,对象和集合”,这可能不是您想要的其他内容。 :(