網頁

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...

    回覆刪除