【问题标题】:Is there a way to mark up code to tell ReSharper not to format it?有没有办法标记代码告诉 ReSharper 不要格式化它?
【发布时间】:2011-01-11 16:43:16
【问题描述】:

我经常使用 ReSharper "Clean Up Code" 命令将我的代码格式化为我们的编码风格,然后再将其检入源代码管理。这通常工作得很好,但是手动格式化一些代码更好(例如,由于 ReSharper 中的缩进规则,像链式 linq 方法或多行三元运算符这样的东西有一个奇怪的缩进,将它们推到右边)。

有没有办法标记文件的某些部分以告诉 ReSharper 不要格式化该区域?我希望某种标记类似于 ReSharper 如何抑制其他警告/功能。如果没有,是否有某种方法可以更改设置组合以使 ReSharper 正确格式化缩进?

编辑:

我在 ReSharper 论坛上发现 this 帖子说生成的代码部分(如 ReSharper 选项页面中所定义)在代码清理中被忽略。不过试过了,好像没有被忽略。

【问题讨论】:

  • 你真的想用 R# 特定的标记“污染”你的代码吗?呸呸呸呸……
  • @Oded: 不是真的,不是 - 但我更喜欢因为它的布局而无法阅读的代码。
  • 是的,它不断将我的集合初始化器和 lambda 主体推向右侧。如果您调整格式设置但坚持缩进至少两个步骤太多,它可以有所缓解。
  • ReSharper 绝对疯狂的重新格式化行为是我放弃它转而支持 CodeRush 的重要原因之一。我不应该为了得到我想要的结果而与我的重构工具作斗争
  • 好吧,我在 C# 格式设置的“其他”和“对齐多行结构”下找到了解决问题的方法,但可能无法解决您的问题。

标签: c# code-formatting resharper-4.5


【解决方案1】:

查看我提出的涉及相同问题的这个问题:Resharper formatting code into a single line

我得到的答案对我来说非常有用。

【讨论】:

    【解决方案2】:

    Resharper>选项>语言>C#>格式化样式>其他>

    取消选中“缩进匿名方法体”和“缩进数组、对象和集合初始化程序块”以及任何其他您喜欢的内容。

    【讨论】:

    • “匿名方法体”选项有效(以他们有点奇怪的DoSomethog() 方法为例),但 R# 仍然用大缩进格式化其他块。
    • @adrianbanks - 通过取消选中“缩进数组、对象和集合初始化程序块”,我的数组和初始化程序将被单独保留。不确定您指的是什么 DoSomethog()。
    • @adrianbanks - 另外,如果您的块已经从之前的重新格式化中推出,r# 将不理会它们。将第一个左大括号设置在您想要的位置,CTRL-D 格式化其余部分,后续代码清理不会触及它。
    【解决方案3】:

    作为最后的手段,如果您有不想格式化的旧代码,但又希望对类的添加进行良好格式化,则将类设为部分并将新代码放入新文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 2012-01-17
      相关资源
      最近更新 更多