8

In my C# development team, we want to share auto-formatting rules to respect our coding standards to have unified code formatting. I'm actually testing ReSharper and it's great but we have one rule in our standards that I can't seem to get around.

We use the HTMLTextWriter to render some HTML but we have a rule to indent the calls to reflect how they markup will be outputted.

For example :

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();
}

For now, when I reformat the code using ReSharper (or VS), the identation is removed.

Is there a way to add custom rule to prevent/disable reformatting around .RenderBeginTag function calls? Or is there another tool (other than ReSharper or in addition to ReSharper) that could do that?

tckmn
  • 52,184
  • 22
  • 101
  • 145
William Fortin
  • 777
  • 1
  • 4
  • 17
  • Check this question: http://stackoverflow.com/questions/3214894/is-there-a-resharper-comment-directive-to-disable-code-cleanup-for-a-class – rpeshkov Aug 17 '13 at 18:12

1 Answers1

10

There's no way to tell R# to not clean up a part of the code and IMO you don't want to pollute your code with R#-specific markups. A workaround would be to indent your function calls in brackets like so:

 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# won't reformat these blocks.

slvnperron
  • 1,291
  • 10
  • 13