文章出處

VS中如何快捷地給自己的代碼添加創建信息注釋

Intro

以下討論的都是沒有使用 GIT 來管理源代碼的情況,如果使用 GIT 管理源代碼可直接使用VS的Git擴展就不需要考慮以下問題。

  1. 什么是創建信息注釋?

    創建信息注釋,類似于文件的創建信息,一般來說,至少要有創建人和創建時間。如果說有人修改了方法也應該添加一個更新信息注釋。

  2. 為什么要添加創建信息注釋?

    可能在一個人編碼的時候,創建信息注釋并不太重要,但是如果許多人共同維護一個項目,并且經常會出現多個人修改同一個文件的代碼 時,這就顯得很重要了,哪里的代碼出現了什么問題,可以直接責任到人,誰改的代碼出現了問題就應該誰去修改代碼。

創建信息注釋

  1. 找解決方案 最初的想法是重寫 VS 內置的文檔注釋,然而并沒有找到這樣的解決方案。找到的基本都是修改新建類或接口時模板文件從而添加注釋,并沒有在方法上加注釋 的解決方案。

    這個方案否定之后,嘗試著使用自定義代碼段來實現在生成注釋的基礎上再添加創建信息注釋。

  2. 自定義代碼段

    自定義代碼段參考示例:

     1         <?xml version="1.0" encoding="utf-8"?>
     2         <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
     3             <CodeSnippet Format="1.0.0">
     4                 <Header>
     5                     <Title>cm</Title>
     6                     <Shortcut>cm</Shortcut>
     7                     <Description>新建代碼注釋 的代碼片段</Description>
     8                     <Author>liweihan</Author>
     9                     <SnippetTypes>
    10                         <SnippetType>Expansion</SnippetType>
    11                     </SnippetTypes>
    12                 </Header>
    13                 <Snippet>
    14                     <Declarations>
    15                         <Literal>
    16                             <ID>Description</ID>
    17                             <ToolTip>方法描述</ToolTip>
    18                             <Default>方法描述</Default>
    19                         </Literal>
    20                         <Literal>
    21                             <ID>Author</ID>
    22                             <ToolTip>作者</ToolTip>
    23                             <Default>liweihan</Default>
    24                         </Literal>
    25                         <Literal>
    26                             <ID>CreateDate</ID>
    27                             <ToolTip>日期</ToolTip>
    28                             <Default>@@Today</Default>
    29                         </Literal>
    30                     </Declarations>
    31                     <Code Language="csharp">
    32                     <![CDATA[/// <summary>
    33                     /// $Description$
    34                     /// @Author:$Author$
    35                     /// @CreateDate:$CreateDate$$end$
    36                     /// </summary>]]>
    37                     </Code>
    38                 </Snippet>
    39             </CodeSnippet>
    40         </CodeSnippets>

     

     

     這樣的代碼段還有許多不足,現在作者是寫死的,創建時間需要再插入代碼段之后再進行手動修改, 我希望能夠自動生成作者和當前日期, 作者寫死的問題不大,因為這個代碼段只我一個人使用,直接寫死反而更方便,這里使用一個變量方便進行修改, 關鍵是當前日期沒有辦法獲取到,查閱了很多資料,代碼段并不支持直接插入當前日期,stackoverflow 上有人討論過這個問題,解決方案是利用宏自動生成當前日期,但是文中提到的解決方案不可用,不過倒給了我解決問題的思路——利用宏去插入當前日期。

  3. 宏插入當前日期 我在 VS 的 擴展與更新 中下載了一個 管理宏的插件—— Macros for Visual studio

     

    下載安裝之后需要重啟 VS ,重啟之后在 菜單欄中的工具下就可以看到:

     

    這個宏管理器自帶了一些 Samples ,其中有一個可以插入日期的宏

     

    選擇 Assign Shortcut 進行設置快捷鍵就可以在 VS 中使用啦,默認的格式是 “mm/dd/yyyy”

     

    如果你像我一樣不喜歡默認的日期格式,可以在對應項上右鍵選擇“打開”,進行編輯,里面是 js 代碼,有一些 js 基礎的話修改起來會 更方便,我修改了下代碼,將日期格式修改為了“yyyy-MM-dd”格式。

     

  4. 完整操作流程

    • 首先,在方法體上輸入“///”,VS 會自動生成默認的文檔注釋,先寫好注釋
    • 復制<summary>部分的注釋,選中 <summary> 部分,參數及返回信息保留,輸入定義好的代碼段快捷鍵,雙擊 Tab 鍵插入代碼段
    • 將復制的注釋粘貼到 方法描述 處,添加注釋
    • Tab 鍵切換到 當前日期,在 @@Today 處,按設置的插入當前日期的宏快捷鍵,VS 會自動插入當前日期

更新信息注釋

更新信息代碼段示例:

 1   <?xml version="1.0" encoding="utf-8"?>
 2     <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
 3         <CodeSnippet Format="1.0.0">
 4             <Header>
 5                 <Title>up</Title>
 6                 <Shortcut>up</Shortcut>
 7                 <Description>更新代碼注釋 的代碼片段</Description>
 8                 <Author>liweihan</Author>
 9                 <SnippetTypes>
10                     <SnippetType>Expansion</SnippetType>
11                 </SnippetTypes>
12             </Header>
13             <Snippet>
14                 <Declarations>
15                     <Literal>
16                         <ID>Description</ID>
17                         <ToolTip>更新描述</ToolTip>
18                         <Default>更新描述</Default>
19                     </Literal>
20                     <Literal>
21                         <ID>UpdatedBy</ID>
22                         <ToolTip>更新人</ToolTip>
23                         <Default>liweihan</Default>
24                     </Literal>
25                     <Literal>
26                         <ID>UpdatedDate</ID>
27                         <ToolTip>日期</ToolTip>
28                         <Default>@@Today</Default>
29                     </Literal>
30                 </Declarations>
31                 <Code Language="csharp">
32                 <![CDATA[/// $Description$ @UpdatedBy:$UpdatedBy$ @UpdatedDate:$UpdatedDate$$end$ ]]>
33                 </Code>
34             </Snippet>
35         </CodeSnippet>
36     </CodeSnippets>

 

 

 

將自定義代碼段添加到 VS

  • VS 中打開代碼段管理器

 

 

  • 選擇語言為 “CSharp”,選中“My Code Snippets”,選擇“Visual C#”也可以,這里為了區分自己的代碼段和系統代碼段我選擇了"My Code Snippets",復制位置中的路徑,并在資源管理器中打開路徑
  • 將自定義的代碼段(*.snippet)拷貝到上一步打開的目錄中,重啟VS就可以了

文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()