VS中如何快捷地給自己的代碼添加創(chuàng)建信息注釋
Intro
以下討論的都是沒有使用 GIT 來管理源代碼的情況,如果使用 GIT 管理源代碼可直接使用VS的Git擴展就不需要考慮以下問題。
-
什么是創(chuàng)建信息注釋?
創(chuàng)建信息注釋,類似于文件的創(chuàng)建信息,一般來說,至少要有創(chuàng)建人和創(chuàng)建時間。如果說有人修改了方法也應該添加一個更新信息注釋。
-
為什么要添加創(chuàng)建信息注釋?
可能在一個人編碼的時候,創(chuàng)建信息注釋并不太重要,但是如果許多人共同維護一個項目,并且經(jīng)常會出現(xiàn)多個人修改同一個文件的代碼
時,這就顯得很重要了,哪里的代碼出現(xiàn)了什么問題,可以直接責任到人,誰改的代碼出現(xiàn)了問題就應該誰去修改代碼。
創(chuàng)建信息注釋
-
找解決方案
最初的想法是重寫 VS 內(nèi)置的文檔注釋,然而并沒有找到這樣的解決方案。找到的基本都是修改新建類或接口時模板文件從而添加注釋,并沒有在方法上加注釋
的解決方案。這個方案否定之后,嘗試著使用自定義代碼段來實現(xiàn)在生成注釋的基礎上再添加創(chuàng)建信息注釋。
-
自定義代碼段
自定義代碼段參考示例:
<?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>新建代碼注釋 的代碼片段</Description> <Author>liweihan</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> <Literal> <ID>Description</ID> <ToolTip>方法描述</ToolTip> <Default>方法描述</Default> </Literal> <Literal> <ID>Author</ID> <ToolTip>作者</ToolTip> <Default>liweihan</Default> </Literal> <Literal> <ID>CreateDate</ID> <ToolTip>日期</ToolTip> <Default>@@Today</Default> </Literal> </Declarations> <Code Language="csharp"> <![CDATA[/// <summary> /// $Description$ /// @Author:$Author$ /// @CreateDate:$CreateDate$$end$ /// </summary>]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>這樣的代碼段還有許多不足,現(xiàn)在作者是寫死的,創(chuàng)建時間需要再插入代碼段之后再進行手動修改,
我希望能夠自動生成作者和當前日期,
作者寫死的問題不大,因為這個代碼段只我一個人使用,直接寫死反而更方便,這里使用一個變量方便進行修改,
關(guān)鍵是當前日期沒有辦法獲取到,查閱了很多資料,代碼段并不支持直接插入當前日期,stackoverflow
上有人討論過這個問題,解決方案是利用宏自動生成當前日期,但是文中提到的解決方案不可用,不過倒給了我解決問題的思路——利用宏去插入當前日期。 -
宏插入當前日期
我在 VS 的 擴展與更新 中下載了一個 管理宏的插件—— Macros for Visual studio
Macros for Visual Studio下載安裝之后需要重啟 VS ,重啟之后在 菜單欄中的工具下就可以看到:
macros0.png這個宏管理器自帶了一些 Samples ,其中有一個可以插入日期的宏
macros1.png選擇 Assign Shortcut 進行設置快捷鍵就可以在 VS 中使用啦,默認的格式是 “mm/dd/yyyy”
assignshortcut.jpg如果你像我一樣不喜歡默認的日期格式,可以在對應項上右鍵選擇“打開”,進行編輯,里面是 js 代碼,有一些 js 基礎的話修改起來會
更方便,我修改了下代碼,將日期格式修改為了“yyyy-MM-dd”格式。macros2.png -
完整操作流程
- 首先,在方法體上輸入“///”,VS 會自動生成默認的文檔注釋,先寫好注釋
- 復制
<summary>部分的注釋,選中<summary>部分,參數(shù)及返回信息保留,輸入定義好的代碼段快捷鍵,雙擊 Tab 鍵插入代碼段 - 將復制的注釋粘貼到
方法描述處,添加注釋 - 按 Tab 鍵切換到 當前日期,在
@@Today處,按設置的插入當前日期的宏快捷鍵,VS 會自動插入當前日期
更新信息注釋
更新信息代碼段示例:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>up</Title>
<Shortcut>up</Shortcut>
<Description>更新代碼注釋 的代碼片段</Description>
<Author>liweihan</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>Description</ID>
<ToolTip>更新描述</ToolTip>
<Default>更新描述</Default>
</Literal>
<Literal>
<ID>UpdatedBy</ID>
<ToolTip>更新人</ToolTip>
<Default>liweihan</Default>
</Literal>
<Literal>
<ID>UpdatedDate</ID>
<ToolTip>日期</ToolTip>
<Default>@@Today</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[/// $Description$ @UpdatedBy:$UpdatedBy$ @UpdatedDate:$UpdatedDate$$end$ ]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
將自定義代碼段添加到 VS
- 在 VS 中打開代碼段管理器


- 選擇語言為 “CSharp”,選中“My Code Snippets”,復制位置中的路徑,并在資源管理器中打開路徑
- 將自定義的代碼段(*.snippet)拷貝到上一步打開的目錄中,重啟VS就可以了




