2010年9月2日 星期四

工具分享:關於 Region 的二三事

整齊、清潔、有序的程式碼對我而言是一種基本的要求,
因為在雜亂無序的程式海裡,要找尋我們的標的物真的是有如大海撈針一樣,
有人或許會說,善用「Ctrl + F」搜尋呀~
但如果是在編排良好的程式之中,一眼就可以知道我們的目標在哪裡,何必花時間去搜尋呢?
時間對於程式設計師來說是何足珍貴呀!


所以我會在程式中把相關或是有順序性的方法給放在一起,然後用Region給包起來,
這樣一來就可以讓程式碼看起來清爽許多,而且也可以一眼就知道哪些相關的方法放在哪裡。

image

建立Region不是多困難的事,一般最常用就是把程式給反白後,在於選擇的範圍中按滑鼠右鍵,
然後在ContextMenu中選擇範圍陳述式,再選擇Region,就可以完成。
image

建立Region, 使用快速鍵
Step 1.
可先將游標定位在選取範圍開始的地方,然後用快速鍵「Shift + ↓」一直選到結束的地方
image

Step 2.
然後使用「Ctrl + K, Ctrl + S」,就會出現「範圍陳述式」的快顯視窗
image

Step 3.
接下來就是動一下手指,按個倆下「↓」方向鍵後再按「Enter」,就建立好一個 Region,
image

Step 4.
然後就是輸入一個清楚識別的名稱就可以了,這樣完成Region的建立與使用
image

Step 5.
這邊提出一個我個人使用上的建議,
我習慣在Region的名稱前後加上兩個破折號(dash),然後中間放置Region名稱,Region名稱的前後再多空一格,
這樣一來就看起來會比較清楚也不會顯得擁擠。
image
不加破折號,看來來就是擠擠的
image
只是個建議,端看個人的習慣與感受來決定。

打開/收合 Region

打開與收合 Region 的方式,很多人都是直接將滑鼠游標移到 Region 上面,然後快速的按倆下,
當然這在瀏覽程式碼的情境下是很正常一般的動作,
但要是在熱血Coding的情境下,要打開/收合一個Region還要中斷右手的動作去操作滑鼠,
這就有點浪費時間了。

快速鍵:「Ctrl + M, Ctrl + M

只要游標移到Region的範圍後,再使用「Ctrl + M M」就可快速又方便的打開/收合 Region
同樣的快速鍵,也可以用在 Method、Class、namespace這類有範圍的區域,就可以節省一些時間。

移動目標物到指定的Region中

整理程式碼或是撰寫程式時,總是最發現到某些Method可以放到已經建立好的Region之中,這時候就必須大費周章了。
先把Method範圍給選擇起來,然後剪下來,
再到指定的Region,打開Region,移到Region的最下方,把程式再給貼上,最後再把Region收合起來。
一連串好多動作呀~
那就找個簡單的方式來替代這些繁瑣的步驟吧!

VS2010的擴充工具「MoveToRegionVSX」
http://visualstudiogallery.msdn.microsoft.com/zh-TW/993418d7-40ef-46fd-8f2d-0cf57cc628fd
image
也可以開啟Visual Studio的擴充管理員來尋找「Move Region」
image

下載安裝完成之後,安下滑鼠右鍵就可以在Contextenu中看到「Move to Region」的功能項目。
image

按下去之後就會出現一個小視窗,顯示出你在目前程式碼中所建立的Region
image

我們咬移動的Method是要放在Details中,所以就在小視窗中的Details快速按倆下,
就會把選定的Method給移動到 Detials Region中了
image

剛才選定的 DetailAction_Should_Return_Dinner_HostedBy_SomeUser()已經移到 Details中
image

注意!在VB.NET下…此擴充功能是無法作用的。


或許有人說,「所有Method都藏到Region中,我要看有哪些Method時,還要一個個打開,哪也很浪費時間呀!」
其實不然,還是要善用工具!

Productivity Power Tools


在VS2008時,我會用「Source Code Outliner Power Toy」來輔助,但是VS2010始終找不到類似的工具。
所以之前我會使用 CodeMap 的擴充工具,在VS中快速的查看目前的程式碼有哪些Method,
但是用久了會發現,當你程式碼越來越大時,就會拖垮VS的執行效能,
不相信的人,如果有裝CodeMap,你可以去開 Linq to SQL所產生的 *.designner.cs,你就會知道我的感受。

移除CodeMap之後沒多久,出現了一個新的擴充工具「Productivity Power Tool
image
這個工具有相當多的功能,我這邊就不詳述,應該使用VS2010的人多半都會安裝這個工具。

安裝好工具後,可以按下快速鍵「CTRL + W, F」就可叫出「Solution Navigator」

image
在Solution Navigator中,你可以點開你目前正在瀏覽或是編輯的程式,就可看到此程式中所有Method的名稱了,
這樣一來既使不打開Region,也可以一目了然的清楚知道程式中有哪些Method了。
(不只Method,在程式碼中的欄位、屬性等都讓你清楚知道)

相關連結:


MoveToRegionVSX
http://visualstudiogallery.msdn.microsoft.com/zh-TW/993418d7-40ef-46fd-8f2d-0cf57cc628fd
Mohamed Gouda - MoveToRegionVSX - An Extension to Visual Studio 2010

Productivity Power Tools
http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef
ScottGu’s Blog - Visual Studio 2010 Productivity Power Tool Extensions
http://weblogs.asp.net/scottgu/archive/2010/06/09/visual-studio-2010-productivity-power-tool-extensions.aspx
點部落 – Level Up - [Visual Studio]Visual Studio 2010 Pro Power Tools
http://www.dotblogs.com.tw/larrynung/archive/2010/06/14/15862.aspx

以上




2 則留言:

  1. 如果是需要對前端的Javascript程式加上Region,
    請各位參考另一篇文章:
    「一些Visual Studio 2010對於JavaScript的輔助外掛」
    http://kevintsengtw.blogspot.com/2010/09/visual-studio-2010javascript.html

    當中有提到「VisualStudio 2010 JavaScript Outlining」是可以把前端的Javascript程式區段加上Region

    不過這個套件是只有For Visual Studio 2010...

    回覆刪除

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。