程式碼片段結構描述參考

代碼段是預先授權的程式代碼片段,可供插入您的應用程式。 您可以使用代碼段來減少輸入重複程式碼或搜尋範例所花費的時間,以提高生產力和可靠性。

本文提供 Visual Studio IntelliSense 代碼段 XML 架構的參考。 您可以使用架構來建立自己的代碼段,並將其新增至 Visual Studio 已包含的代碼段。

Assembly 元素

指定程式碼片段所參考的組件名稱。

Assembly 項目的文字值有兩種,即組件的易記文字名稱,例如 System.dll,或是組件的強式名稱,例如 System,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa323c18d4fb1

<Assembly>
    AssemblyName
</Assembly>
父元素 描述
Reference 項目 包含有關程式碼片段所需之組件參考的資訊。

需要文字值。 此文字會指定程式碼片段參考的組件。

Author 元素

指定程式碼片段作者名稱。 [程式碼片段管理員] 會顯示儲存在程式碼片段 Author 項目中的名稱。

<Author>
   Code Snippet Author
</Author>
父元素 描述
Header 項目 包含有關該程式碼片段的一般資訊。

需要文字值。 此文字會指定程式碼片段的作者。

Code 項目

提供簡短程式碼區塊的容器。

關鍵字

Code 項目的文字可以使用兩個保留字:$end$$selected$$end$ 會標記程式碼片段插入後,放置游標的位置。 $selected$ 表示叫用代碼段時要插入代碼段的選取檔文字。 例如,假設程式碼片段包含:

$selected$ is a great color.

如果使用者叫用代碼段時選取此字 Blue ,則結果為:

Blue is a great color.

您不可以在程式碼片段中多次使用 $end$$selected$。 如果這麼做,系統只會辨認第二個執行個體。 假設程式碼片段包含:

$selected$ is a great color. I love $selected$.

如果選取字 Blue 組,則結果為:

 is a great color. I love Blue.

初始空間隨即出現,因為和 is之間$selected$有空格。

所有其他 $ 關鍵字都會在 <Literal><Object> 標記中動態定義。

下列程式代碼顯示 元素的結構 Code

<Code Language="Language"
    Kind="method body/method decl/type decl/page/file/any"
    Delimiter="Delimiter">
    Code to insert
</Code>

需要文字值。 此文字會指定程式碼以及常值和物件,讓您可以在將此程式碼片段插入程式碼檔時使用。

屬性

元素有三個可用 Code 屬性:

  • 語言指定 代碼段語言的必要屬性。 此值必須是下列其中一個值:

    Description
    VB Visual Basic 代碼段。
    CSharp C# 代碼段。
    CPP C++ 代碼段。
    XAML XAML 代碼段。
    XML XML 代碼段。
    JavaScript JavaScript 代碼段。
    TypeScript TypeScript 代碼段。
    SQL SQL 代碼段。
    HTML HTML 代碼段。
  • Kind。 選擇性屬性,指定代碼段包含的程式代碼種類。 此值必須是下列其中一個值:

    Description
    method body 代碼段是方法主體,因此必須插入方法宣告內。
    method decl 代碼段是方法,因此必須插入類別或模組內。
    type decl 代碼段是類型,因此必須插入類別、模組或命名空間內。
    file 代碼段是完整的程式碼檔案,可以單獨插入程式碼檔案或命名空間內。
    any 代碼段可以插入任何位置。 這個標記可用於與內容無關的程式碼片段,例如註解。
  • 分隔符。 選擇性屬性,指定用來描述程式碼中常值和物件的分隔符。 根據預設,分隔符號為 $

父元素

父元素 描述
Snippet 項目 包含程式碼片段的參考、匯入、宣告和程式碼。

CodeSnippet 元素

可讓您指定標題和多個代碼段,您可以在 Visual Studio Code 檔案中插入。

<CodeSnippet Format="x.x.x">
    <Header>... </Header>
    <Snippet>... </Snippet>
</CodeSnippet>
屬性 描述
格式 必要 屬性。 指定程式碼片段的結構描述版本。 Format 屬性必須是 語法x.x.x中的字串,其中每個x屬性都代表版本號碼的數值。 Visual Studio 會忽略其無法理解之 Format 屬性的代碼段。
子項目 描述
Header 項目 必要 專案。 包含有關該程式碼片段的一般資訊。 程式碼片段中只能有一個 Header 項目。
Snippet 項目 必要 專案。 包含 Visual Studio 要插入的程式代碼。 程式碼片段中只能有一個 Snippet 項目。
父元素 描述
CodeSnippets 項目 程式碼片段 XML 結構描述的根項目。

CodeSnippets 元素

CodeSnippet 項目設為群組。 CodeSnippets 項目是程式碼片段 XML 結構描述的根項目。

<CodeSnippets>
    <CodeSnippet>... </CodeSnippet>
</CodeSnippets>
子項目 描述
CodeSnippet 項目 選擇性項目。 所有程式碼片段資料的父項目。 CodeSnippet 項目中可能有零個或多個 CodeSnippets 項目。

Declarations 元素

指定構成您可以編輯的程式碼片段部分的常值和物件。

<Declarations>
    <Literal>... </Literal>
    <Object>... </Object>
</Declarations>
子項目 描述
Literal 項目 選擇性項目。 定義您可以編輯的程式碼片段常值。 Literal 項目中可能有零個或多個 Declarations 項目。
Object 項目 選擇性項目。 定義您可以編輯的程式碼片段物件。 Object 項目中可能有零個或多個 Declarations 項目。
父元素 描述
Snippet 項目 包含程式碼片段的參考、匯入、宣告和程式碼。

Default 元素

指定代碼段常值或物件的預設值。

<Default>
    Default value
</Default>
父元素 描述
Literal 項目 定義您可以編輯之程式碼片段的常值欄位。
Object 項目 定義您可以編輯之程式碼片段的物件欄位。

需要文字值。 這項文字是指定填入您可以編輯的程式碼片段中,各欄位的常值或物件的預設值。

Description 元素

指定代碼段內容的描述性資訊。

<Description>
    Code Snippet Description
</Description>
父元素 描述
Header 項目 包含有關該程式碼片段的一般資訊。

需要文字值。 此文字描述程式碼片段。

Function 項目

指定常值或物件在 Visual Studio 中得到焦點時要執行的函式。

注意

並非所有語言都支援 Function 元素。 如需可用的函式,請參閱語言特定文件。

<Function>
    FunctionName
</Function>
父元素 描述
Literal 項目 定義您可以編輯之程式碼片段的常值欄位。
Object 項目 定義您可以編輯之程式碼片段的物件欄位。

需要文字值。 此文字指定常值或物件欄位在 Visual Studio 中得到焦點時要執行的函式。

Header 項目

指定有關程式碼片段的一般資訊。

<Header>
    <Title>... </Title>
    <Author>... </Author>
    <Description>... </Description>
    <HelpUrl>... </HelpUrl>
    <SnippetTypes>... </SnippetTypes>
    <Keywords>... </Keywords>
    <Shortcut>... </Shortcut>
</Header>
子項目 描述
Author 項目 選擇性項目。 程式碼片段作者的人員或公司名稱。 元素中可能有零個或一個AuthorHeader元素。
Description 項目 選擇性項目。 程式碼片段的描述。 元素中可能有零個或一個DescriptionHeader元素。
HelpUrl 項目 選擇性項目。 包含程式碼片段詳細資訊的 URL。 元素中可能有零個或一個HelpURLHeader元素。
Keywords 項目 選擇性項目。 將 Keyword 項目設為群組。 元素中可能有零個或一個KeywordsHeader元素。
Shortcut 項目 選擇性項目。 指定可用來插入程式碼片段的捷徑文字。 元素中可能有零個或一個ShortcutHeader元素。
SnippetTypes 項目 選擇性項目。 將 SnippetType 項目設為群組。 元素中可能有零個或一個SnippetTypesHeader元素。 如果沒有 SnippetTypes 項目,程式碼片段永遠有效。
Title 項目 必要 專案。 程式碼片段的易記名稱。 Title 項目中只能有一個 Header 項目。
父元素 描述
CodeSnippet 項目 所有程式碼片段資料的父項目。

HelpUrl 元素

指定提供程式碼片段詳細資訊的 URL。

注意

Visual Studio 不會使用 HelpUrl 專案。 元素是 IntelliSense 代碼段 XML 架構的一部分,以及包含元素驗證的代碼段,但永遠不會使用元素的值。

<HelpUrl>
    www.microsoft.com
</HelpUrl>
父元素 描述
Header 項目 包含有關該程式碼片段的一般資訊。

可選擇使用文字值。 此文字指定可瀏覽程式碼片段詳細資訊的 URL。

ID 元素

指定 LiteralObject 項目的唯一識別項。 相同程式碼片段中兩個常值或物件的 ID 項目中不能有相同的文字值。 常值和物件不能包含 ID 值為 end的專案。 已保留 $end$ 值,並且在插入程式碼片段以後,用來標示放置游標的位置。

<ID>
    Unique Identifier
</ID>
父元素 描述
Literal 項目 定義您可以編輯之程式碼片段的常值欄位。
Object 項目 定義您可以編輯之程式碼片段的物件欄位。

需要文字值。 此文字會指定物件或常值的唯一識別項。

Import 元素

指定代碼段所使用的匯入命名空間。

<Import>
    <Namespace>... </Namespace>
</Import>
子項目 描述
Namespace 項目 必要 專案。 指定程式碼片段所使用的命名空間。 Namespace 項目中只能有一個 Import 項目。
父元素 描述
Imports 項目 Import 項目的群組項目。

Imports 元素

將個別 Import 項目設為群組。

<Imports>
    <Import>... </Import>
</Imports>
子項目 描述
Import 項目 選擇性項目。 包含程式碼片段的已匯入命名空間。 Imports 元素中可能有零個或多個 Import 元素。
父元素 描述
Snippet 項目 包含程式碼片段的參考、匯入、宣告和程式碼。

Keyword 元素

指定程式碼片段的自訂關鍵字。 這些程式碼片段關鍵字是由 Visual Studio 使用,而且代表線上內容提供者加入自訂關鍵字進行搜尋或分類的標準方式。

<Keyword>
    Code Snippet Keyword
</Keyword>
父元素 描述
Keywords 項目 將個別 Keyword 項目設為群組。

需要文字值。 程式碼片段的關鍵字。

Keywords 元素

將個別 Keyword 項目設為群組。 這些程式碼片段關鍵字是由 Visual Studio 使用,而且代表線上內容提供者加入自訂關鍵字進行搜尋或分類的標準方式。

<Keywords>
    <Keyword>... </Keyword>
    <Keyword>... </Keyword>
</Keywords>
子項目 描述
Keyword 項目 選擇性項目。 包含程式碼片段的個別關鍵字。 Keyword 項目中可能有零個或多個 Keywords 項目。
父元素 描述
Header 項目 包含有關該程式碼片段的一般資訊。

Literal 項目

定義您可以編輯的程式碼片段常值。 元素 Literal 會識別代碼段完全包含在代碼段內的取代專案,而代碼段會在插入代碼段之後加以自定義。 例如常值字串、數值以及一些應宣告為常值的變數名稱。

常值和物件不能包含 ID 值為 selectedend的專案。 值 $selected$ 代表叫用代碼段時要插入代碼段的選取檔文字。 $end$ 會標記程式碼片段插入後,放置游標的位置。

<Literal Editable="true/false">
   <ID>... </ID>
   <ToolTip>... </ToolTip>
   <Default>... </Default>
   <Function>... </Function>
</Literal>
屬性 描述
編輯 選擇性 Boolean 屬性。 指定在程式碼片段插入後您是否可以編輯常值。 此屬性的預設值為 true
子項目 描述
Default 項目 必要 專案。 當您插入程式碼片段時,指定常值的預設值。 Default 項目中只能有一個 Literal 項目。
Function 項目 選擇性項目。 指定常值在 Visual Studio 中獲得焦點時要執行的函式。 元素中可能有零個或一個FunctionLiteral元素。
ID 項目 必要 專案。 指定常值的唯一識別項。 ID 項目中只能有一個 Literal 項目。
ToolTip 項目 選擇性項目。 描述常值需要的值和使用方式。 元素中可能有零個或一個ToolTipLiteral元素。
父元素 描述
Declarations 項目 包含您可以編輯之程式碼片段的常值和物件。

Namespace 元素

指定必須匯入的命名空間,匯入後程式碼片段才能進行編譯和執行。 在 Namespace 元素中指定的命名空間會自動加入至程式碼開頭的 using 指示詞或 Imports 陳述式中 (如果不存在的話)。

<Namespace>
    Namespace
</Namespace>
父元素 描述
Import 項目 匯入指定的命名空間。

需要文字值。 此文字會指定程式碼片段假設已匯入的命名空間。

Object 元素

定義您可以編輯的程式碼片段物件。 元素 Object 會識別代碼段在代碼段本身外部定義所需的專案。 例如,Windows Form 控制項、ASP.NET 控制項、物件執行個體以及類型執行個體應該宣告為物件。 物件宣告需要指定型別,這是使用 專案完成的 Type

<Object Editable="true/false">
    <ID>... </ID>
    <Type>... </Type>
    <ToolTip>... </ToolTip>
    <Default>... </Default>
    <Function>... </Function>
</Object>
屬性 描述
編輯 選擇性 Boolean 屬性。 指定在程式碼片段插入後您是否可以編輯常值。 此屬性的預設值為 true
子項目 描述
Default 項目 必要 專案。 當您插入程式碼片段時,指定常值的預設值。 Default 項目中只能有一個 Literal 項目。
Function 項目 選擇性項目。 指定常值在 Visual Studio 中獲得焦點時要執行的函式。 元素中可能有零個或一個FunctionLiteral元素。
ID 項目 必要 專案。 指定常值的唯一識別項。 ID 項目中只能有一個 Literal 項目。
ToolTip 項目 選擇性項目。 描述常值需要的值和使用方式。 元素中可能有零個或一個ToolTipLiteral元素。
Type 項目 必要 專案。 指定物件類型。 Type 項目中只能有一個 Object 項目。
父元素 描述
Declarations 項目 包含您可以編輯之程式碼片段的常值和物件。

Reference 元素

指定程式碼片段所需之組件參考的相關資訊。

<Reference>
    <Assembly>... </Assembly>
    <Url>... </Url>
</Reference>
子項目 描述
Assembly 項目 必要 專案。 包含程式碼片段參考的組件名稱。 Assembly 項目中只能有一個 Reference 項目。
Url 項目 選擇性項目。 包含可提供參考組件詳細資訊的 URL。 元素中可能有零個或一個UrlReference元素。
父元素 描述
References 項目 Reference 項目的群組項目。

References 元素

將個別 Reference 項目設為群組。

<References>
    <Reference>... </Reference>
</References>
子項目 描述
Reference 項目 選擇性項目。 包含程式碼片段的組件參考資訊。 Reference 項目中可能有零個或多個 References 項目。
父元素 描述
Snippet 項目 包含程式碼片段的參考、匯入、宣告和程式碼。

Shortcut 元素

指定用來插入程式碼片段的捷徑文字。 元素的 Shortcut 文字值只能包含英數位元和底線 (_)。

注意

C++ 代碼段快捷方式不支援底線 (_) 字元。

<Shortcut>
    Shortcut Text
</Shortcut>
父元素 描述
Header 項目 包含有關該程式碼片段的一般資訊。

可選擇使用文字值。 此文字是做為插入程式碼片段的捷徑。

Snippet 元素

指定程式碼片段的參考、匯入、宣告及程式碼。

<Snippet>
    <References>... </References>
    <Imports>... </Imports>
    <Declarations>... </Declarations>
    <Code>... </Code>
</Snippet>
子項目 描述
Code 項目 必要 專案。 指定您要插入文件檔的程式碼。 Code 項目中只能有一個 Snippet 項目。
Declarations 項目 選擇性項目。 指定構成您可以編輯的程式碼片段部分的常值和物件。 元素中可能有零個或一個DeclarationsSnippet元素。
Imports 項目 選擇性項目。 將個別 Import 項目設為群組。 元素中可能有零個或一個ImportsSnippet元素。
References 項目 選擇性項目。 將個別 Reference 項目設為群組。 元素中可能有零個或一個ReferencesSnippet元素。
父元素 描述
CodeSnippet 項目 可讓您指定標題和多個代碼段,您可以在 Visual Studio Code 檔案中插入。

SnippetType 項目

指定 Visual Studio 如何新增代碼段。

<SnippetType>
    SurroundsWith/Expansion
</SnippetType>
父元素 描述
SnippetTypes 項目 SnippetType 項目設為群組。

此值必須是下列其中一個值:

Description
Expansion 允許在游標插入代碼段。
Refactoring 指定在 C# 重構期間使用代碼段。 Refactoring 無法在自定義代碼段中使用。
SurroundsWith 允許將代碼段放在選取的程式代碼段周圍。

SnippetTypes 元素

將個別 SnippetType 項目設為群組。 SnippetTypes如果專案不存在,代碼段可以插入游標或放在選取的程式代碼周圍。

<SnippetTypes>
    <SnippetType>... </SnippetType>
    <SnippetType>... </SnippetType>
</SnippetTypes>
子項目 描述
SnippetType 項目 選擇性項目。 指定 Visual Studio 如何將程式碼片段插入程式碼中。 SnippetType 項目中可能有零個或多個 SnippetTypes 項目。
父元素 描述
Header 項目 指定有關程式碼片段的一般資訊。

Title 元素

指定程式碼片段的標題。 儲存在代碼段元素中的Title標題會出現在代碼段選擇器中,並以代碼段管理員中的代碼段名稱顯示。

<Title>
    Code Snippet Title
</Title>
父元素 描述
Header 項目 指定有關程式碼片段的一般資訊。

需要文字值。 此文字會指定程式碼片段的標題。

ToolTip 元素

描述代碼段中常值或對象的預期值和使用方式。 Visual Studio 會在工具提示中將代碼段插入專案中時,在工具提示中顯示這項資訊。 工具提示也會在插入代碼段之後,將滑鼠停留在常值或物件上時顯示。

<ToolTip>
    ToolTip description
</ToolTip>
父元素 描述
Literal 項目 定義您可以編輯之程式碼片段的常值欄位。
Object 項目 定義您可以編輯之程式碼片段的物件欄位。

需要文字值。 此文字會指定要與程式碼片段中的物件或常值相關聯的工具提示描述。

Type 項目

指定物件類型。 元素 Object 會識別代碼段需要但可能定義於代碼段本身外部的專案。 例如,Windows Form 控制項、ASP.NET 控制項、物件執行個體以及類型執行個體應該宣告為物件。 物件宣告需要指定型別,這是使用 專案完成的 Type

<Type>
    Type
</Type>
父元素 描述
Object 項目 定義您可以編輯之程式碼片段的物件欄位。

需要文字值。 此文字會指定物件的類型。 例如:

<Type>System.Data.SqlClient.SqlConnection</Type>

Url 元素

指定提供所參考組件相關詳細資訊的 URL。

注意

只有 Visual Basic 專案才支援 元素 Url

<Url>
    www.microsoft.com
</Url>
父元素 描述
Reference 項目 指定程式碼片段所需的組件參考。

需要文字值。 此文字會指定參考組件詳細資訊的 URL。 當無法將參考新增至專案時,會顯示此URL。