为什么大括号缩进在Visual Studio 2015中搞砸了?

时间:2015-07-01 03:13:55

标签: c# visual-studio-2015

我正在使用Visual Studio 2015候选发布版。

在Visual Studio的早期版本中,我始终在禁用GsonAutomatic brace completion的情况下进行编程。

在创建块的先前版本中,在键入Automatically format completed block on } enter { enter

时,大括号会自动格式化

哪会导致:

}

在VS 2015中,结果是:

class Foo
{
}

我是否缺少新的设置,或者这是RC中的错误?

1 个答案:

答案 0 :(得分:4)

好的,我测试了一下。结果似乎相当明显 - 您告诉Visual Studio }上格式化您的代码,因此它没有这样做。

换句话说,较旧的 Visual Studio中的行为似乎被破坏了 - 即使您已经指定您不希望VS为您进行格式化,它确实。毕竟,当您正在键入时,光标最终会显示在_

class Test
{
    _

然后你只需添加一个},就这样

class Test
{
    }

哪个较旧的Visual Studio会自动格式化为

class Test
{
}

即使您取消选中Automatically format completed block on }。这显然是自动格式化 - 如果您按Ctrl+Z,它将还原格式,而不是}本身。可以说,VS2015中的行为是旧版本中存在的错误的修复

当我开始在设置中使用疯狂格式时,这变得更加明显。像这样的代码:

class Test
{
    public
        string
            Ana
    {
        get; set;
        }
    }

成为

class Test
{
    public
        string
            Ana
    {
        get; set;
        }
        }
在VS2013上!这显然是错误的。另一方面,VS2015正确应用无格式 - 它只是将您的插入符号放在认为所需的位置,并且不会自动应用任何格式,如初。

那么,有没有办法解决旧的行为?没有什么比这更简单了,我很害怕 - 我的猜测是MS只是认为是正确的行为,而旧的那个是马车,并且很难与之争论。您可以采取一些解决方法来接近旧行为,例如手动禁用所有自动格式以进行大括号对齐,但它仍会稍微改变行为。

尽管如此,我仍然可以看到你期望的行为如何。如果您认为它值得,您可以尝试将其作为Connect上的错误提交,但我不会给它很大的机会来修复" - IMO它修复了一个错误,而不是一个错误。