2012-12-04 11 views
5

Model SA1503 w stylu StyleCop to oferta dotycząca wszystkiego lub nic, jeśli chodzi o nawiasy klamrowe. Chcę być w stanie pozwolić następujący kod:Reguła StyleCop dla wielowarstwowych nawiasów klamrowych

if (x == 3) return true; 

Ale zabronić następujące:

if (x == 3) 
    return true; 

if (x == 3) 
    foreach (var w in widgets) 
     x++; 

Więc w zasadzie ta sama linia bez nawiasów dobry, multi-line bez nawiasów klamrowych złych.

Jestem nowy w pisaniu niestandardowych reguł StyleCop i walczę z tym, od czego zacząć. Każda pomoc będzie bardzo ceniona.

Odpowiedz

1

Chciałam te same style i musiałem wyłączyć reguły StatementMustNotBeOnSingleLine i CurlyBracketsMustNotBeOmitted, aby je obsłużyć. To teraz obsługuje scenariusz z pojedynczą linią, ale niestety nie sprawdza scenariusza wielowierszowego.

Jednak nie sądzę, że powinna to być nowa zasada, ale raczej zmiana obecnych reguł (być może konfigurowalna). Sugeruję zgłoszenie problemu na numer StyleCop site. Jeśli grasz, uzyskaj numer source i dokonaj zmiany. W dokumentacji znajduje się developer guide, która pomoże Ci zacząć.

+0

Czy implementują one swoje reguły, tak jak wprowadzilibyśmy regułę niestandardową? Gdybym mógł zlokalizować źródło reguły, byłoby to wielką pomocą w rozpoczęciu pisania reguły niestandardowej. – Chris

+0

Czy * może * może wyglądać na [StyleCop +] (http://stylecopplus.codeplex.com/), który obsługuje [reguły niestandardowe] (http://stylecopplus.codeplex.com/wikipage?title=How%20to% 20 Utwórz% 20StyleCop% 20Custom% 20Rule & referringTitle = Documentation). Nigdy go nie używałem, więc nie mam pojęcia, jak to dobrze. – Mightymuke

+0

Jeśli grasz bezpośrednio w StyleCop, w folderze 'Project/Docs' znajduje się dokument" StyleCopSDK ", który może pomóc. – Mightymuke