StyleCop 可以幫助強制執行代碼格式化規范,ReSharper 可以幫助你更高效地編寫代碼。把兩者結合起來,你便能高效地編寫符合團隊強制格式化規范的代碼來。
本文就介紹如何使用 ReSharper 來高效地遵循 StyleCop 的代碼格式化規范。
?
本文內容
- 安裝插件 StyleCop by JetBrains
- 修改 StyleCop by JetBrains 的規則
- 不通用的 StyleCop by JetBrains 規則
- 參考資料
?
安裝插件 StyleCop by JetBrains
StyleCop by JetBrains 插件的開發名稱是 StyleCop.ReSharper,所以你也可以通過搜索 StyleCop.ReSharper 得到同樣的插件。
▲ StyleCop by JetBrains 的圖標
先安裝 StyleCop by JetBrains 插件。注意這是 ReSharper 的插件,而不是 Visual Studio 的插件。你需要到 ReSharper 的 Extension Manager 中去下載。
?
?
▲ 前往 ReSharper 的 Extension Manager
在 ReSharper 自己的插件管理頁面,搜索并安裝 StyleCop by JetBrains 插件:
?
?
▲ 搜索并安裝 StyleCop by JetBrains
當你點擊了窗口下面的那個“Install”按鈕后,ReSharper 會彈出一個等待窗口一次性安裝完畢。你需要等待,等待的時間取決于網速。
安裝完之后,重啟 Visual Studio 就會生效。如果你稍后見到了本節上面的圖標,那么那實際上就是 StyleCop by JetBrains 插件的一部分。
修改 StyleCop by JetBrains 的規則
現在打開一個以前寫的項目,你可能會發現大量的代碼都已被波浪線入侵 ? 。
?
?
▲ 代碼已被波浪線入侵,代碼源自我的另一篇博客:如何實現一個可以用 await 異步等待的 Awaiter。
如果你現在編寫新的代碼,你會發現新的代碼已經開始使用 StyleCop 建議的規則了。不過,可能這個規則并不是你希望的規則,正如這張圖所描述的那樣:
The documentation text within the param tag does not contain any whitespace between words, indicating that it most likely does not follow a proper grammatical structure required for documentation text. [StyleCp Rule: SA1630]
翻譯過來:param
標記中的文檔文本不包含任何單詞之間的空格,表示它很可能不遵循文檔文本所需的正確語法結構。[StyleCp規則:SA1630]
。很明顯,這一條 StyleCop 規則連中文都沒有考慮過,中文文本怎么可能包含單詞之間的空格呢 ? 。
所以,很明顯我們需要定制我們自己的 StyleCop 規則。
在 ReSharper 的設置中找到 Code Inspection -> Inspection Serverity -> C# -> StyleCop。展開之后你就能看到 StyleCop by JetBrains 的規則定制了。
?
?
▲ 定制規則
在這里,按照你的團隊約定,將一項項的值設置為:
- 不遵守
- 提示
- 建議
- 警告
- 錯誤
?
?
不通用的 StyleCop by JetBrains 規則
實際上使用此插件生成的 StyleCop 規則并不是 StyleCop 的通用配置,而是生成了一個 DotSettings 的 ReSharper 配置。
如果需要使用到通用配置,請閱讀 在 Visual Studio 中使用 StyleCop 來約束團隊代碼規范。
參考資料
- StyleCop code style settings and inspections - .NET Tools Blog.NET Tools Blog
- ReSharper Gallery - StyleCop by JetBrains
本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名呂毅(包含鏈接:https://blog.csdn.net/wpwalter),不得用于商業目的,基于本文修改后的作品務必以相同的許可發布。如有任何疑問,請與我聯系。