停止 Visual Studio 文本编辑器自动移动注释行

停止 Visual Studio 文本编辑器自动移动注释行

有没有办法阻止 Visual Studio 文本编辑器(2015 或 2017)在按 Ctrl+K、D 或相关按键(Ctrl+E、D - 格式化整个文档)时自动移动注释行?

我希望我的评论停留在放置的位置,无论代码位置在上面还是在下面。

例如,在撰写评论时换行从第 60 栏开始如下:

code line  
|-------- white space ----------| //... comment ..  <-- comment is auto shifted left  
code line

以便它不会干扰下面或上面的代码,当按下 Ctrl+K,D 时,注释会向左移动,以与周围的代码对齐。

另一方面,当发表评论时遵循代码行, 如下:

|--code line --|- white space -| //..1st comment line..  
|------white space ------------| //..2nd comment line.. <-- comment is properly auto aligned

最终的第二条评论换行,依然与上面的对齐,表示编辑器可以根据某些标准调整注释行的位置。

我应该澄清的是,我想保留 Ctrl+K、D 的其余功能。

编辑:恐怕管理代码格式以下提供塞斯,只是强制应用文本编辑器中针对每种特定语言(特别是 c#)设置的有关预期文本的指令。

因此,即使在注释前面插入了一些制表符或空格,如果应用 Ctrl+K,D,它们也会自动被删除,这仅仅是因为没有关于某些构造中空格处理的相关说明,因此应用一般规则。

我认为在文本编辑器中添加一条简单的指令,例如“保留评论前的空格或制表符”,就能解决问题(事实上但只有当注释跟在代码后面时)。
这只不过是对已经存在但未经记录的行为(据我所搜索)。

答案1

如果你有 ReSharper(出于很多原因,这是一款很棒的工具),它的格式化引擎就不会出现这个问题。转到VS > 工具 > 自定义 > 键盘... > 显示包含“FormatDocument”的命令,并删除所有键映射。现在显示包含“重新格式化”的命令,添加快捷方式Ctrl-KD到 ReSharper 命令。

瞧,不相关的注释不会因为位于连续的行而排成一行。您也可以直接使用 R# 命令Ctrl-Alt-Enter代替Ctrl-KD但后者是我的手指经过多年练习后自动做出的动作,因此覆盖这个组合键是我首选的解决方案。

如果您希望注释具有额外的缩进,则可以使用“// // Comment...”,这可能不是您想要的,但也不算太糟糕。

答案2

这是一个“半解决方案”,但我发现没有更好的解决方案。在许多情况下,注释对齐遵循用户操作。在这种情况下,CTRL-Z(撤消)将注释置于对齐之前的位置。要撤消用户操作,需要再次按 CTRL-Z。正如我所说,这不是解决方案,无论如何,这是保持代码如我们所愿的最快方法。希望 MS 有一个选项可以禁用注释对齐。

相关内容