SyntaxHighlighter

2020-08-16

[IAmTimCorey]15 Visual Studio Editor Tips

這是一連串的文章,關於我所知道的C#推廣者 Tim Corey 頻道 IAmTimCorey 的內容。
這同時是我的學習筆記。以下的中文用詞,大部分是個人慣用語。一般來說會附上英文原詞,方便大家對照。

原始連結: https://www.youtube.com/watch?v=qv6ZflueASY

這次的題目,是有關那個號稱地表最強IDE的Visual Studio在設定上的一些小技巧與內容

TOC

  • IntelliCode 智能程式碼
  • 個人化的IntelliCode Personalize IntelliCode
  • 程式碼風格 Code Styles
  • 編輯器設定 Editor Config
  • 方案效能 Solution Performance
  • 程式碼清理 Code Cleanup
  • 專案/方案範圍的程式碼清理 Project/Solution-wide Code Cleanup
  • 以JSON格式貼上 Paste as JSON
  • 快速動作與重購(更多選項) Quick Actions and Refactoring (more options)
  • 阻擋字元Discard Character
  • XAML熱重載 XAML Hot Reload
  • XAML右鍵選單 XAML Pop-out Option(bonus)
  • 清單固定屬性 Pin Properties in List
  • 剪貼簿環 Clipboard Ring
  • 視窗剪貼簿環 Windows Clipboard Ring (bonus)
  • 工具盒程式碼存放 Toolbox Code Storage
  • 統一搜尋 Universal Search

IntelliCode 智能程式碼

IntelliCode是VS在2019上追加的功能,它是藉由延伸功能(Extension)來達成的功能。這個功能也因為在不同的版本上而有不同的功能實作。如果在已安裝套件中查不到[Visual Studio IntelliCode]或是看到該功能未被打開,可以將它打開,也可以從Market中搜尋相關字詞來進行安裝。

那麼它實際的功能是什麼呢?說明文說,這是一個AI輔助的開發生產力工具。他實際上做的,就是根據過去的相關程式(基本上是基於GitHub的巨量程式碼)的撰寫內容,主動幫你建議接下來要鍵入的內容。這幫我們省下很多打程式碼的時間。

個人化的IntelliCode

有些人在寫程式碼的時候,有一些自己的風格,可能跟GitHub大師們的風格不大一樣。我們可以自行訓練我們自己的AI訓練模型,讓他比較接近這些[我流]的風格。你可以打開View -> Other Windows -> IntelliCode Model Window,然後建立一些IntelliCode的訓練模型(model),你也可以設定這個訓練模型是方案中,還是適用於你帳號下的所有程式碼,並將這些訓練模型分享給其他人,或是使用其他人製作好的訓練模型。

當然,這些訓練模型可以手動進行訓練,也可以自動進行訓練。自動進行訓練的選項,是讓VS將分析的內容自動上傳到Azure DevOps,並使之時常依照你的編碼風格去尋找你最常使用的功能或是用字。這樣你的團隊就可以使用你最新的編碼風格。

再次提醒,如果沒有看到上述的功能視窗,記得要進選項(options)去打開所有相關的IntelliCode的功能。

程式碼風格 Code Styles

這個設定,是要讓VS在自動生成程式碼的時候,或是進行Code Formating的時候,更能貼近你平常的使用方法。要進入這個設定,請打開Options -> Text Editor -> C# -> Code Style -> Naming進行設定。如果這部分沒有設定好,你會需要一直花時間在與「自動格式化」抵抗。記得把這地方設定成你所習慣的方式,然後再開始進行Coding。

編輯器設定 Editor Config

事實上,我們可以將上述的程式碼風格個別套用到不同的專案或方案中,透過設定一個實體.editorconfig檔。這將會讓我們在編碼時可以將不同程式碼風格帶入不同的專案中。最方便的地方,是當我們在分享專案時,同時分享程式碼風格。

另外一種方式,你也可以像製造IntelliCode的訓練模型一樣,讓VS掃描你的專案後,用你當前的專案程式碼風格去產生一個.editorconfig檔。

方案效能 Solution Performance

好,真正重點的來了。這個設定會影響到你使用VS的效能。

Tim建議以下設定

  • Options -> Projects and Solutions -> General -> Track Active Item in Solution Explorer -> Checked
    這會讓你的方案瀏覽器在你編輯檔案時,直接將該檔案在瀏覽器中顯示高亮。這會便於讓你知道檔案目前在哪裡,或是你目前是在編輯哪個檔案。
  • Options -> Projects and Solutions -> General -> Restore Solution Explorer project hierarchy state on solution load -> Off
    這會提升你打開VS時或是打開專案時的讀取速度。
  • Options -> Projects and Solutions -> General -> Reopen documents on solution load -> Off
    理由同上

程式碼清理 Code Cleanup

VS有個小工具,它可以幫你自動清理程式中不需要的程式碼,讓你的程式碼保持最低限的文字。他在你的程式碼編輯器的下面,有個小小的像掃把一樣的圖示,點擊後可以進行設定,也就是設定你在完成程式後,或是整個專案中,當你在修改完程式後,它會自動幫你進行清理動作,這些動作會依照你的設定進行。

專案/方案範圍的程式碼清理 Project/Solution-wide Code Cleanup

好,就如同上面一樣,但是你可以套用到整個專案中,如果你有設定好你的清理規則。

以JSON格式貼上 Paste as JSON

事實上,他是幫你分析剪貼簿中的JSON資料,然後你可以使用[貼上特殊](Paste Special -> Paste JSON as Class),然後讓你超快速地完成建立POCO類的動作,而不用自己一個一個建立field。

快速動作與重購(更多選項) Quick Actions and Refactoring (more options)

這功能其實不用太多講,因為大家都在不知不覺中使用了。在你撰寫程式碼的時候,有時候你會在不知不覺間打太多多餘的程式,而這些功能可能在新版的程式中是多餘的。你可以利用Ctrl+.的快速鍵來進行快速重構,簡單的縮減或重構你的程式碼。
有時候,你常常可以在這個選項中找到更有效率的Coding方式。

阻擋字元Discard Character(_)

這功能,與其說它是VS的功能,不如說它是C#的新功能。
你可以設定一個名為_的變數,讓他儲存你不想要使用的資料,並在當下馬上將讀取的資料放進垃圾回收桶。

XAML熱重載 XAML Hot Reload

在某些與後端不須交流的前端設計上,當你修改XAML設定時,VS會直接熱重載你的XAML介面,讓你可以幾乎即時地確認設計變更。

XAML視窗分離 XAML Pop-out Option(bonus)

當在設計時,有時候你會覺得XAML的程式碼與顯示介面分別占掉畫面的一部份是很煩的事。你可以選擇性地將其中之一迸出並分離,這時視窗是前後(上下?)分離的,所以你可以更容易確認你的XAML顯示。

清單固定屬性 Pin Properties in List

當你在Debug模式中,當資料停止在清單處,你可以展開並使用屬性欄旁邊的固定PIN來固定顯示這些屬性。這讓你在除錯時,就算沒有展開清單屬性,依舊可以確認你想確認的重要屬性。

另外一個好處是,當你PIN固定這些屬性後,你甚至可以用視窗左上的搜尋選項,去尋找你想要的資料是在清單內的哪個部分。

剪貼簿履歷 Clipboard Ring

當你在VS中複製了很多程式碼片段後,事實上你可以使用Ctrl-Shift-V來叫出你曾經複製過的程式碼片段,而不只是最後一次複製的內容。這個功能叫他做Clipboard Ring

視窗剪貼簿履歷 Windows Clipboard Ring (bonus)

這其實是Windows 10的特異功能。你可以按下Win+V來達成上述的剪貼簿履歷的功能。這不限於VS之中,而是會將你Windows中所複製/剪下過的所有內容放進這個剪貼簿內容中,並適度貼上。

工具盒程式碼存放 Toolbox Code Storage

很多重複性高的程式,你可以利用自製snipper的方式來進行縮碼。但是有些東西甚至是不常用到,連為他建立snipper你都會覺得懶。這時候,就是好好利用Toolbox的程式碼儲存功能。你可以直接選擇那段程式碼,然後把它拉進你的工具箱。

統一搜尋 Universal Search

在右上有個Universal Search框。你可以在裡面設定或是進行一些簡單的快速編碼設定。而且也會給你一些建議。有時可以把它當快速指令集來使用。



0 件のコメント:

人気の投稿