如何修复ReSharper在对象和其他初始化器上的缩进问题

23

我已经发现了这个问题的其他副本,但它们都非常古老,并且解决方案不适用于R#8,因为设置已更改。

当我进行匿名类型或对象初始化(任何带有内容的花括号缩进),我希望采用BSD风格:

var test = new CustomType
{
    Prop1 = value1,
    Prop2 = value2,
};

...我将 R# Options / Code Editing / C# / Formatting Style / Braces Layout / Array and object initializer 设置为 "At next line (BSD style)"。然而,当我添加新的花括号并按回车键时,仍然会得到以下结果:

var test = new CustomType
           {
               Prop1 = value1,
               Prop2 = value2,
           };

我认为这是Whitesmiths风格。

我需要做什么才能让R# 8不缩进初始化程序的花括号?

2个回答

40

这两个设置一起控制以下内容:

  • 数组、对象和集合初始化:false

Option1

  • 数组和对象初始化:BSD风格

Option2

来自OP的更新

可能需要为“此计算机”设置这些设置,而不仅仅是个人或团队共享选项。


这些是我拥有的设置,但它们是在团队共享和个人设置中设置的。结果我还需要更改"This Computer"的设置。这是否可以预料到?我以为团队共享应该覆盖计算机设置? - danludwig
有些设置在其默认设置下,Resharper无法检测到被覆盖的情况,你可能会遇到这个“bug”。在大多数情况下,最具体的设置会胜出(解决方案、团队、个人),但这完全取决于在“管理设置”下找到的设置文件的顺序。 - jessehouwing
你知道吗,我从来不知道这些有一个顺序。现在我明白了,但我的“上移”和“下移”按钮对此被禁用了。 - danludwig

0
在我的情况下,我按照被接受的答案中的指示进行操作,但是ReSharper仍然没有按照我期望的方式(或者答案所说的方式)格式化对象初始化程序。经过多次尝试,我发现StyleCop扩展的设置驱动了格式化,而不是团队共享设置文件中的设置。我必须禁用StyleCop扩展设置层才能实现所需的格式化。
这是来自ReSharper-->管理选项菜单的截图: ReSharper Settings Layers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接