2013-08-16 25 views
8

W moim zespole programistycznym C# chcemy udostępnić reguły automatycznego formatowania, aby przestrzegać standardów kodowania w celu ujednoliconego formatowania kodu. Właściwie testuję ReSharper i jest świetny, ale mamy jedną zasadę w naszych standardach, której nie mogę obejść.Wyłącz automatyczne formatowanie Resharpera wokół pewnych bloków kodu

Używamy HTMLTextWriter do renderowania kodu HTML, ale mamy regułę do wcięcia wywołań, aby odzwierciedlić sposób, w jaki będą generowane znaczniki.

Na przykład

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

Teraz, kiedy formatowania kod za pomocą ReSharper (lub VS), przy czym wcięć jest usuwany.

Czy istnieje sposób dodania niestandardowej reguły w celu zapobiegania/blokowania ponownego formatowania wywołań funkcji .RenderBeginTag? Czy istnieje inne narzędzie (inne niż ReSharper lub oprócz ReSharper), które może to zrobić?

+0

Sprawdź to pytanie: http://stackoverflow.com/questions/3214894/is-there-a-resharper-comment-directive-to-disable-code-cleanup-for-a-class – rpeshkov

Odpowiedz

10

Nie da się powiedzieć, żeby R # nie posprzątał części kodu i IMO, nie chcesz zanieczyszczać kodu za pomocą specyficznych znaczników R #. Obejście problemu polegałoby na wcięciu twoich wywołań funkcji w nawiasach kwadratowych, tak:

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 # nie będzie formatować tych bloków.