代码片段架构参考

代码片段是预先授权的代码片段,可以插入到应用程序中。 通过使用代码片段来减少键入重复代码或搜索示例所花费的时间,可以提高工作效率和可靠性。

本文提供对 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 元素的文本中使用:$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.

初始空间出现是因为存在空格和 $selected$ is

所有其他 $ 关键字将在 <Literal><Object> 标记中自动定义。

以下代码显示元素的结构 Code

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

需要一个文本值。 此文本指定在将此代码片段插入到代码文件中时可以使用的代码以及文本和对象。

特性

有三个属性可用于 Code 该元素:

  • 语言指定代码片段语言的必需 属性。 该值必须是以下值之一:

    说明
    VB Visual Basic 代码片段。
    CSharp C# 代码片段。
    CPP C++ 代码片段。
    XAML XAML 代码片段。
    XML XML 代码片段。
    JavaScript JavaScript 代码片段。
    TypeScript TypeScript 代码片段。
    SQL SQL 代码片段。
    HTML HTML 代码片段。
  • Kind。 指定代码片段包含的代码类型的可选属性。 该值必须是以下值之一:

    说明
    method body 该代码片段是一个方法正文,因此必须插入方法声明。
    method decl 该代码片段是一种方法,因此必须插入到类或模块中。
    type decl 代码片段是一种类型,因此必须插入类、模块或命名空间中。
    file 该代码片段是完整的代码文件,可以单独插入代码文件或命名空间中。
    any 可以在任意位置插入代码片段。 此标记可用于上下文独立的代码段(例如注释)。
  • 分隔符。 可选属性,用于指定用于描述代码中文本和对象的分隔符。 默认情况下,分隔符为 $

父元素

父元素 描述
Snippet 元素 包含用于代码段的引用、导入、声明和代码。

CodeSnippet 元素

允许你指定一个标题和多个代码段,你可以将其插入 Visual Studio Code 文件中。

<CodeSnippet Format="x.x.x">
    <Header>... </Header>
    <Snippet>... </Snippet>
</CodeSnippet>
Attribute 说明
Format 必需 属性。 指定代码段的架构版本。 Format 属性必须是语法x.x.x中的字符串,其中每个x属性都表示版本号的数值。 Visual Studio 忽略代码片段,其中包含它无法理解的格式属性。
子元素 描述
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 元素 可选元素。 包含代码段的导入命名空间。 Import 元素中可能有零个或零个以上的 Imports 元素。
父元素 描述
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 窗体控件、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 元素进行分组。

该值必须是以下值之一:

说明
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 窗体控件、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。