1. 程式人生 > >VS自定義代碼塊Code Snippet

VS自定義代碼塊Code Snippet

程序 schema com script left 就會 其中 存儲 sha

一 、簡述

  我們在開發當中,避免不了一些重復的開發工作,在你漫長的開發以及學習當中,你會發現有這麽一部分代碼是你時常會使用到的。我想這個工具也是針對這個原因出來的吧,它就是預先把你需要的這部分代碼的主幹部分給它提練出來,然後你只要修改局部的某些部分內容,從而完成你代碼的編輯工作。這樣的好處,就是當你使用一個快捷鍵的方式,就可以把你這部分常用的代碼直接插入到你需要的代碼文件當中。而不需要你由頭到尾地重復一些額外的工作,縮短你的開發時間,提高你的工作效率。這就是今天要說到的Code Snippet

二 、Code Snippet介紹

  一個 CodeSnippet 則主要包含 <Header> 和 <Snippet> 兩部分。一個 <CodeSnippets> 元素可以包含多個不同的 <CodeSnippet> 。其中 <Header> 部分主要是對這個 Snippet 的一個聲明,包括 Snippet 的名稱、描述、作者及 Snippet 的類型。

1.Header

  <Title>表示此代碼段標題

  <Shortcut>設置快捷鍵

  <Description>對代碼段的描述

  <SnippetTypes>可以包含多個<SnippetType>其取值有三種Expansion、SurroundsWith、Refactoring 。Expansion允許代碼插入在光標處;SurroundsWith允許代碼圍繞在選中代碼兩邊;Refactoring指定了C#重構過程中所使用的Snippet,在自定義Snippet中不能使用。如果該值不做設置,則Snippet可以放在任何地方。

<Snippet>節點是實現代碼管理的地方,其包含四個子節點<Code><Declarations><Imports><References>

2.Snippet

<Code>

包含<![CDATA[]]>中,放置模版代碼,此節點設置Language(C# VB XML),Kind(類型:如方法體,方法聲明),Delimiter(分隔符,默認值是$)

private $type$ $field$;

public $type$ $property$
{
get { return $field$;}
set { $field$ = value;}
}

為定義的模板代碼,type,field,property為定義的變量,變量在Declarations的Literal中聲明。

$end$為當按enter鍵後光標的默認位置

<Declarations>

包含多個<Literal>和<Object>節點,<Literal>用於設定變量值<Object>用於聲明模版對象。

這裏只說明Literal

ID 默認屬性名稱

ToolTip 屬性說明

Default 默認類型

<Imports>

引入命名空間,只支持vb . - -#.

<References>

添加程序集引用,只支持vb . - -#.

三 、Code Snippet簡單使用

  首先可以在 工具 >> 代碼片段管理器 中找到系統定義的snippet代碼片段。如for,if等,可以看到對應語言和存儲位置。

技術分享圖片

下面以propfull自動屬性為例講解:

創建文件propfull.snippet,實質為xml文件

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>propfull</Title>
            <Shortcut>propfull</Shortcut>
            <Description>屬性和支持字段的代碼片段</Description>
            <Author>Microsoft Corporation</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>type</ID>
                    <ToolTip>屬性類型</ToolTip>
                    <Default>int</Default>
                </Literal>
                <Literal>
                    <ID>property</ID>
                    <ToolTip>屬性名</ToolTip>
                    <Default>MyProperty</Default>
                </Literal>
                <Literal>
                    <ID>field</ID>
                    <ToolTip>支持此屬性的變量</ToolTip>
                    <Default>myVar</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[private $type$ $field$;

    public $type$ $property$
    {
        get { return $field$;}
        set { $field$ = value;}
    }
    $end$]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

定義好放在C#對於路徑下,然後就可以在VS中敲入propfull,就會實現以下輸出

        private int myVar;

        public int MyProperty
        {
            get { return myVar; }
            set { myVar = value; }
        }

VS自定義代碼塊Code Snippet