禁用Resharper在某些代码块周围的自动格式化

本文关键字:周围 格式化 代码 Resharper 禁用 | 更新日期: 2023-09-27 18:27:53

在我的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之外)可以做到这一点?

禁用Resharper在某些代码块周围的自动格式化

没有办法告诉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#不会重新格式化这些块。