2012-12-04 63 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