禁用Resharper围绕某些代码块自动格式化

时间:2013-08-16 13:28:06

标签: c# resharper autoformatting reformatting

在我的C#开发团队中,我们希望共享自动格式化规则以遵守我们的编码标准,以实现统一的代码格式。我实际上正在测试ReSharper并且它很棒,但我们的标准中有一条规则似乎无法解决。

我们使用HTMLTextWriter来呈现一些HTML,但是我们有一个规则来缩进调用以反映它们将如何输出标记。

例如:

protected override void RenderBody(HtmlTextWriter writer)
{
    writer.AddAttribute("class", "mystyle");
    writer.RenderBeginTag("div");
        writer.AddAttribute("class", "mystyle2");
        writer.RenderBeginTag("div");
            writer.Write("HELLO WORLD");
        writer.RenderEndTag();
    writer.RenderEndTag();
}

现在,当我使用ReSharper(或VS)重新格式化代码时,会删除标识。

有没有办法添加自定义规则来阻止/禁用.RenderBeginTag函数调用周围的重新格式化?或者是否有其他工具(除了ReSharper或ReSharper之外)可以做到这一点?

1 个答案:

答案 0 :(得分:10)

没有办法告诉R#没有清理部分代码和IMO你不想用R#特定的标记来污染你的代码。解决方法是将括号中的函数调用缩进,如下所示:

 private void RenderBody(HtmlTextWriter writer)
 {
     writer.AddAttribute("class", "mystyle");
     writer.RenderBeginTag("div");
     {
         writer.AddAttribute("class", "mystyle2");
         writer.RenderBeginTag("div");
         {
             writer.Write("HELLO WORLD");
         }
         writer.RenderEndTag();
     }
     writer.RenderEndTag();
 }

R#不会重新格式化这些块。