禁用Visual Studio 2015的注释对齐?

13

如果您在Visual Studio 2015中有以下代码:

var foo = that.Bar(); // Get the value
//foo++;

选择 编辑 -> 高级 -> 格式化文档 会导致格式如下:

var foo = that.Bar(); // Get the value
                      //foo++;

Visual Studio错误地将两个不相关的注释视为相关,并将它们分组在一起。这种关系的假设是因为有连续的行,一个以注释结束,下一个以注释开始。当然,可以通过添加空行来解决这个问题,但这并不总是最好的选择,具体取决于特定的代码。请注意,Visual Studio 2013没有此功能。

我在互联网搜索中找不到有关此功能的任何提及。这是C#,并且Visual Studio已配置为保留制表符。

是否有任何方法可以禁用自动格式化的此部分?


这个帖子讨论了C++的选项(可能是,我没有检查),但是对于C#来说没有相应的选项。我认为这个问题始于某个vs2015更新,因为我觉得这个麻烦是比较新的。 - zeromus
这种行为非常讨厌,因为:
  1. 它会将可能不相关的注释分组在一起
  2. 它会导致大量的更改,在文件差异比较时显示出来
  3. 在C#中没有办法关闭它,尽管显然可以做到,因为C++有这个选项。
- Mick Bruno
1个回答

2
我不认为这是可能的。我在GitHub上的这篇帖子中找到了一个评论提到了你的问题。CyrusNajmabadi写道:
有趣的是,我们添加了一些支持来对齐跨多行的注释。因此,在所提到的示例中,您最终会得到以下格式: Comment alignment 对齐是一个有趣的问题,目前我们没有支持通过制表符进行格式化时发生对齐的功能。但是,考虑到您可能将这些注释附加到通过格式化移动的项目上,因此它变得越来越复杂,因此它们可能会被移动到不在制表符停靠点边界上的位置。

1
谢谢diiN__________。在GitHub上的问题似乎实际上是关于在带有注释的行中保留(或缺乏保留)中线制表符的问题,但它给了我一个好的地方来寻找答案。我遇到的情况是在行的开头插入额外的缩进制表符。我猜你说得对,这可能是不可能的。我甚至搜索了注册表。但还是希望有人知道一个秘密设置。 :-) - Mark Jerde
CyrusNajmabadi反复强调,真正的问题在于修复这个问题需要大量的规则。然而,更合理的做法是,如果没有特定的规则来处理,就让代码保持原样!如果微软希望将连续的注释进行缩进以使其相互匹配,那应该是一个选项,而不是默认行为。 - Mick Bruno
自那时以来有什么变化吗? - Denis535

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