有没有办法阻止 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 有一个选项可以禁用注释对齐。