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

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

Intro

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

  1. 什么是創(chuàng)建信息注釋?

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

  2. 為什么要添加創(chuàng)建信息注釋?

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

創(chuàng)建信息注釋

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

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

  2. 自定義代碼段

    自定義代碼段參考示例:

        <?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
    上有人討論過這個問題,解決方案是利用宏自動生成當前日期,但是文中提到的解決方案不可用,不過倒給了我解決問題的思路——利用宏去插入當前日期。

  3. 宏插入當前日期

    我在 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
  4. 完整操作流程

    • 首先,在方法體上輸入“///”,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

  1. VS 中打開代碼段管理器
snippetManager.png
snippetManager1.png
  1. 選擇語言為 “CSharp”,選中“My Code Snippets”,復制位置中的路徑,并在資源管理器中打開路徑
  2. 將自定義的代碼段(*.snippet)拷貝到上一步打開的目錄中,重啟VS就可以了
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,023評論 25 709
  • 1.1 VBA是什么 直到90年代早期,使應用程序自動化還是充滿挑戰(zhàn)性的領域.對每個需要自動化的應用程序,人們不得...
    浮浮塵塵閱讀 22,139評論 6 49
  • 對成績的過度追求,造成不少學生一出考場便急于對答案,急于判斷自己答題情況,如果預判自己答題情況不好,常常會造成對下...
    耘心閱讀 306評論 0 0
  • 《靜夜思》 秋風起 細雨涼 夜色冷 人心更寂寥 稀疏的草木 慢慢的枯黃 那片片凋零的不是花瓣 一個人的街頭 除了霓...
    晚熟的柿子閱讀 256評論 1 2

友情鏈接更多精彩內(nèi)容