Справочник по схеме фрагментов кода
Фрагменты кода — это предварительно подготовленные фрагменты кода, готовые к вставке в приложение. Вы можете повысить производительность и надежность с помощью фрагментов кода, чтобы сократить время, затраченное на ввод повторяющегося кода или поиск примеров.
В этой статье содержится ссылка на схему XML кода IntelliSense Visual Studio. Схему можно использовать для создания собственных фрагментов кода и добавления их в фрагменты кода, которые visual Studio уже включает.
- Дополнительные сведения о создании фрагментов кода см. в пошаговом руководстве. Создание фрагмента кода в Visual Studio.
- Сведения о фрагментах кода, которые Visual Studio включает по умолчанию, см . в фрагментах кода C# или фрагментах кода Visual C++.
Элемент Assembly
Задает имя сборки, на которую ссылается фрагмент кода.
В качестве текстового значения элемента Assembly выступает либо понятное текстовое имя сборки, например System.dll
, либо строгое имя сборки, например System,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa323c18d4fb1
.
<Assembly>
AssemblyName
</Assembly>
Родительский элемент | Description |
---|---|
Элемент Reference | Содержит сведения о ссылках на сборки, требуемые фрагментом кода. |
Текстовое значение является обязательным. Данный текст задает сборку, на которую ссылается фрагмент кода.
Элемент Author
Задает имя автора фрагмента. В диспетчере фрагментов кода отображается имя, хранящееся в элементе Author
фрагмента кода.
<Author>
Code Snippet Author
</Author>
Родительский элемент | Description |
---|---|
Элемент 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.
Начальное пространство появляется, так как между ними 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
:
Язык. Обязательный атрибут, указывающий язык фрагмента кода. Значение должно быть одним из следующих значений:
значение Описание VB
Фрагмент кода Visual Basic. CSharp
Фрагмент кода C#. CPP
Фрагмент кода C++ . XAML
Фрагмент кода XAML. XML
Фрагмент кода XML. JavaScript
Фрагмент кода JavaScript. TypeScript
Фрагмент кода TypeScript. SQL
Фрагмент кода SQL. HTML
Фрагмент кода HTML. Вроде. Необязательный атрибут, указывающий тип кода, который содержит фрагмент кода. Значение должно быть одним из следующих значений:
значение Описание method body
Фрагмент является телом метода, поэтому его необходимо вставить в объявление метода. method decl
Фрагмент кода — это метод, поэтому его необходимо вставить в класс или модуль. type decl
Фрагмент кода — это тип, поэтому его необходимо вставить в класс, модуль или пространство имен. file
Фрагмент кода представляет собой полный файл кода и может быть вставлен в файл кода или внутри пространства имен. any
Фрагмент можно вставить в любом месте. Данный тег используется для фрагментов кода, которые не зависят от контекста, например для комментариев. Разделитель. Необязательный атрибут, указывающий разделитель, используемый для описания литералы и объектов в коде. По умолчанию используется разделитель
$
.
Родительский элемент
Родительский элемент | Description |
---|---|
Элемент Snippet | Содержит ссылки, операции импорта, объявления и код для фрагмента кода. |
Элемент CodeSnippet
Позволяет указать заголовок и несколько фрагментов кода, которые можно вставить в файлы Visual Studio Code.
<CodeSnippet Format="x.x.x">
<Header>... </Header>
<Snippet>... </Snippet>
</CodeSnippet>
Атрибут | Description |
---|---|
Формат | Обязательный атрибут. Задает версию схемы фрагмента кода. Атрибут Format должен быть строкой в синтаксисеx.x.x , где каждый x представляет числовое значение номера версии. Visual Studio игнорирует фрагменты кода с атрибутами format , которые не понимают. |
Дочерний элемент | Description |
---|---|
Элемент Header | Обязательный элемент. Содержит общие сведения о фрагменте кода. Фрагмент кода должен содержать ровно один элемент Header . |
Элемент Snippet | Обязательный элемент. Содержит код, вставляемый Visual Studio. Фрагмент кода должен содержать ровно один элемент Snippet . |
Родительский элемент | Description |
---|---|
Элемент CodeSnippets | Корневой элемент схемы XML фрагмента кода. |
Элемент CodeSnippets
Группирует элементы CodeSnippet. Элемент CodeSnippets
является корневым элементом схемы XML фрагмента кода.
<CodeSnippets>
<CodeSnippet>... </CodeSnippet>
</CodeSnippets>
Дочерний элемент | Description |
---|---|
Элемент CodeSnippet | Необязательный элемент. Родительский элемент для всех данных фрагмента кода. Элемент CodeSnippet может содержать любое число элементов CodeSnippets , включая ноль. |
Элемент Declarations
Задает литералы и объекты, которые составляют части фрагмента кода, доступные для изменения.
<Declarations>
<Literal>... </Literal>
<Object>... </Object>
</Declarations>
Дочерний элемент | Description |
---|---|
Элемент Literal | Необязательный элемент. Задает литералы фрагмента кода, доступные для редактирования. Элемент Literal может содержать любое число элементов Declarations , включая ноль. |
Элемент Object | Необязательный элемент. Задает объекты фрагмента кода, доступные для изменения. Элемент Object может содержать любое число элементов Declarations , включая ноль. |
Родительский элемент | Description |
---|---|
Элемент Snippet | Содержит ссылки, операции импорта, объявления и код для фрагмента кода. |
Элемент Default
Указывает значение по умолчанию литерала или объекта для фрагмента кода.
<Default>
Default value
</Default>
Родительский элемент | Description |
---|---|
Элемент Literal | Определяет доступные для редактирования поля литералов фрагмента кода. |
Элемент Object | Определяет доступные для редактирования поля объектов фрагмента кода. |
Текстовое значение является обязательным. В этом тексте указывается значение по умолчанию для литерала или объекта в поле фрагмента кода, доступном для редактирования.
Элемент Description
Указывает описательные сведения о содержимом фрагмента кода.
<Description>
Code Snippet Description
</Description>
Родительский элемент | Description |
---|---|
Элемент Header | Содержит общие сведения о фрагменте кода. |
Текстовое значение является обязательным. Этот текст описывает фрагмент кода.
Function, элемент
Задает функцию, выполняемую при получении фокуса литералом или объектом в Visual Studio.
Примечание.
Не все языки поддерживают элементы Function
. См. сведения о доступных функциях в документации по языку.
<Function>
FunctionName
</Function>
Родительский элемент | Description |
---|---|
Элемент Literal | Определяет доступные для редактирования поля литералов фрагмента кода. |
Элемент Object | Определяет доступные для редактирования поля объектов фрагмента кода. |
Текстовое значение является обязательным. Этот текст задает функцию, выполняемую при получении фокуса литералом или полем объекта в Visual Studio.
Элемент Header
Задает общие сведения о фрагменте кода.
<Header>
<Title>... </Title>
<Author>... </Author>
<Description>... </Description>
<HelpUrl>... </HelpUrl>
<SnippetTypes>... </SnippetTypes>
<Keywords>... </Keywords>
<Shortcut>... </Shortcut>
</Header>
Дочерний элемент | Description |
---|---|
Элемент Author | Необязательный элемент. Имя человека или компании, которые являются автором фрагмента кода. В элементе Header может быть ноль или один Author элемент. |
Элемент Description | Необязательный элемент. Описание фрагмента кода. В элементе Header может быть ноль или один Description элемент. |
Элемент HelpUrl | Необязательный элемент. URL-адрес, содержащий дополнительные сведения о фрагменте кода. В элементе Header может быть ноль или один HelpURL элемент. |
Элемент Keywords | Необязательный элемент. Группирует элементы Keyword . В элементе Header может быть ноль или один Keywords элемент. |
Элемент Shortcut | Необязательный элемент. Задает сокращенное имя, которое может использоваться для вставки фрагмента. В элементе Header может быть ноль или один Shortcut элемент. |
Элемент SnippetTypes | Необязательный элемент. Группирует элементы SnippetType . В элементе Header может быть ноль или один SnippetTypes элемент. При отсутствии элементов SnippetTypes фрагмент кода всегда действителен. |
Элемент Title | Обязательный элемент. Понятное имя фрагмента кода. Элемент Title должен содержать ровно один элемент Header . |
Родительский элемент | Description |
---|---|
Элемент CodeSnippet | Родительский элемент для всех данных фрагмента кода. |
Элемент HelpUrl
Задает URL-адрес, по которому можно получить дополнительные сведения о фрагменте кода.
Примечание.
Visual Studio не использует HelpUrl
элемент. Элемент является частью схемы XML фрагмента кода IntelliSense, а фрагменты кода, содержащие проверку элемента, но значение элемента никогда не используется.
<HelpUrl>
www.microsoft.com
</HelpUrl>
Родительский элемент | Description |
---|---|
Элемент Header | Содержит общие сведения о фрагменте кода. |
Текстовое значение является необязательным. Данный текст задает URL-адрес с дополнительными сведениями о фрагменте кода.
Элемент ID
Задает уникальный идентификатор элемента Literal
или Object
. Никакие два литерала или объекта в одном фрагменте кода не могут иметь одинаковое текстовое значение в элементах ID
. Литералы и объекты не могут содержать ID
элемент со значением end
. Значение $end$
зарезервировано и используется для указания позиции курсора после вставки фрагмента кода.
<ID>
Unique Identifier
</ID>
Родительский элемент | Description |
---|---|
Элемент Literal | Определяет доступные для редактирования поля литералов фрагмента кода. |
Элемент Object | Определяет доступные для редактирования поля объектов фрагмента кода. |
Текстовое значение является обязательным. Данный текст задает уникальный идентификатор для объекта или литерала.
Элемент Import
Указывает импортированные пространства имен, используемые фрагментом кода.
<Import>
<Namespace>... </Namespace>
</Import>
Дочерний элемент | Description |
---|---|
Элемент Namespace | Обязательный элемент. Задает пространство имен, используемое фрагментом кода. Элемент Namespace должен содержать ровно один элемент Import . |
Родительский элемент | Description |
---|---|
Элемент Imports | Группирующий элемент для элементов Import . |
Элемент Imports
Группирует отдельные элементы Import
.
<Imports>
<Import>... </Import>
</Imports>
Дочерний элемент | Description |
---|---|
Элемент Import | Необязательный элемент. Содержит импортированные пространства имен для фрагмента кода. Элемент Imports может содержать любое число элементов Import , включая ноль. |
Родительский элемент | Description |
---|---|
Элемент Snippet | Содержит ссылки, операции импорта, объявления и код для фрагмента кода. |
Элемент Keyword
Задает пользовательское ключевое слово для фрагмента кода. Ключевые слова фрагментов кода используются в Visual Studio и представляют собой стандартный способ добавления ключевых слов для поиска и категоризации поставщиками содержимого в Интернете.
<Keyword>
Code Snippet Keyword
</Keyword>
Родительский элемент | Description |
---|---|
Элемент Keywords | Группирует отдельные элементы Keyword . |
Текстовое значение является обязательным. Ключевое слово для фрагмента кода.
Элемент Keywords
Группирует отдельные элементы Keyword
. Ключевые слова фрагментов кода используются в Visual Studio и представляют собой стандартный способ добавления ключевых слов для поиска и категоризации поставщиками содержимого в Интернете.
<Keywords>
<Keyword>... </Keyword>
<Keyword>... </Keyword>
</Keywords>
Дочерний элемент | Description |
---|---|
Элемент Keyword | Необязательный элемент. Содержит отдельные ключевые слова для фрагмента кода. Элемент Keyword может содержать любое число элементов Keywords , включая ноль. |
Родительский элемент | Description |
---|---|
Элемент Header | Содержит общие сведения о фрагменте кода. |
Literal, элемент
Задает литералы фрагмента кода, доступные для редактирования. Элемент Literal
определяет замену фрагмента кода, полностью содержащегося в фрагменте кода, который можно настроить после вставки фрагмента кода. Например, строки литералов, числовые значения и некоторые имена переменных должны объявляться как литералы.
Литералы и объекты не могут содержать ID
элемент со значением selected
или end
. Значение $selected$
представляет выделенный текст документа, который будет вставлен в фрагмент при вызове фрагмента. $end$
отмечает расположение курсора после вставки фрагмента кода.
<Literal Editable="true/false">
<ID>... </ID>
<ToolTip>... </ToolTip>
<Default>... </Default>
<Function>... </Function>
</Literal>
Атрибут | Description |
---|---|
Редактируемые | Необязательный атрибут элемента Boolean . Задает, доступен ли литерал для редактирования после вставки фрагмента кода. Значение данного атрибута по умолчанию — true . |
Дочерний элемент | Description |
---|---|
Элемент Default | Обязательный элемент. Задает значение по умолчанию литерала при вставке фрагмента кода. Элемент Default должен содержать ровно один элемент Literal . |
Элемент Function | Необязательный элемент. Задает функцию для выполнения при получении литералом фокуса в Visual Studio. В элементе Literal может быть ноль или один Function элемент. |
Элемент ID | Обязательный элемент. Задает уникальный идентификатор для литерала. Элемент ID должен содержать ровно один элемент Literal . |
Элемент ToolTip | Необязательный элемент. Описывает ожидаемое значение и способ использования литерала. В элементе Literal может быть ноль или один ToolTip элемент. |
Родительский элемент | Description |
---|---|
Элемент Declarations | Содержит литералы и объекты фрагмента кода, доступные для редактирования. |
Элемент Namespace
Задает пространство имен, которое требуется импортировать для компиляции и запуска фрагмента кода. Пространство имен, заданное в элементе Namespace
, автоматически добавляется в директиву using
или в инструкцию Imports
в начале кода в том случае, если оно еще не существует.
<Namespace>
Namespace
</Namespace>
Родительский элемент | Description |
---|---|
Элемент Import | Импортирует заданное пространство имен. |
Текстовое значение является обязательным. Данный текст задает пространство имен, трактуемое фрагментом кода как импортированное.
Элемент Object
Задает объекты фрагмента кода, доступные для изменения. Элемент Object
определяет элемент, необходимый фрагменту кода, который определен вне самого фрагмента кода. Например, элементы управления Windows Forms, элементы управления ASP.NET, экземпляры объектов и экземпляры типов должны быть объявлены как объекты. Объявления объектов требуют указания типа, который выполняется с элементом Type
.
<Object Editable="true/false">
<ID>... </ID>
<Type>... </Type>
<ToolTip>... </ToolTip>
<Default>... </Default>
<Function>... </Function>
</Object>
Атрибут | Description |
---|---|
Редактируемые | Необязательный атрибут элемента Boolean . Задает, доступен ли литерал для редактирования после вставки фрагмента кода. Значение данного атрибута по умолчанию — true . |
Дочерний элемент | Description |
---|---|
Элемент Default | Обязательный элемент. Задает значение по умолчанию литерала при вставке фрагмента кода. Элемент Default должен содержать ровно один элемент Literal . |
Элемент Function | Необязательный элемент. Задает функцию для выполнения при получении литералом фокуса в Visual Studio. В элементе Literal может быть ноль или один Function элемент. |
Элемент ID | Обязательный элемент. Задает уникальный идентификатор для литерала. Элемент ID должен содержать ровно один элемент Literal . |
Элемент ToolTip | Необязательный элемент. Описывает ожидаемое значение и способ использования литерала. В элементе Literal может быть ноль или один ToolTip элемент. |
Элемент Type | Обязательный элемент. Указывает тип объекта . Элемент Type должен содержать ровно один элемент Object . |
Родительский элемент | Description |
---|---|
Элемент Declarations | Содержит литералы и объекты фрагмента кода, доступные для редактирования. |
Элемент Reference
Задает сведения о ссылках на сборки, требуемые фрагментом кода.
<Reference>
<Assembly>... </Assembly>
<Url>... </Url>
</Reference>
Дочерний элемент | Description |
---|---|
Элемент Assembly | Обязательный элемент. Содержит имя сборки, на которую ссылается фрагмент кода. Элемент Assembly должен содержать ровно один элемент Reference . |
Элемент Url | Необязательный элемент. Содержит URL-адрес, по которому доступны дополнительные сведения о сборке, на которую создается ссылка. В элементе Reference может быть ноль или один Url элемент. |
Родительский элемент | Description |
---|---|
Элемент References | Группирующий элемент для элементов Reference . |
Элемент References
Группирует отдельные элементы Reference
.
<References>
<Reference>... </Reference>
</References>
Дочерний элемент | Description |
---|---|
Элемент Reference | Необязательный элемент. Содержит сведения о ссылках на сборки для фрагмента кода. Элемент Reference может содержать любое число элементов References , включая ноль. |
Родительский элемент | Description |
---|---|
Элемент Snippet | Содержит ссылки, операции импорта, объявления и код для фрагмента кода. |
Элемент Shortcut
Задает краткий текст, используемый для вставки фрагмента кода. Текстовое значение Shortcut
элемента может содержать только буквенно-цифровые символы и символы подчеркивания (_
).
Примечание.
Символ подчеркивания (_
) не поддерживается в сочетаниях клавиш фрагмента кода C++.
<Shortcut>
Shortcut Text
</Shortcut>
Родительский элемент | Description |
---|---|
Элемент Header | Содержит общие сведения о фрагменте кода. |
Текстовое значение является необязательным. Данный текст используется как сокращенное имя для вставки фрагмента кода.
Элемент Snippet
Задает ссылки, импортируемые элементы, объявления и код для фрагмента кода.
<Snippet>
<References>... </References>
<Imports>... </Imports>
<Declarations>... </Declarations>
<Code>... </Code>
</Snippet>
Дочерний элемент | Description |
---|---|
Элемент Code | Обязательный элемент. Задает код, который требуется вставить в файл документации. Элемент Code должен содержать ровно один элемент Snippet . |
Элемент Declarations | Необязательный элемент. Задает литералы и объекты, которые составляют части фрагмента кода, доступные для изменения. В элементе Snippet может быть ноль или один Declarations элемент. |
Элемент Imports | Необязательный элемент. Группирует отдельные элементы Import . В элементе Snippet может быть ноль или один Imports элемент. |
Элемент References | Необязательный элемент. Группирует отдельные элементы Reference . В элементе Snippet может быть ноль или один References элемент. |
Родительский элемент | Description |
---|---|
Элемент CodeSnippet | Позволяет указать заголовок и несколько фрагментов кода, которые можно вставить в файлы Visual Studio Code. |
SnippetType, элемент
Указывает, как Visual Studio добавляет фрагмент кода.
<SnippetType>
SurroundsWith/Expansion
</SnippetType>
Родительский элемент | Description |
---|---|
Элемент SnippetTypes | Группирует элементы SnippetType . |
Значение должно быть одним из следующих значений:
значение | Описание |
---|---|
Expansion |
Позволяет вставлять фрагмент кода на курсор. |
Refactoring |
Указывает, что фрагмент кода используется во время рефакторинга C#. Refactoring нельзя использовать в фрагментах пользовательского кода. |
SurroundsWith |
Позволяет фрагменту кода размещаться вокруг выбранного фрагмента кода. |
Элемент SnippetTypes
Группирует отдельные элементы SnippetType
. SnippetTypes
Если элемент отсутствует, фрагмент кода можно вставить на курсор или поместить вокруг выбранного кода.
<SnippetTypes>
<SnippetType>... </SnippetType>
<SnippetType>... </SnippetType>
</SnippetTypes>
Дочерний элемент | Description |
---|---|
Элемент SnippetType | Необязательный элемент. Задает способ вставки фрагмента кода в Visual Studio. Элемент SnippetType может содержать любое число элементов SnippetTypes , включая ноль. |
Родительский элемент | Description |
---|---|
Элемент Header | Задает общие сведения о фрагменте кода. |
Элемент Title
Задает заголовок фрагмента кода. Заголовок, хранящийся в элементе фрагмента кода, отображается в Title
средстве выбора фрагмента кода и в качестве имени фрагмента кода в диспетчере фрагментов кода.
<Title>
Code Snippet Title
</Title>
Родительский элемент | Description |
---|---|
Элемент Header | Задает общие сведения о фрагменте кода. |
Текстовое значение является обязательным. Данный текст задает заголовок фрагмента кода.
Элемент ToolTip
Описывает ожидаемое значение и использование литерала или объекта в фрагменте кода. Visual Studio отображает эти сведения в подсказке при вставке фрагмента кода в проект. Подсказка также отображается при наведении указателя мыши на литерал или объект после вставки фрагмента кода.
<ToolTip>
ToolTip description
</ToolTip>
Родительский элемент | Description |
---|---|
Элемент Literal | Определяет доступные для редактирования поля литералов фрагмента кода. |
Элемент Object | Определяет доступные для редактирования поля объектов фрагмента кода. |
Текстовое значение является обязательным. Данный текст определяет описание элемента ToolTip, которое будет относиться к объекту или литералу во фрагменте кода.
Элемент Type
Указывает тип объекта . Элемент Object
определяет элемент, который требует фрагмент кода, но, вероятно, определен вне самого фрагмента кода. Например, элементы управления Windows Forms, элементы управления ASP.NET, экземпляры объектов и экземпляры типов должны быть объявлены как объекты. Объявления объектов требуют указания типа, который выполняется с элементом Type
.
<Type>
Type
</Type>
Родительский элемент | Description |
---|---|
Элемент Object | Определяет доступные для редактирования поля объектов фрагмента кода. |
Текстовое значение является обязательным. Данный текст задает тип объекта. Например:
<Type>System.Data.SqlClient.SqlConnection</Type>
Элемент Url
Задает URL-адрес, предоставляющий дополнительные сведения о сборке, на которую создается ссылка.
Примечание.
Элемент Url
поддерживается только для проектов Visual Basic.
<Url>
www.microsoft.com
</Url>
Родительский элемент | Description |
---|---|
Элемент Reference | Задает ссылки на сборки, требуемые фрагментом кода. |
Текстовое значение является обязательным. Данный текст задает URL-адрес, по которому доступны дополнительные сведениями о сборке, на которую создается ссылка. Этот URL-адрес отображается, когда ссылка не может быть добавлена в проект.