使用 Code Snippet 來增加寫 Code 效率

在 Visual Studio 裡,有許多工具或套件可以讓你可以很快或是少寫很多 Code 就完成任務,除了自行開發的 Extension 之外,還有 Code Snippet 這項工具可以讓你增加產出。

Code Snippet 並不是一個太新的東西

早在 2010 前就已經有的東西,只是相見恨晚

使用內建的 Code Snippet

 只要你安裝了 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 到此程式碼片段之中

打造自己的 Code Snippet

比方說我們很常使用 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