2012-12-04 59 views
5

StyleCop中的SA1503对于大括号而言是全有或全无。我希望能够允许下面的代码:用于多线卷边括号的StyleCop规则

if (x == 3) return true; 

但不允许以下:

if (x == 3) 
    return true; 

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

所以基本上,同一线路没有大括号好,多行不坏的大括号。

我是新来编写自定义StyleCop规则,我挣扎着从哪里开始。任何帮助将不胜感激。

回答

1

我想要相同的样式,并不得不关闭规则StatementMustNotBeOnSingleLineCurlyBracketsMustNotBeOmitted来支持它。这现在支持单线情况,但不幸的是不检查多线情况。

但是,我不认为这应该是一个新的规则,而是对当前规则的改变(可能是可配置的控制)。我建议在StyleCop site上提出问题,如果你在比赛中获得source并进行更改。文档中有一个developer guide,这将有助于您开始。

+0

他们是否实施他们的规则,因为我们会实施自定义规则?如果我能找到一条规则的来源,那么在开始编写自定义规则时会有很大的帮助。 – Chris

+0

可能*可能*查看[StyleCop +](http://stylecopplus.codeplex.com/),它支持[自定义规则](http://stylecopplus.codeplex.com/wikipage?title=How%20to% 20Create%20StyleCop%20Custom%20Rule&referringTitle =文档)。我从来没有用过它,所以我不知道它有多好。 – Mightymuke

+0

如果你直接使用StyleCop,在Project/Docs文件夹中有一个'StyleCopSDK'文件可能会有所帮助。 – Mightymuke