2018年2月28日 星期三

[開發工具小技巧]在Visual Studio 快速找到對應的程式碼,多多使用「移至」(Go To)及套件Codinion

image
圖片來源:https://pixabay.com/en/confused-muddled-illogical-880735/ 和 https://blog.xebialabs.com/2016/03/21/essential-devops-terms/

在開發的時候,能夠用Visual Studio (以下簡稱VS) 快速定義到要改或者想找到的程式碼片段很重要。

假設本來要花10秒才能夠打開要的片段,透過使用VS和套件的功能能夠在3秒內就打開,只要發生10次就能夠節省1分鐘的時間。無形之中就可以省掉很多零碎的時間。

這篇將會介紹如何用VS內建的移至 (Go to)找到某個程式碼片段,用codinion套件快速找到目前打開的檔案member。

移至 (Go to) 功能介紹

一般來說,開啟solution之後,接下來就是要打開要修改的code檔案。例如調整某個class內容。

如果不用任何方式的話,那麼就是用Solution Explorer瀏覽到code的檔案位置然後打開。換句話說需要記得資料夾結構。

如果這個Solution並不是自己從頭到尾開發或者說專案很大的話,那麼這樣開就很花時間。

換個角度來看,既然已經知道了要改的class名稱,那麼是否能夠用那個class名稱搜索移動到那個class所在的位置?

這就是移至 (Go to)的功能。

如何啟動 移至 的功能

可以使用:

  1. 快捷鍵:預設是 Ctrl + ,
  2. Menu:Edit -> Go To
    image
    用Edit Toolbar開啟設定

由於預設的快速鍵和注音輸入發的逗點快速鍵是一樣,因此很有可能按下之後還是不會出現。

因此建議調整快速鍵,以我自己為例是改成Alt+,

image
修改預設快捷鍵

幾種 移至 的方式

當把 移至 呼叫起來了之後,看到的畫面是:

image
啟動 的畫面
  1. Go To Line (Ctrl+G) 字符:: - 點下這個選項之後,可以輸入要跳過去的行數
  2. Go To File (Ctrl+1, Ctrl+F) 字符: f - 這個選項是搜索檔名
  3. Go To Types (Ctrl+1, Ctrl+T) 字符: t - 這個選項是搜索class、Struct、Enums、Interface和Delegate
  4. Go To Member (Ctrl+1, Ctrl+M) 字符: m - 這個選項是搜索variable、property、method、constant、enum item和event
  5. Go To Symbol (Ctrl+1, Ctrl+S) 字符: # - 這個選項是搜索 Types + Member
這幾個選項如果點下去,會發現其實就是在前面加上一個特殊字符。例如,Go To Line就是 加上:。 所以完全可以只記得一個快速鍵,就是如何把Go To呼叫起來,然後在打特殊字符做篩選。
如果沒有記錯,Go To是VS 2017才有的功能,VS 2015則是只有Navigate To。兩者最大的差異是在Navigate To沒有這些篩選項目。

把 移至 的篩選限定在當前打開的檔案

在剛剛那5個不同篩選項目之後都是和設定有關的內容。

這邊只提Symbol選項旁邊的那個,是Current Document (Ctrl+Alit+c)。這個選項的意思是,如果開啟的話,把搜索條件限制在當前檔案

這個最長和Go To Member做搭配。一般來說想要快速跳到當前檔案的某個property或者method,就會限定在目前這個檔案。

不過這個方式有個缺點,因為很多時候是打搜索的文字到一半,才想起來要限制在當前檔案,這個時候如果加上這個選項,剛剛打到一半的內容會清空。 由於共用一個Go To搜索框,所以當要搜索全域的時候,很有可能已經把要打的字打了一半,才發現忘記不要開這個設定,造成要重新打。

這也是為什麼用到Codinion。因為廣域和當前檔案可以分開兩個不同快捷鍵觸發(內建的Go To沒有找到這個快捷鍵)

使用Codinion套件做移動

題外話,在另外一篇有提到Codinion的另外一個功能,為不同類型欄位給出不同的顏色:[開發工具小技巧]調整Visual Studio的字形及文字顏色

套件:codinion小檔案

當初會裝Codinion的套件的原因就是因為在VS 2015無法區分,File、Member及Symbol,所以才找到了這個套件。

基本上VS內建的Go To可以取代大部分Codinion的搜索功能,不過當要在當前檔案找到某個member的時候,個人還是覺得Codinion比較好用。

以Codinion找到目前檔案的某個member為例,快速鍵是Alt+M(不確定這個是我自己改的還是內建的快速鍵),會直接下拉出目前所有member 以及可以打來過濾:

image
範例畫面

這個對我來說有兩個好處:

  1. 有時候我想要看到所有的項目:因為忘記關鍵字是什麼,可以用鍵盤下來快速找
  2. 搭配設定的顏色: 這樣可以直覺的找到什麼是什麼。例如我的method是深紅色,那麼看到就可以直覺關聯起來
不過Codinion有時候啟動會比較慢,可能是因為先把清單load出來造成。因此有好有壞。

結語

能夠快速找到想要了解或者修改的程式碼是一個非常重要的技能,因為太常用到了,因此只要能夠提升速度就可以減少很多浪費的時間。

希望透過這篇能夠讓大家知道VS在這方面所提供的功能,也歡迎如果有不同的建議能夠和我做分享。

參考資料

Introducing Go To, the successor to Navigate To
介紹Go To的功能
Codinion官網
官網介紹Codinion的功能

沒有留言 :

張貼留言