使用 ReSharper,輸入即遵循 StyleCop 的代碼格式化規范

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 的圖標

先安裝 StyleCop by JetBrains 插件。注意這是 ReSharper 的插件,而不是 Visual Studio 的插件。你需要到 ReSharper 的 Extension Manager 中去下載。

?

?

前往 ReSharper 的 Extension Manager
▲ 前往 ReSharper 的 Extension Manager

在 ReSharper 自己的插件管理頁面,搜索并安裝 StyleCop by JetBrains 插件:

?

?

搜索并安裝 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),不得用于商業目的,基于本文修改后的作品務必以相同的許可發布。如有任何疑問,請與我聯系。

轉載于:https://www.cnblogs.com/walterlv/p/10236381.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395568.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395568.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395568.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle數據庫備份恢復,巡檢須要關注的對象設置以及相關恢復概述

數據庫備份恢復。巡檢須要關注的對象設置: 1.數據庫名稱,以及DBID; --dbid在v$database中 SYSORCL>select dbid,name from v$database; DBID NAME ---------- --------- 1385095721 ORCL 2.控制文件的位置; s…

Python迭代器

一、文件迭代器 readline()每次讀取文件的一行,每次調用readline方法會自動到下一行,到文件末尾時,會返回空字符串。 _next_()方法同readline()一樣,只是到最后一行會引發stopiterat…

成千上萬的在線課程時,如何保持理智和學習編碼

by Travis Chan通過特拉維斯陳 成千上萬的在線課程時,如何保持理智和學習編碼 (How to stay sane and learn to code when there are thousands of online courses) We live in the information age. Information about anything we can think of is accessible to…

oracle中noguarantee,聊聊UNDO_RETENTION作用(修改guarantee)

oracle10g中,針對dba_tablespace,加了其中一個額外列是retention.回憶一下Oracle 10g之前,在自動Undo管理的模式下,我們都知道undo_retention參數的作用是用來控制當transaction被commit之后,undo信息的保留時間。這些undo信息可以…

【Hankson 的趣味題】

可能我只適合這道題的50分 但還是要爭取一下的 我們知道對于\(gcd\)和\(lcm\)有這樣的定義 \(a\prod _{i1}^{\pi(a)}p_i^{d_{i}}\) \(b\prod _{i1}^{\pi(b)}p_i^{g_{i}}\) 那么則有 \(gcd(a,b)\prod_{i1}^{\pi(max(a,b))} p_i^{min(g_i,d_i)}\) \(lcm(a,b)\prod_{i1}^{\pi(max(…

C# 控件雙緩沖控制 ControlStyles 枚舉詳解

ControlStyles 枚舉.NET Framework 4指定控件的樣式和行為。 此枚舉有一個 FlagsAttribute 特性,通過該特性可使其成員值按位組合。 命名空間: System.Windows.Forms程序集: System.Windows.Forms(在 System.Windows.Forms.dll …

協作機器人 ai算法_如果我們希望人工智能為我們服務而不是不利于我們,我們需要協作設計...

協作機器人 ai算法by Mariya Yao姚iya(Mariya Yao) 如果我們希望人工智能為我們服務而不是不利于我們,我們需要協作設計 (If we want AI to work for us — not against us — we need collaborative design) The trope “there’s an app for that” is becoming …

Shadow Brokers 公布 2.1 萬美元的 0day 訂閱服務

神秘黑客組織 Shadow Brokers 宣布將向支付 2.1 萬美元 0day 訂閱服務的個人公布最新一批的 NSA 工具,這一聲明給全世界的白帽子黑客或安全研究人員造成了一場倫理危機。 一方面,Shadow Brokers 此前釋出過創造出勒索軟件 WannaCry 的 NSA 工具&#xff…

linux awk 常見字符串處理

awk指定輸出列: awk {print $0} file #打印所有列awk {print $1} file #打印第一列 awk {print $1, $3} file #打印第一和第三列 cat file | awk {print $3, $1} #打印第三列和第一列,注意先后順序。 cat file | awk {print $3, $NF} #打印第三列…

oracle ldap 配置,ldap 安裝

一、安裝步驟1:配置yum源掛著盤鏡像時用到: 這里不做解釋;(yum clean all && yum makecache)2:安裝OpenLDAP組件1)安裝OpenLDAP組件命令如下:[rootgitea ~]# yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap -ycom…

scp跨主機拷貝工具

參考:http://www.cnblogs.com/hitwtx/archive/2011/11/16/2251254.html SSH上A機,要將10.1.17.95機/tpdata/shell_script/下面的crontab.tar.gz文件拷貝到A機的當前文件夾下面: scp weblogic10.1.17.95:/tpdata/shell_script/crontab.tar.gz …

Google Chrome瀏覽器可能在您不知情的情況下破壞了您的測試

by Robert Axelsen羅伯特阿克森(Robert Axelsen) Google Chrome瀏覽器可能在您不知情的情況下破壞了您的測試 (Google Chrome might have broken your tests without you even knowing about it) My colleague just discovered that Chrome 58 (released April 19th) has sile…

Java 9 將采用新的版本字符串格式

在現有的版本編碼格式使用了兩年之后,從Java 9開始,Java版本方案將根據業內軟件版本編碼的最佳實踐進行修改。使用或解析Java版本字符串的應用程序開發人員要注意了,因為這種變化可以會影響他們的應用程序。 正如JEP 223所闡述的那樣&#xf…

oracle 表更新表,Oracle 更新表(另一張表)

JUC學習筆記--Thread多線程基礎實現多線程的兩種方法 java 實現多線程通過兩種方式1.繼承Thread類 ,2.實現Runnable接口 class Newthead extends Thread{ public void ru ...SharePoint中新創建的Web Application在瀏覽器中報404錯誤問題描述:在安裝完成SharePoint 2010后,進入…

jQuery(愛前端)

一 jQuery 簡介 官網:www.jquery.com 口號:寫更少的代碼,做更多的事情 jQuery 是一個快速、小型的、特性很多的JS庫,它把很多事兒都變得簡單。jQuery是免費的、開源的。 jQuery 是 DOM 編程領域的霸主,極大的簡化了原生…

跳過 centos部署 webpy的各種坑

用centos部署webpy發現的各種坑: 1、python 版本: 2、中文編碼: 3、web模塊路徑: 在命令行里輸入python,能import web,但是網站錯誤報告一直報告沒有找到web模塊,說明web模塊路徑有問題。python…

撰寫本文的所有基本React.js概念

Update: This article is now part of my book “React.js Beyond The Basics”.更新:本文現在是我的書《超越基礎的React.js》的一部分。 Read the updated version of this content and more about React at jscomplete.com/react-beyond-basics.在jscomplete.com…

CentOS 7 firewalld使用簡介

2019獨角獸企業重金招聘Python工程師標準>>> Centos升級到7之后,發現無法使用iptables控制Linuxs的端口,google之后發現Centos 7使用firewalld代替了原來的iptables。下面記錄如何使用firewalld開放Linux端口: 1.快速使用說明 開啟…

簡述java語言的特點

簡述java語言的特點: ① 簡單的特性 ② 面向對象的特性 ③ 分布式處理的特性 ④ 健壯的特性 ⑤ 結構中立的特性 ⑥ 安全特性 ⑦ 可移植的特性 ⑧ 解釋的特性 ⑨ 高性能的特性 ⑩ 多線程的特性 轉載于:https://www.cnblogs.com/qq1335…

php函數嵌套 作用域,javascript 嵌套的函數(作用域鏈)_javascript技巧

嵌套的函數(作用域鏈)當你進行函數的嵌套時,要注意實際上作用域鏈是發生變化的,這點可能看起來不太直觀。你可把下面的代碼置入firebug監視值的變化。var testvar window屬性;var o1 {testvar:1, fun:function(){alert(o1: this.testvaro1.fun();1o2.f…