“移动到另一个文件”后大括号布局错误

时间:2019-01-02 13:40:49

标签: c# resharper

使用重构工具Move To Another FileMove Types Into Matching Files时,Reharper在名称空间后使用错误的换行符样式。如果我使用这些工具重构了一个类,则尽管我的Braces Layout配置了在下一行(BSD样式)

namespace My.Namespace { // <- This brace should be on the next line
    public class MyClass
    {
        public MyClass() 
        {
            // ...
        }
    }
}

此后,当我执行代码清除时,代码将正确格式化:

namespace My.Namespace 
{
    public class MyClass
    {
        public MyClass() 
        {
            // ...
        }
    }
}

有人知道什么可能导致这种行为吗?为什么首先在命名空间前没有换行符?

我正在使用ReSharper 2018.3.1

2 个答案:

答案 0 :(得分:1)

在括号上有设置 ReSharper > Options > Code Editing > C# > Formatting Style > Braces Layout

您可以检查为{em> Type and namespace declaration

设置的At Next Line (BSD Style)设置吗

我正在使用ReSharper 2018.2.3,并且一切正常。

更新

我将ReSharper更新为18.3.1,但一切正常。您还可以检查Tools > Options > Text Editor > C# > Code Style > Formatting > New Lines > New line options for braces上的花括号的VS默认选项吗?

恐怕ReSharper无法覆盖所有Visual Stuido行为。为了避免这种情况,只需关闭所有“ Tools > Options > Text Editor > C# > Formatting > General上的“格式...”选项,以免干扰。

答案 1 :(得分:0)

这解决了我的问题:

ReSharper > Options > Code Editing > c# > Formatting Style > Braces Layout

设置Empty braces formattingTogether on the same line上。因此,我将其更改为On different lines。更改之后,它起作用了。