我正在使用Visual Studio 2015候选发布版。
在Visual Studio的早期版本中,我始终在禁用Gson
和Automatic brace completion
的情况下进行编程。
在创建块的先前版本中,在键入Automatically format completed block on }
enter
{
enter
哪会导致:
}
在VS 2015中,结果是:
class Foo
{
}
我是否缺少新的设置,或者这是RC中的错误?
答案 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;
}
}
那么,有没有办法解决旧的行为?没有什么比这更简单了,我很害怕 - 我的猜测是MS只是认为是正确的行为,而旧的那个是马车,并且很难与之争论。您可以采取一些解决方法来接近旧行为,例如手动禁用所有自动格式除以进行大括号对齐,但它仍会稍微改变行为。
尽管如此,我仍然可以看到你期望的行为如何。如果您认为它值得,您可以尝试将其作为Connect上的错误提交,但我不会给它很大的机会来修复" - IMO它修复了一个错误,而不是一个错误。