Visual Studio 2010 的官方外掛:Productivity Power Tools

| | 0 Comments| 17:10
Categories:

前言

有在寫程式的人應該或多或少都會有把程式碼放到文件、或是投影片裡的需求吧?而如果像 Heresy 有在寫網誌的話,可能需求就更大了∼不過要怎樣可以把程式碼貼的漂亮呢?現在大部分用來編輯程式碼的編輯器,應該都有用顏色來強調語法(syntax highlight)的功能,來增加程式碼的可讀性;但是很遺憾的,從這一類的編輯器裡把程式碼複製出來的時候,都只有純文字的部分,而不會保持他強調語法後的格式的(例如 Visual Studio、Ultra Edit)…

那要怎樣才能產生比較漂亮的結果呢?實際上,現在已經有不少方法了;像 Heresy 自己現在在寫部落格要貼上程式碼的時候,是使用 Windows Live Writer 的外掛:Source Code Formatter 來做的,個人是覺得還算不錯用。

但是如果是要貼到其他像是 Word 或是 PowerPoint 的時候該怎麼辦呢?當然一個方法是先透過 Live Writer 的 Source Code Formatter 來轉換好,再複製到其他程式上;不過這樣做感覺還是滿麻煩的,而且 Source Code Formatter 本身還包含了ㄧ些比較特殊的 HTML 寫法,要再做編輯其實是相對麻煩的。

之後 Heresy 又試著想找一些工具,想要解決這個問題;後來,就是找到這個微軟自己幫 Visual Studio 2010 所寫的擴展(extension):Productivity Power Tools 了∼他除了提供了 Heresy 想要的複製功能外,更提供了許多好用 Visual Studio 的附加功能!

Productivity Power Tools 介紹

Productivity Power Tools 的官方頁面位於 MSDN 的 Visual Studio Gallery 上,不過所有的功能說明,都是連回 The Visual Studio Blog 的。

Productivity Power Tools 基本上是專門設計給 Visual Studio 2010(專業版以上)的延伸功能集合,以期可以提高開發者的生產力;而 Heresy 寫這篇文章的時候他的版號是 10.0.10819.19,功能包括了下面所列的十四項:

ToolsOptions

  • Align Assignments
  • Automatic Brace Completion
  • Colorized Parameter Help
  • Column Guides
  • Ctrl Click Go To Definition
  • Document Well 2010 Plus
  • Fix Mixed Tabs
  • Highlight Current Line
  • HTML Copy
  • Move Line Up/Down Commands
  • Quick Access
  • Searchable Add Reference Dialog
  • Solution Navigator
  • Triple Click

這十四項功能裡,有的相當單純,只是增加一些快速鍵,而有的則是比較複雜、還有專用的圖形介面,算是包了不少東西;而且不管是哪項功能,都是可以個別控制開關的∼也就是說,如果想要只開啟局部功能,也是 OK 的!(Tool – Option 裡,可以找到設定的選項,如右上圖)

而接下來,就來介紹一下這些功能吧∼

Solution Navigator

imageSolution Navigator 基本上可以視作為 Visual Studio 內建的 Solution Explorer 的進階版;他主要的目的一樣是用來管理、存取方案(solution)裡的專案(project),不過它提供了許多更強大的功能!

首先,他對於專案和文件的顯示,提供了四種不同的方法,包括了:

  • All:顯示所有專案,和原來 Solution Explorer 的相同。
  • Open:只顯示有開啟的檔案的部分,其他沒有開啟的就隱藏起來;右上圖就是用 Open 的設定。
  • Unsaved:只顯示編輯過、尚未儲存的檔案。
  • Edited:只顯示在這個工作階段編輯過的檔案。

而除此之外,他也可以設定整個方案顯示的樹狀結構的 root,讓他只從整個 solution tree 的某一部分開始顯示。

這些功能在 Heresy 來看,對於在使用大型方案時,算是相當方便、實用的!因為有的時候常常要在幾個專案裡面找東西,如果整個方案太大的話,光要找到自己要專案,就滿麻煩了;而能控制要顯示那些,其實相對起來真的方便很多。

另外,除了這些顯示方面的功能外,針對 C# 和 VB 這類的專案,他還有提供更多的功能,包括了直接檢視、搜尋專案內的類別等等;不過這些功能都不能在 C 的專案裡用,所以 Heresy 也就沒玩了,詳細細節可以參考《Announcing the Solution Navigator》一文。

Document Well 2010 Plus

這項功能基本上就是針對 Visual Studio 的 Tab 功能再加強了!它的功能分為四類:Tab Well UI、Tab Behavior、Sorting、Tab UI;而由於它的功能比較多,所以在設定的部分也是可以局部控制的。

image首先,Tab UI 的部分算是讓 Tab 變得更多樣性了!透過他的參數設定,可以調整是否要顯示 tab 前的圖示、關閉按鈕、大小等等;另外,也加入了「Dirty Indicator」的控制,可以切換顯示檔案有被編輯過的圖示(右上圖,預設是一個「*」)。

而最重要的是,它可以幫 Tab 根據所屬的專案,或是指定了正規表示式(regular expression)來上色!如此一來,不同的 tab 就會根據設定,對應到不同的顏色,也就可以更方便地區分哪一個 tab 是哪一個專案的了!

image

而在 Tab Well UI 的部分,主要是加強 Tab 的操作性,包括了:

  • Enabling scrolling:在 Tab 過多時,會在前後都顯示往前、往後的三角形箭頭,用來切換顯示的 Tabimage
  • Show tab vertically:以垂直的方式,顯示 tab 清單
    image
  • Show close button at end of well:在 tab 區域的最後,顯示關閉目前開啟文件的關閉按鈕
    image

image除此之外,他還讓每一個 tab 可以「釘住(pin)」,由其他的 tab 獨立出來,不會被沒有釘住的 tab 影響;在 Heresy 來看,這項功能應該就算是把 tab 分成兩類來操作吧∼在某些需要開啟許多文件的情況下,應該算是相當有用的。

image而在 Tab Behavior 的部分,則是可以設定要讓新開的 tab 在最右方(Insert tabs to the right,預設是左方),以及設定被釘住的 tab 要不要獨立出來顯示(Show pinned tabs in a separate row,如左圖)了∼而這兩項設定的方向,實際上也都還會受到是否有開啟垂直 tab 的參數而影響。

另外,還有一項和上面提到「Enabling scrolling」相衝的功能,是「Remove tabs by usage order」;這項功能會調整在空間不足時 tab 被隱藏的順序,Heresy 個人是覺得比較沒有什麼用處。

另外,他還提供了 Tabs sorting 的功能,可以來根據設定,調整 tab 顯示時的群組關係、位置,讓使用者更容易找到自己需要的 tab。

這邊的功能,許多 Heresy 都覺得相當實用的!不過相對的,Heresy 也發現開啟了這些功能後,似乎在操作上的速度也點變慢?不知道是不是因為處理這些東西的負擔其實也不小?總之,要不要就得看個人的取捨了∼而這部分的詳細介紹,可以參考《Document Well 2010 Plus》一文。

Quick Access

imageQuick Access 的視窗(右圖)可以按 Ctrl 3,或是從工具列的「View」裡面找到。他基本上是提供了一個透過關鍵字搜尋的方法,來呼叫 Visual Studio 的功能、介面的快速方式;基本上如果能夠善用的話,應該是可以節省不少操作上的時間的∼

而他能搜尋的東西包括了:

  • 選單的命令
  • Project Templates
  • 選項頁面(樹狀結構,不包含內容)
  • 工具視窗
  • 目前開啟的文件 tab
  • 工作(搜尋 tasks,這算是特別弄出來的)

其他小功能

前面提的功能,都算是比較大項的;而接下來,則是一些比較小的功能了∼

  • Align Assignments

    開啟這項功能後,只要按下 Ctrl Alt ] 後,就可以自動將所在附近、連續的 assignment 根據「=」來做對齊了∼下面就是一個簡單的例子,左邊的圖示原來的程式碼,右邊的圖則就是按下 Ctrl Alt ] 後的結果

    image image

  • Column Guides

    可以加入垂直的參考線,來輔助程式碼的對齊、調整以及閱讀。

    image

  • Ctrl Click Go To Definition
    壓著 Ctrl 後,再去點程式碼的符號(symbol),他就會自動跳到所點的東西的定義去、或是顯示出所有找到的 symbol;算是一個快速在程式碼裡找東西的方法了∼
  • Fix Mixed Tabs
    號稱是會再開啟、儲存 tab、空白混合使用的時候,做出警告,讓城市開發人員知道這份文件裡有空白/tab 混用的狀況;不過 Heresy 沒有能試出來。
  • Highlight Current Line
    讓游標所在的那一行有特別的底色,以方便找到自己的游標現在在哪裡。前面「Align Assignments」的圖裡「aaa = 3;」那行就是了∼
  • HTML Copy
    這算是 Heresy 主要要用的功能了!開啟這項功能後,從 Visual Studio 複製的程式碼都會包含有 highlight 過的 RTF(Rich Text Format)形式了∼如此一來,只要是貼到 Word 或是 Windows Live Writer 這一類支援 RTF 的程式,都可以產生 hightlight 過的內容了!
    不過 Heresy 覺得比較可惜的是,他沒辦法複製到透過 Visual Assist 這類外掛額外再加強的 highlight 效果。 ^^"
    詳細說明請參考《Copy Code in HTML format with Visual Studio 2010》。
  • Move Line Up/Down Commands
    這項功能可以讓程式開發者更快地移動一整行程式:只要壓著 Alt 鍵,再按上下鍵,就可以直接移動一整行了∼
  • Triple Click
    在本來的編輯器裡,滑鼠游標按一下是將文字游標移到所在的位置,按兩下則是選取所在位置的字;而這個功能則是追加了一個連按滑鼠三下,可以選取一整行的功能。

針對 VB / C# 的

這部分對 Heresy 沒用,所以就不多提了∼

  • Automatic Brace Completion
  • Colorized Parameter Help
  • Searchable Add Reference Dialog (More Info)

小結

整體來說,Heresy 個人是認為 Productivity Power Tools 這個 extension 對於 Visual Studio 2010 的使用者來說,應該算是滿實用的!還滿建議有在使用 Visual Studio 2010 的話,可以考慮裝來玩看看的∼

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *