天天看點

Resharper 詳細教程

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t0">前言</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t1">Reshaper是什麼</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t2">設定</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t3">智能提示</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t4">快捷鍵</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t5">與 StyleCop 的整合</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t6">Reshaper設定規則和StyleCop沖突</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t7">如果不喜歡某個提示該怎麼辦</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t8">萬能的 Alt Enter</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t9">自動完成文法糖</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t10">提示</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t11">Find Usage</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t12">Find Results</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t13">查找指派</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t14">File Structure</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t15">萬般兼重構</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t16">快速完成代碼</a>

<a href="http://www.cnblogs.com/zhaoqingqing/p/3895377.html#t17">Cleanup Code</a>

原文中部分快捷鍵在8.2版本中不适用,我已改正,并用紅色标注出來

Resharper 詳細教程

  即便是那些整天攻擊 .NET 和 C# 的人,也常常不得不承認 Visual Studio 确實是個夠強大的 IDE,除非他認為更少的 IDE 功能和指令行調試才是更強大的。可是,即便如此,仍阻止不了一些第三方的個人和廠商開發出一些插件來讓 VS 變得更強大。Reshaper 就是這樣一個 VS 插件,它提供了一些在 VS 基礎上更友善于程式員使用的功能,當然,劣勢是:它耗掉了更多的記憶體,有可能讓你不夠強大的開發機變得更慢。

安裝完畢後,在 VS 的 Menu 裡,會多出個 RESHAPER 。 可以按 Alt+R 打開這個菜單(如右圖所示)

Resharper 詳細教程

安裝完畢後,IDE 的智能提示(Intellisense)便會預設使用 Resharper 的提示,不知道為什麼,我一直不太喜歡它的提示。改過來,是在Option的視窗中,也可以自定義

Resharper 詳細教程

強烈建議你使用 Reshaper 的快捷鍵,不要擔心 Reshaper 會把你原來的快捷鍵設定給覆寫了,因為如果某個快捷鍵和 VS 是沖突的,Reshaper會讓你自己選擇需要使用 VS 還是 Resharper 的快捷鍵,看如下界面:

Resharper 詳細教程

注意,不要選擇 Apply to all Reshaper shortcuts,如果選擇了,這個界面将不會再出現了,而一般情況下,你會更喜歡在沖突的時候讓自己做決定。

當然,如果你一定要使用 VS 原來的快捷鍵,那麼,就應該在 Option 的如下視窗中選中紅框内的選項,然後抖抖手,點 Save:

Resharper 詳細教程

PS:以下配置基于 StyleCop 4.7 和 Reshaper 7.1.3。在某些情況下,版本較舊的情況下,StyleCop 和 Reshaper 沒有整合到一起,使得你在代碼規範的道路上不能使用 Resharper 的提示。

整合後,我們可以在 Option 界面的 Code Eidting-〉Code Cleanup 界面,Add 一個新規則,然後,在新規則中可以看到 stylecop 選項,如下:

Resharper 詳細教程

經過了這些設定後,IDE 就會根據這個設定的标準進行提示,如下:

Resharper 詳細教程

熟悉 StyleCop 的碼友們都知道,如果你的項目設定了 StyleCop 本身的規則,StyleCop 就會生成一個設定文檔,如下:

Resharper 詳細教程

那麼,Reshaper 的 StyleCop 設定規則和 StyleCop 本身的設定規則能否變成一個呢?答案是:很遺憾,不能!你必須兩頭設定,使其變成一緻。是以對我來說,Reshaper那個提示或者CodeClean隻是個輔助手段,StyleCop那個的 “Run StyleCop” 才是最終的送出準則。

是的,你可以修改設定。如下:

Resharper 詳細教程

在這個例子中,我不喜歡将下劃線開頭的變量作為 warning 進行提示,我們就可以選擇最下方的 change settings…… 進行修改,選擇後,如下:

Resharper 詳細教程

可以看到,我們修改為加了字首。

如果我們使用了 Reshaper 的快捷鍵設定,那麼,在每個出現提示的地方,點選 Alt + Enter 組合鍵,就會彈出 Resharper 建議你要進行的操作,比如:

Resharper 詳細教程

在這個提示裡,Reshaper 告訴我們沒有引用 System.Text 這個命名空間,這個時候,點選 Alt + Enter 就會自動 Using 該命名空間了;

再比如:

Resharper 詳細教程

在 StringBuilder 上 Alt+Enter 組合鍵,就會提示你此處要用 var。

或者,又比如在 if 上使用組合鍵,就會提示你用三元運算符:

Resharper 詳細教程

總之,Alt + Enter 是萬能的,看到提示,就使用它,你常常會得到有意義的幫助來提升你代碼的品質。一些複雜的 LINQ 你不會寫,使用 Alt+Enter 就會自動幫你将一些代碼轉換成很牛叉的 LINQ,看上你好像是個 LINQ 高手一樣;

Resharper 詳細教程

這個小燈就是提示,如果不想使用 Alt + Enter,就用滑鼠猛戳這裡,也會出現 Resharper 的建議。

在某個類,或者變量,或者方法上點 Find Usage ,或者戳快捷鍵 Alt+F7,就是把你選中類或變量或方法全部被引用到的地方顯示出來。話說,VS2012之後的查找和查找引用功能簡直弱爆了。總之,這個功能也是 Reshaper 的一個亮點。

Resharper 詳細教程

尤其,我們注意到圖中處,它将你多次查找用頁簽的形式給你保留了起來,我們在分析代碼的時候,往往會一次性查找多個變量的引用,在這個時候,就特别有幫助。總之,這個功能必要而且很程式員。

假如我們想查找某個屬性在那些地方被指派,這個功能就相當實用。我把此快捷鍵設成了 Alt+F8 - Value Origin,或者你可以 滑鼠右鍵,選擇 Inspect – Value Origin

Resharper 詳細教程

如下圖查找結果,共有2處地方對它進行過指派

Resharper 詳細教程

你是否惱怒與檢視類的結構要去戳這個下拉框:

Resharper 詳細教程

這個時候,你按組合鍵 Ctrl + Alt +F,就會出現 Resharper 的 File Structure 視窗:

Resharper 詳細教程

很友善的讓你看到你的整個成員變量視窗。

一個永遠寫出完美代碼的程式員永遠隻存在于一個 白癡Leader 的頭腦裡,作為碼畜的我們都知道,代碼是重構出來的,永遠不是設計出來的。是以,你永遠需要 Ctrl + Shift + R:

Resharper 詳細教程

Resharper 把你可能用到的重構方法都列出來了,動動鍵盤或者滑鼠,你即刻就可以完成一次重構。

使用 VS 提供的智能感覺和 TAB 鍵,能夠快速完成代碼,比如輸入代碼 prop,然後按 Tab 鍵,就會自動建立一個屬性,不過 Resharper 提供了另外的選擇,看上去可以完成更多的代碼。

按組合鍵 Alt + Insert,出現如下視窗:

Resharper 詳細教程

話說我從來沒有使用 VS 的方法自動完成過建立一個構造器,而使用 Resharper 就可以輕松實作。

寫了一個龌蹉的類之後,什麼是最愉快的,就是讓它順便變幹淨以及變規範,這個時候,我們需要右鍵 Cleanup Code (Ctrl + Alt + F):

Resharper 詳細教程

Resharper 提供了一種選擇,讓我們自己設定 Cleanup Code 的規範,當然,因為我們已經引入了 StyleCop ,是以這個規範可以設定起來非常友善。

PS:以上屬于開發中常用的 Reshaper 的功能,本文用于教育訓練組員使用 Reshaper 用,着重想講一講快捷鍵沖突的問題和與 Stylecop 結合的問題。

本文轉自趙青青部落格園部落格,原文連結:http://www.cnblogs.com/zhaoqingqing/p/3895377.html,如需轉載請自行聯系原作者

繼續閱讀