在 Visual Studio 裡,有許多工具或套件可以讓你可以很快或是少寫很多 Code 就完成任務,除了自行開發的 Extension 之外,還有 Code Snippet 這項工具可以讓你增加產出。
Code Snippet 並不是一個太新的東西
早在 2010 前就已經有的東西,只是相見恨晚
只要你安裝了 Visual Studio,也就意謂著你也擁有了一些 Code Snippet 的工具了
在一個 class 裡打上 ctor 加上兩個 tab,即可快速產生 constructor 的函式
這就是 code snippet 所能幫你減少的開發時間
詳情請見
https://drive.google.com/file/d/1ACfx6Ywr1ipfrw7tFY0S_Pa-TEDLht5T/view?usp=sharing
安裝環境為 vs2019 preview,可在本機目錄中的 C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC#\Snippets\1033\Visual C# 中找到 ctor.snippet
<Shortcut>ctor</Shortcut>
...
...
<Code Language="csharp"><![CDATA[public $classname$ ()
{
$end$
}]]>
</Code>
看到這段,我想你應該就明白是怎麼一回事了
而其中比較特別的就是這段了
<Declarations>
<Literal Editable="false">
<ID>classname</ID>
<ToolTip>Class name</ToolTip>
<Function>ClassName()</Function>
<Default>ClassNamePlaceholder</Default>
</Literal>
</Declarations>
參數中的 $classname 若是在 class 裡的話,這個變數就會抓取該 class 的名稱當作值
但若不是的話,則會帶上預設的參數 ClassNamePlaceholder 到此程式碼片段之中
比方說我們很常使用 public void method 這樣的 method 建立方式
每次都要打一樣的程式碼好麻煩
我們從 ctor 複製一份出來修改,把 title, shortcut 改成 cm
再把declartion 那塊移除,並修改我們要的 Code 的部份
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>cm</Title>
<Shortcut>cm</Shortcut>
<Description>Code snippet for constructor</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Code Language="csharp"><![CDATA[public void MyMethod{
;
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
接著看一下結果,在 VS 上打上 cm加上兩個 tab,即會出現我們所建立的快捷鍵程式碼詳情請見
https://drive.google.com/file/d/1OHxi8L9ENPewxspCY9CLP4YcbgiPSg-8/view?usp=sharing
可以使用 Snippet Designer 這個外掛來幫你建立
然而不好的消息是在 VS2019,這套工具所使用的 Api 已經被廢棄了
但這套工具仍有一些功能是可以運作的
先選取你要建立的程式碼區塊後按右鍵 (Export as Code Snippet)
並將你要的部份以變數的方式代入
存檔成 demo, 此時你會發現存的路徑有點不同 C:\Users\[UserName]\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets
接著就是火力展示,這邊可以看到代入參數的部份可以透過 tab 來定位
在修改上變的更加方便了
詳情請見
https://drive.google.com/file/d/13nMmsTBRMF2nHTMjCq5xuamtI7WCAUP-/view?usp=sharing
參考資料
https://docs.microsoft.com/zh-tw/visualstudio/ide/walkthrough-creating-a-code-snippet?view=vs-2019
https://docs.microsoft.com/zh-tw/visualstudio/ide/code-snippet-functions?view=vs-2019