前言
注:本文部分內容轉載自:http://www.cnblogs.com/luminji/p/3285505.html
原文中部分快捷鍵在8.2版本中不適用,我已改正,並用紅色標注出來
在線API:http://www.jetbrains.com/resharper/webhelp/Introduction__Overview.html
Reshaper是什么 
即便是那些整天攻擊 .NET 和 C# 的人,也常常不得不承認 Visual Studio 確實是個夠強大的 IDE,除非他認為更少的 IDE 功能和命令行調試才是更強大的。可是,即便如此,仍阻止不了一些第三方的個人和廠商開發出一些插件來讓 VS 變得更強大。Reshaper 就是這樣一個 VS 插件,它提供了一些在 VS 基礎上更方便於程序員使用的功能,當然,劣勢是:它耗掉了更多的內存,有可能讓你不夠強大的開發機變得更慢。
安裝完畢后,在 VS 的 Menu 里,會多出個 RESHAPER 。 可以按 Alt+R 打開這個菜單(如右圖所示)
設置
智能提示
安裝完畢后,IDE 的智能提示(Intellisense)便會默認使用 Resharper 的提示,不知道為什么,我一直不太喜歡它的提示。改過來,是在Option的窗口中,也可以自定義
快捷鍵
強烈建議你使用 Reshaper 的快捷鍵,不要擔心 Reshaper 會把你原來的快捷鍵設置給覆蓋了,因為如果某個快捷鍵和 VS 是沖突的,Reshaper會讓你自己選擇需要使用 VS 還是 Resharper 的快捷鍵,看如下界面:
注意,不要選擇 Apply to all Reshaper shortcuts,如果選擇了,這個界面將不會再出現了,而一般情況下,你會更喜歡在沖突的時候讓自己做決定。
當然,如果你一定要使用 VS 原來的快捷鍵,那么,就應該在 Option 的如下窗口中選中紅框內的選項,然后抖抖手,點 Save:
與 StyleCop 的整合
如果我們同時安裝了 StyleCop(http://stylecop.codeplex.com/) ,則 Resharper 會整合提示你當前的代碼是否符合你的 StyleCop 設置。
PS:以下配置基於 StyleCop 4.7 和 Reshaper 7.1.3。在某些情況下,版本較舊的情況下,StyleCop 和 Reshaper 沒有整合到一起,使得你在代碼規范的道路上不能使用 Resharper 的提示。
整合后,我們可以在 Option 界面的 Code Eidting-〉Code Cleanup 界面,Add 一個新規則,然后,在新規則中可以看到 stylecop 選項,如下:
經過了這些設置后,IDE 就會根據這個設置的標准進行提示,如下:
Reshaper設置規則和StyleCop沖突
熟悉 StyleCop 的碼友們都知道,如果你的項目設置了 StyleCop 本身的規則,StyleCop 就會生成一個設置文檔,如下:
那么,Reshaper 的 StyleCop 設置規則和 StyleCop 本身的設置規則能否變成一個呢?答案是:很遺憾,不能!你必須兩頭設置,使其變成一致。所以對我來說,Reshaper那個提示或者CodeClean只是個輔助手段,StyleCop那個的 “Run StyleCop” 才是最終的提交准則。
如果不喜歡某個提示該怎么辦?
是的,你可以修改設置。如下:
在這個例子中,我不喜歡將下划線開頭的變量作為 warning 進行提示,我們就可以選擇最下方的 change settings…… 進行修改,選擇后,如下:
可以看到,我們修改為加了前綴。
萬能的 Alt + Enter
如果我們使用了 Reshaper 的快捷鍵設置,那么,在每個出現提示的地方,點擊 Alt + Enter 組合鍵,就會彈出 Resharper 建議你要進行的操作,比如:
在這個提示里,Reshaper 告訴我們沒有引用 System.Text 這個命名空間,這個時候,點擊 Alt + Enter 就會自動 Using 該命名空間了;
自動完成語法糖
再比如:
在 StringBuilder 上 Alt+Enter 組合鍵,就會提示你此處要用 var。
或者,又比如在 if 上使用組合鍵,就會提示你用三元運算符:
總之,Alt + Enter 是萬能的,看到提示,就使用它,你常常會得到有意義的幫助來提升你代碼的質量。一些復雜的 LINQ 你不會寫,使用 Alt+Enter 就會自動幫你將一些代碼轉換成很牛叉的 LINQ,看上你好像是個 LINQ 高手一樣;
提示
這個小燈就是提示,如果不想使用 Alt + Enter,就用鼠標猛戳這里,也會出現 Resharper 的建議。
Find Usage
Find Results
在某個類,或者變量,或者方法上點 Find Usage ,或者戳快捷鍵 Alt+F7,就是把你選中類或變量或方法全部被引用到的地方顯示出來。話說,VS2012之后的查找和查找引用功能簡直弱爆了。總之,這個功能也是 Reshaper 的一個亮點。
尤其,我們注意到圖中處,它將你多次查找用頁簽的形式給你保留了起來,我們在分析代碼的時候,往往會一次性查找多個變量的引用,在這個時候,就特別有幫助。總之,這個功能必要而且很程序員。
查找賦值
假如我們想查找某個屬性在那些地方被賦值,這個功能就相當實用。我把此快捷鍵設成了 Alt+F8 - Value Origin,或者你可以 鼠標右鍵,選擇 Inspect – Value Origin
如下圖查找結果,共有2處地方對它進行過賦值
File Structure
你是否惱怒與查看類的結構要去戳這個下拉框:
這個時候,你按組合鍵 Ctrl + Alt +F,就會出現 Resharper 的 File Structure 窗口:
很方便的讓你看到你的整個成員變量窗口。
萬般兼重構
一個永遠寫出完美代碼的程序員永遠只存在於一個 白痴Leader 的頭腦里,作為碼畜的我們都知道,代碼是重構出來的,永遠不是設計出來的。所以,你永遠需要 Ctrl + Shift + R:
Resharper 把你可能用到的重構方法都列出來了,動動鍵盤或者鼠標,你即刻就可以完成一次重構。
快速完成代碼
使用 VS 提供的智能感知和 TAB 鍵,能夠快速完成代碼,比如輸入代碼 prop,然后按 Tab 鍵,就會自動創建一個屬性,不過 Resharper 提供了另外的選擇,看上去可以完成更多的代碼。
按組合鍵 Alt + Insert,出現如下窗口:
話說我從來沒有使用 VS 的方法自動完成過創建一個構造器,而使用 Resharper 就可以輕松實現。
Cleanup Code
寫了一個齷蹉的類之后,什么是最愉快的,就是讓它順便變干凈以及變規范,這個時候,我們需要右鍵 Cleanup Code (Ctrl + Alt + F):
Resharper 提供了一種選擇,讓我們自己設置 Cleanup Code 的規范,當然,因為我們已經引入了 StyleCop ,所以這個規范可以設置起來非常方便。
PS:以上屬於開發中常用的 Reshaper 的功能,本文用於培訓組員使用 Reshaper 用,着重想講一講快捷鍵沖突的問題和與 Stylecop 結合的問題。