【小工具推薦】SnippetEditor
主題: |
【小工具推薦】SnippetEditor |
文章簡介: |
使用Visual Studio撰寫程式時,常常因為某些情境,需要重覆撰寫類似的程式碼,有些人會重複複製/貼上相同的程式碼再一一修改變數,但只要有一個小小的疏漏,就留下BUG等待有一天被找到。 要解決上述問題並加快效率,推薦使用VS內建的Snippet進行作業,而編輯它的工具,就是Snippet Editor。 |
範例語言: |
C# |
作者: |
Reck Lee |
版本/產出日期: |
2016/12/26 |
【小工具推薦】SnippetEditor
作者:Reck Lee
I. 前言:
何謂「Code Snippet 」[註1*]?程式碼片段(Code Snippet)是可重複使用的程式碼之小型區塊,可以使用內容功能表命令或快速鍵的組合在程式碼檔案中插入。 它們通常包含常用的程式碼區塊,例如 try-finally 或 if-else 區塊,但是它們可以用來插入整個類別或方法。
II. 如何使用內建語法:
在程式碼視窗的內容功能表中按一下 [插入程式碼片段](快速鍵ctrl + K, ctrl + X),然後按 [Visual C#],輸入 tryf,之後按下TAB鍵,或者您可以輸入 tryf 然後按下TAB鍵 + TAB鍵,插入這個程式碼片段。
或是使用”捷徑”輸入tryf(TAB鍵 + TAB鍵) |
=> |
III. 如何自訂程式碼片段(官方版本):
若要自行建立自己想要的程式碼片段,依MSDN [註2*]說明,首先你要搞懂以下這個結構
<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title></Title> </Header> <Snippet> <Code Language=""> <![CDATA[]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets> |
然後依自己的需求(此例為C#)編輯成如下的內容,
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/CodeSnippet"> <CodeSnippet> <Header> <!-- Add Header information here --> </Header> <Snippet> <!-- Add additional Snippet information here --> <Declarations> <Literal> <ID>SqlConnString</ID> <ToolTip>Replace with a SQL connection string.</ToolTip> <Default>"SQL connection string"</Default> </Literal> <Object> <ID>SqlConnection</ID> <Type>System.Data.SqlClient.SqlConnection</Type> <ToolTip>Replace with a connection object in your application.</ToolTip> <Default>dcConnection</Default> </Object> </Declarations> <Code Language="CSharp"> <![CDATA[ daCustomers = new SqlClient.SqlDataAdapter(); selectCommand = new SqlClient.SqlCommand($SqlConnString$); daCustomers.SelectCommand = selectCommand; daCustomers.SelectCommand.Connection = $SqlConnection$; ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets> |
接著要找到匯入的Visual Studio版本、位置,再分成兩段匯入至系統內,
步驟:
1. 開啟程式碼片段管理員 ([工具/程式碼片段管理員])
2. 按一下 [匯入] 按鈕
3. 加入程式碼片段(使用ctrl-K,ctrl+X開啟的那種)至%USERPROFILE%\Documents\Visual Studio 2013\Code Snippets\Visual C#\My Code Snippets
4. 若要加入描述和捷徑欄位,則要再步驟3的目錄再新增一個CSharpCodeSnippet.snippet
5. 再在裡面新增內容為
<Header> <Title>Hello World VB</Title> <Author>Myself</Author> <Description>Says Hello to the world.</Description> <Shortcut>hello</Shortcut> </Header> |
6. 最後開啟專案進行測試(例如: 輸入hello再按兩次Tab鍵)
好的,經歷這些過程著實累人,建一個就要這麼多功夫,如果要建一大票自己想用的,大概此時就想放棄了。
IV. 使用SnippetEditor建立程式碼片段:
幸好在廣大網友的努力下,在BillMcC 的專案中,提出了Snippet Editor(目前stable為v2.1.0.0版)來進行上述複雜的過程,讓加入自訂程式碼片段的過程變得十分簡單,我們來看看要如何使用吧。
首先,先到此專案的官網 [註3*]下載(下圖紅框處,點擊即可直接下載)
下載後解壓縮,會看到該程式的目錄,點擊主程式(下圖紅框處)即可開啟
主程式開啟後,畫面如下:
V. 新增一個自訂的程式碼片段(以C#為例):
步驟如下:
1. 左上角選擇Visual Studio版本(本例使用Visual Studio 2010)
2. 依專案類型,向下選擇到對應的程式碼片段目錄(本例使用Visual C#),按右鍵選擇”Add New Snippet”)
3. 給新的Snippet一個足以辨識的名稱
4. 用滑鼠點擊該項目兩次後,開啟編輯畫面
5. 假設我們需要大量輸入的程式碼結構如下:
(若預計要重覆輸入的變數非~~~常的多時)
List<SqlParameter> ListExecSP = new List<SqlParameter>(); SqlParameter SP1 = new SqlParameter(“@SP1”, SqlDbType.NVarChar,4000); ListExecSP.Add(SP1); SqlParameter SP2 = new SqlParameter("@SP2", SqlDbType.Char, 2); ListExecSP.Add(SP2); |
6. 我們把其中一段程式碼貼上至Snippet Editor,並修改相關參數(捷徑名稱設為cnSP)後,畫面如下:
7. 接下來,用滑鼠標註要變更為”變數”的字,並按下下方黃色的+號,畫面如下:
再依需求變更相關設定如下:
ID: 辨識用的唯一變數
Defaults to: 若不輸入時,預設帶入什麼文字
kind: 定義ID是什麼類型的,共有兩個選項=>
Literal : 變更的變數名稱(純文字)
Object : 變數型態
8. 重覆步驟7,將全部調整完成後,按下上方的「Save」按鈕就完成啦,畫面如下:
VI. 使用設計好的自訂程式碼片段
回到Visual Studio開發畫面,打入cnSP(上節步驟6輸入的shortcut)後,按兩次tab鍵(TAB鍵 + TAB鍵),畫面如下:
=> |
接著依畫面輸入(按tab可切換各個變數)後,就可以快速產出對應的程式碼如下:
=> |
=> |
VII. 結語:
好的工具能提供更有效率又穩定的程式碼產出,很可惜作者的此專案只支援到VS2010,希望未來還可以支援更新的版本。
VIII. VS2012之後的Snippet使用的工具
VS2012版本之後,有別的作者進行類似的專案開發,可以參考官網 [註4*]及介紹頁 [註5*],謝謝。
參考資料
1、 Code Snippet(程式碼片段)
https : //msdn.microsoft.com/zh-tw/library/ms165392.aspx
2、 建立程式碼片段
https : //msdn.microsoft.com/zh-tw/library/ms165394.aspx
3、 Snippet Editor
http : //snippeteditor.codeplex.com/
4、 Snippet Designer
https : //github.com/mmanela/snippetdesigner
5、 Visual Studio Extension - Snippet Designer 簡介(by 91)
https : //msdn.microsoft.com/zh-tw/communitydocs/visual-studio/ta15021401