Resharper(Visual Studio 智慧提示)的使用 --電腦配置低者慎用
一:Reshaper是什麼
即便是那些整天攻擊 .NET 和 C# 的人,也常常不得不承認 Visual Studio 確實是個夠強大的 IDE,除非他認為更少的 IDE 功能和命令列除錯才是更強大的。可是,即便如此,仍阻止不了一些第三方的個人和廠商開發出一些外掛來讓 VS 變得更強大。Reshaper 就是這樣一個 VS 外掛,它提供了一些在 VS 基礎上更方便於程式設計師使用的功能,當然,劣勢是:它耗掉了更多的記憶體,有可能讓你不夠強大的開發機變得更慢。
安裝完畢後,在 VS 的 Menu 裡,多了個 RESHAPER 。
二:設定
1.1 智慧提示
安裝完畢後,IDE 的智慧提示(Intellisense)便會預設使用 Resharper 的提示,不知道為什麼,我一直不太喜歡它的提示。改過來,是在Option的視窗中:
1.2 快捷鍵
強烈建議你使用 Reshaper 的快捷鍵,不要擔心 Reshaper 會把你原來的快捷鍵設定給覆蓋了,因為如果某個快捷鍵和 VS 是衝突的,Reshaper會讓你自己選擇需要使用 VS 還是 Resharper 的快捷鍵,看如下介面:
注意,不要選擇 Apply to all Reshaper shortcuts,如果選擇了,這個介面將不會再出現了,而一般情況下,你會更喜歡在衝突的時候讓自己做決定。
當然,如果你一定要使用 VS 原來的快捷鍵,那麼,就應該在 Option 的如下視窗中選中紅框內的選項,然後抖抖手,點 Save:
1.3 與 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 就會根據這個設定的標準進行提示,如下:
1.4 Reshaper 的 StyleCop 設定規則和 StyleCop 本身的設定規則衝突問題
熟悉 StyleCop 的碼友們都知道,如果你的專案設定了 StyleCop 本身的規則,StyleCop 就會生成一個設定文件,如下:
那麼,Reshaper 的 StyleCop 設定規則和 StyleCop 本身的設定規則能否變成一個呢?答案是:很遺憾,不能!你必須兩頭設定,使其變成一致。所以對我來說,Reshaper那個提示或者CodeClean只是個輔助手段,StyleCop那個的 “Run StyleCop” 才是最終的提交準則。
1.5 如果不喜歡某個提示該怎麼辦?
是的,你可以修改設定。如下:
在這個例子中,我不喜歡將下劃線開頭的變數作為 warning 進行提示,我們就可以選擇最下方的 change settings…… 進行修改,選擇後,如下:
可以看到,我們修改為加了字首。
三:萬能的 Alt + Enter
如果我們使用了 Reshaper 的快捷鍵設定,那麼,在每個出現提示的地方,點選 Alt + Enter 組合鍵,就會彈出 Resharper 建議你要進行的操作,比如:
在這個提示裡,Reshaper 告訴我們沒有引用 System.Text 這個名稱空間,這個時候,點選 Alt + Enter 就會自動 Using 該名稱空間了;
3.1 自動完成的語法糖
再比如:
在 StringBuilder 上 Alt+Enter 組合鍵,就會提示你此處要用 var。
或者,又比如在 if 上使用組合鍵,就會提示你用三元運算子:
總之,Alt + Enter 是萬能的,看到提示,就使用它,你常常會得到有意義的幫助來提升你程式碼的質量。一些複雜的 LINQ 你不會寫,使用 Alt+Enter 就會自動幫你將一些程式碼轉換成很牛叉的 LINQ,看上你好像是個 LINQ 高手一樣;
3.2 提示
這個小燈就是提示,如果不想使用 Alt + Enter,就用滑鼠猛戳這裡,也會出現 Resharper 的建議。
四:Find Usage
在某個類,或者變數,或者方法上點 Find Usage ,或者戳快捷鍵 Alt + F7,就是把你選中類或變數或方法全部被引用到的地方顯示出來。話說,VS2012之後的查詢和查詢引用功能簡直弱爆了。總之,這個功能也是 Reshaper 的一個亮點。
尤其,我們注意到圖中處,它將你多次查詢用頁籤的形式給你保留了起來,我們在分析程式碼的時候,往往會一次性查詢多個變數的引用,在這個時候,就特別有幫助。總之,這個功能必要而且很程式設計師。
五:File Structure
另外,是否惱怒與檢視類的結構要去戳這個下拉框:
這個時候,你按組合鍵 Ctrl + F11,就會出現 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 結合的問題。