禁用Resharper自动格式化特定代码块周围的内容

8
在我的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一起使用的其他工具)可以做到这一点?


请查看此问题:https://dev59.com/XnA75IYBdhLWcg3wlqIT - rpeshkov
1个回答

9

没有办法告诉R#不要清理代码的某个部分,而且我认为您不想在代码中添加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#不会重新格式化这些代码块。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接