2012-12-04 10 views
5

SA1503 in StyleCop ist ein Alles-oder-Nichts-Abkommen, wenn es um geschweifte Klammern geht. Ich möchte den folgenden Code in der Lage sein zu lassen:StyleCop-Regel für mehrzeilige geschweifte Klammern

if (x == 3) return true; 

Aber nicht zulassen folgendes: bad

if (x == 3) 
    return true; 

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

Also im Grunde gleichen Zeile ohne geschweifte Klammern gut, multi-line ohne geschweifte Klammern.

Ich bin neu beim Schreiben von benutzerdefinierten StyleCop-Regeln, und ich habe Probleme damit anzufangen. Jede Hilfe würde sehr geschätzt werden.

Antwort

1

Ich wollte die gleichen Stile, und musste die Regeln StatementMustNotBeOnSingleLine und CurlyBracketsMustNotBeOmitted zu unterstützen, um es zu unterstützen. Dies unterstützt nun das Single-Line-Szenario, überprüft aber leider nicht das Multi-Line-Szenario.

Ich denke jedoch nicht, dass dies eine neue Regel sein sollte, sondern eine Änderung der aktuellen Regeln (vielleicht konfigurierbar gesteuert). Ich schlage vor, ein Problem auf dem StyleCop site zu erheben, und wenn Sie Spiel sind, erhalten Sie die source und machen Sie die Änderung. Es gibt eine developer guide in der Dokumentation, die Ihnen den Einstieg erleichtern wird.

+0

Implementieren sie ihre Regeln, da wir eine benutzerdefinierte Regel implementieren würden? Wenn ich die Quelle einer Regel finden könnte, wäre es eine große Hilfe, eine benutzerdefinierte Regel zu schreiben. – Chris

+0

Könnte * könnte * möglicherweise auf [StyleCop +] (http://stylecopplus.codeplex.com/) schauen, das Unterstützung für [benutzerdefinierte Regeln] hat (http://stylecopplus.codeplex.com/wikipage?title=How%20to%) 20Create% 20StyleCop% 20Custom% 20Rule & referenceTitle = Dokumentation). Ich habe es nie benutzt, also habe ich keine Ahnung, wie gut es ist. – Mightymuke

+0

Wenn Sie direkt mit StyleCop spielen, gibt es im Ordner 'Project/Docs' ein' StyleCopSDK'-Dokument, das Ihnen helfen kann. – Mightymuke

Verwandte Themen