我经常使用 ReSharper“清理代码”命令将代码格式化为我们的编码风格,然后再将其签入源代码管理。一般来说,这工作得很好,但有些代码最好手动格式化(例如,由于 ReSharper 中的缩进规则,链式 linq 方法或多行三元运算符之类的东西有一个奇怪的缩进,将它们推到右侧)。
有没有办法标记文件的某些部分,以告诉 ReSharper 不要格式化该区域?我希望有某种类似于 ReSharper 如何抑制其他警告/功能的标记。如果没有,是否有某种方法可以更改设置组合以使 ReSharper 正确格式化缩进?
编辑:
我发现 ReSharper 论坛上的 this 帖子说生成的代码部分(如 ReSharper 选项页面中定义)在代码清理中被忽略。不过尝试过之后,它似乎并没有被忽视。
Resharper>选项>语言>C#>格式样式>其他>
取消选中“缩进匿名方法体”和“缩进数组、对象和集合初始化块”以及任何其他你喜欢的东西。
作为最后的手段,如果您不想格式化旧代码,但希望对类进行良好格式化,则使类部分化并将新代码放入新文件中。
看看我问的这个问题涉及同样的问题:Resharper 将代码格式化为单行
我得到的答案对我来说非常有用。
很晚了,但显然有is有一种方法可以根据https://www.jetbrains.com/help/resharper/Configure_Code_Formatting_Rules.html#using-comments-to-configure-formatter来做到这一点:包装所需的
部分// @formatter: off
...
// @formatter: on
请注意,空格似乎很重要,没有它,里面的代码仍然会重新格式化。