Referência de esquema dos snippets de código

Trechos de código são partes de código pré-criadas que estão prontas para inserir em seu aplicativo. Você pode aumentar a produtividade e a confiabilidade usando trechos de código para reduzir o tempo gasto digitando código repetitivo ou procurando amostras.

Este artigo fornece uma referência ao esquema XML de trechos de código IntelliSense do Visual Studio. Você pode usar o esquema para criar seus próprios trechos de código e adicioná-los aos trechos de código que o Visual Studio já inclui.

Elemento Assembly

Especifica o nome do assembly referenciado pelo snippet de código.

O valor de texto do elemento Assembly é o nome de texto amigável do assembly, como System.dll, ou seu nome forte, como System,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa323c18d4fb1.

<Assembly>
    AssemblyName
</Assembly>
Elemento pai Descrição
Elemento Reference Contém informações sobre referências de assembly exigidas pelo snippet de código.

Um valor de texto é obrigatório. Esse texto especifica o assembly ao qual o snippet de código faz referência.

Elemento Author

Especifica o nome do autor do snippet. O Gerenciador de Snippets de Código exibe o nome armazenado no elemento Author do snippet de código.

<Author>
   Code Snippet Author
</Author>
Elemento pai Descrição
Elemento Header Contém informações gerais sobre o snippet de código.

Um valor de texto é obrigatório. Esse texto especifica o autor do snippet de código.

Elemento de código

Fornece um contêiner para blocos de códigos curtos.

Palavras-chave

Duas palavras reservadas estão disponíveis para uso no texto do elemento Code: $end$ e $selected$. $end$ marca o local para colocar o cursor depois que o snippet de código é inserido. $selected$ Representa o texto do documento selecionado a ser inserido no trecho quando o trecho é chamado. Por exemplo, dado um snippet que inclui:

$selected$ is a great color.

Se a palavra Blue for selecionada quando o usuário invocar o trecho, o resultado será:

Blue is a great color.

Você não pode usar o $end$ ou $selected$ mais de uma vez em um snippet de código. Nesse caso, apenas a segunda instância é reconhecida. Dado um snippet que inclui:

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

Se a palavra Blue for selecionada, o resultado será:

 is a great color. I love Blue.

O espaço inicial aparece porque há um espaço entre $selected$ e is.

Todas as outras palavras-chave $ são dinamicamente definidas nas marcas <Literal> e <Object>.

O código a seguir mostra a estrutura do Code elemento:

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

Um valor de texto é obrigatório. Esse texto especifica o código, juntamente como os literais e objetos, que você pode usar quando esse snippet de código é inserido em um arquivo de código.

Atributos

Há três atributos disponíveis para o Code elemento:

  • Idioma. Atributo obrigatório que especifica o idioma do trecho de código. O valor deve ser um dos seguintes valores:

    Valor Descrição
    VB Trecho de código do Visual Basic.
    CSharp Trecho de código C#.
    CPP Trecho de código C++.
    XAML Trecho de código XAML.
    XML Trecho de código XML.
    JavaScript Trecho de código JavaScript.
    TypeScript Trecho de código TypeScript.
    SQL Trecho de código SQL.
    HTML Trecho de código HTML.
  • Kind. Atributo opcional que especifica o tipo de código que o trecho contém. O valor deve ser um dos seguintes valores:

    Valor Descrição
    method body O trecho é um corpo de método e, portanto, deve ser inserido dentro de uma declaração de método.
    method decl O snippet é um método e, portanto, deve ser inserido dentro de uma classe ou módulo.
    type decl O snippet é um tipo e, portanto, deve ser inserido dentro de uma classe, módulo ou namespace.
    file O snippet é um arquivo de código completo e pode ser inserido sozinho em um arquivo de código ou dentro de um namespace.
    any O trecho pode ser inserido em qualquer lugar. Essa marca é usada para snippets de código que não dependem de contexto, como os comentários.
  • Delimitador. Atributo opcional que especifica o delimitador usado para descrever literais e objetos no código. Por padrão, o delimitador é $.

Elemento pai

Elemento pai Descrição
Elemento Snippet Contém as referências, as importações, as declarações e o código do snippet de código.

Elemento CodeSnippet

Permite que você especifique um título e vários snippets de código, que podem ser inseridos em arquivos do Visual Studio Code.

<CodeSnippet Format="x.x.x">
    <Header>... </Header>
    <Snippet>... </Snippet>
</CodeSnippet>
Atributo Descrição
Formato Atributo obrigatório . Especifica a versão do esquema do snippet de código. O atributo Format deve ser uma cadeia de caracteres na sintaxe de x.x.x, onde cada um x representa um valor numérico do número da versão. O Visual Studio ignora trechos de código com atributos Format que ele não entende.
Elemento filho Descrição
Elemento Header Elemento necessário . Contém informações gerais sobre o snippet de código. Deve haver exatamente um elemento Header em um snippet de código.
Elemento Snippet Elemento necessário . Contém o código a ser inserido pelo Visual Studio. Deve haver exatamente um elemento Snippet em um snippet de código.
Elemento pai Descrição
Elemento CodeSnippets Elemento raiz do esquema XML do snippet de código.

Elemento CodeSnippets

Agrupa elementos CodeSnippet. O elemento CodeSnippets é o elemento raiz do esquema XML do snippet de código.

<CodeSnippets>
    <CodeSnippet>... </CodeSnippet>
</CodeSnippets>
Elemento filho Descrição
Elemento CodeSnippet Elemento opcional. Elemento pai de todos os dados do snippet de código. Pode ser que não haja nenhum ou mais de um elemento CodeSnippet em um elemento CodeSnippets.

Elemento Declarations

Especifica os literais e os objetos que compõem as partes de um snippet de código que você pode editar.

<Declarations>
    <Literal>... </Literal>
    <Object>... </Object>
</Declarations>
Elemento filho Descrição
Elemento Literal Elemento opcional. Define os literais do snippet de código que você pode editar. Pode ser que não haja nenhum ou mais de um elemento Literal em um elemento Declarations.
Elemento Object Elemento opcional. Define os objetos do snippet de código que você pode editar. Pode ser que não haja nenhum ou mais de um elemento Object em um elemento Declarations.
Elemento pai Descrição
Elemento Snippet Contém as referências, as importações, as declarações e o código do snippet de código.

Elemento Default

Especifica o valor padrão do literal ou objeto para um trecho de código.

<Default>
    Default value
</Default>
Elemento pai Descrição
Elemento Literal Define os campos de literal do snippet de código que você pode editar.
Elemento Object Define os campos de objeto do snippet de código que você pode editar.

Um valor de texto é obrigatório. Esse texto especifica o valor padrão do literal ou do objeto que preenche os campos do snippet de código que você pode editar.

Elemento Description

Especifica informações descritivas sobre o conteúdo de um trecho de código.

<Description>
    Code Snippet Description
</Description>
Elemento pai Descrição
Elemento Header Contém informações gerais sobre o snippet de código.

Um valor de texto é obrigatório. Esse texto descreve o snippet de código.

Elemento Function

Especifica uma função a ser executada quando o literal ou o objeto receber foco no Visual Studio.

Observação

Nem todas as linguagens dão suporte a elementos Function. Consulte a documentação específica da linguagem para saber quais funções estão disponíveis.

<Function>
    FunctionName
</Function>
Elemento pai Descrição
Elemento Literal Define os campos de literal do snippet de código que você pode editar.
Elemento Object Define os campos de objeto do snippet de código que você pode editar.

Um valor de texto é obrigatório. Esse texto especifica uma função a ser executada quando o campo de literal ou objeto recebe foco no Visual Studio.

Elemento Header

Especifica informações gerais sobre o snippet de código.

<Header>
    <Title>... </Title>
    <Author>... </Author>
    <Description>... </Description>
    <HelpUrl>... </HelpUrl>
    <SnippetTypes>... </SnippetTypes>
    <Keywords>... </Keywords>
    <Shortcut>... </Shortcut>
</Header>
Elemento filho Descrição
Elemento Author Elemento opcional. O nome da pessoa ou da empresa que criou o snippet de código. Pode haver zero ou um Author elemento em um Header elemento.
Elemento Description Elemento opcional. Uma descrição do snippet de código. Pode haver zero ou um Description elemento em um Header elemento.
Elemento HelpUrl Elemento opcional. Uma URL que contém mais informações sobre o snippet de código. Pode haver zero ou um HelpURL elemento em um Header elemento.
Elemento Keywords Elemento opcional. Agrupa elementos Keyword. Pode haver zero ou um Keywords elemento em um Header elemento.
Elemento Shortcut Elemento opcional. Especifica o texto de atalho que pode ser usado para inserir o snippet. Pode haver zero ou um Shortcut elemento em um Header elemento.
Elemento SnippetTypes Elemento opcional. Agrupa elementos SnippetType. Pode haver zero ou um SnippetTypes elemento em um Header elemento. Se não houver nenhum elemento SnippetTypes, o snippet de código sempre será válido.
Elemento Title Elemento necessário . O nome amigável do snippet de código. Deve haver exatamente um elemento Title em um elemento Header.
Elemento pai Descrição
Elemento CodeSnippet Elemento pai de todos os dados do snippet de código.

Elemento HelpUrl

Especifica uma URL que fornece mais informações sobre um snippet de código.

Observação

Visual Studio não usa o HelpUrl elemento . O elemento faz parte do esquema XML do trecho de código do IntelliSense e os trechos de código que contêm o elemento são validados, mas o valor do elemento nunca é usado.

<HelpUrl>
    www.microsoft.com
</HelpUrl>
Elemento pai Descrição
Elemento Header Contém informações gerais sobre o snippet de código.

Um valor de texto é opcional. Esse texto especifica a URL a ser visitada para obter mais informações sobre um snippet de código.

Elemento ID

Especifica um identificador exclusivo para um elemento Literal ou Object. Dois literais ou objetos no mesmo snippet de código não podem ter o mesmo valor de texto em seus elementos ID. Literais e objetos não podem conter um ID elemento com um valor de end. O valor $end$ é reservado e usado para marcar o local onde colocar o cursor depois que o snippet de código é inserido.

<ID>
    Unique Identifier
</ID>
Elemento pai Descrição
Elemento Literal Define os campos de literal do snippet de código que você pode editar.
Elemento Object Define os campos de objeto do snippet de código que você pode editar.

Um valor de texto é obrigatório. Esse texto especifica o identificador exclusivo do objeto ou literal.

Elemento Import

Especifica os namespaces importados usados por um trecho de código.

<Import>
    <Namespace>... </Namespace>
</Import>
Elemento filho Descrição
Elemento Namespace Elemento necessário . Especifica o namespace usado pelo snippet de código. Deve haver exatamente um elemento Namespace em um elemento Import.
Elemento pai Descrição
Elemento Imports Elemento de agrupamento de elementos Import.

Elemento Imports

Agrupa elementos Import individuais.

<Imports>
    <Import>... </Import>
</Imports>
Elemento filho Descrição
Elemento Import Elemento opcional. Contém os namespaces importados para o snippet de código. Pode ser que não haja nenhum ou mais de um elemento Import em um elemento Imports.
Elemento pai Descrição
Elemento Snippet Contém as referências, as importações, as declarações e o código do snippet de código.

Elemento Keyword

Especifica uma palavra-chave personalizada para o snippet de código. As palavras-chave de snippet de código são usadas pelo Visual Studio e representam uma maneira padronizada de os provedores de conteúdo online adicionarem palavras-chave personalizadas para pesquisa ou categorização.

<Keyword>
    Code Snippet Keyword
</Keyword>
Elemento pai Descrição
Elemento Keywords Agrupa elementos Keyword individuais.

Um valor de texto é obrigatório. A palavra-chave para o snippet de código.

Elemento Keywords

Agrupa elementos Keyword individuais. As palavras-chave de snippet de código são usadas pelo Visual Studio e representam uma maneira padronizada de os provedores de conteúdo online adicionarem palavras-chave personalizadas para pesquisa ou categorização.

<Keywords>
    <Keyword>... </Keyword>
    <Keyword>... </Keyword>
</Keywords>
Elemento filho Descrição
Elemento Keyword Elemento opcional. Contém palavras-chave individuais para o snippet de código. Pode ser que não haja nenhum ou mais de um elemento Keyword em um elemento Keywords.
Elemento pai Descrição
Elemento Header Contém informações gerais sobre o snippet de código.

Elemento Literal

Define os literais do snippet de código que você pode editar. O Literal elemento identifica uma substituição para uma parte do código inteiramente contida no snippet que pode ser personalizada depois que o trecho é inserido. Por exemplo, cadeias de caracteres literais, valores numéricos e alguns nomes de variáveis devem ser declarados como literais.

Literais e objetos não podem conter um ID elemento com um valor de selected ou end. O valor $selected$ representa o texto do documento selecionado a ser inserido no snippet quando o trecho é chamado. $end$ marca o local para colocar o cursor depois que o snippet de código é inserido.

<Literal Editable="true/false">
   <ID>... </ID>
   <ToolTip>... </ToolTip>
   <Default>... </Default>
   <Function>... </Function>
</Literal>
Atributo Descrição
Editáveis Atributo Boolean opcional. Especifica se você pode editar ou não o literal depois de inserido o snippet de código. O valor padrão desse atributo é true.
Elemento filho Descrição
Elemento Default Elemento necessário . Especifica o valor padrão do literal quando você insere o snippet de código. Deve haver exatamente um elemento Default em um elemento Literal.
Elemento Function Elemento opcional. Especifica uma função a ser executada quando o literal recebe foco no Visual Studio. Pode haver zero ou um Function elemento em um Literal elemento.
Elemento ID Elemento necessário . Especifica um identificador exclusivo para o literal. Deve haver exatamente um elemento ID em um elemento Literal.
Elemento ToolTip Elemento opcional. Descreve o valor esperado e o uso do literal. Pode haver zero ou um ToolTip elemento em um Literal elemento.
Elemento pai Descrição
Elemento Declarations Contém os literais e objetos de um snippet de código que você pode editar.

Elemento Namespace

Especifica o namespace que deve ser importado para compilação e execução do snippet de código. O namespace especificado no elemento Namespace é adicionado automaticamente a uma diretiva using ou instrução Imports no início do código, se ainda não existir.

<Namespace>
    Namespace
</Namespace>
Elemento pai Descrição
Elemento Import Importa o namespace especificado.

Um valor de texto é obrigatório. Esse texto especifica um namespace que o snippet de código supõe que seja importado.

Elemento Object

Define os objetos do snippet de código que você pode editar. O Object elemento identifica um item exigido pelo trecho de código definido fora do próprio trecho. Por exemplo, os controles do Windows Forms, os controles do ASP.NET, as instâncias do objeto e as instâncias do tipo devem ser declarados como objetos. As declarações de objeto exigem que um tipo seja especificado, o que é feito com o Type elemento .

<Object Editable="true/false">
    <ID>... </ID>
    <Type>... </Type>
    <ToolTip>... </ToolTip>
    <Default>... </Default>
    <Function>... </Function>
</Object>
Atributo Descrição
Editáveis Atributo Boolean opcional. Especifica se você pode editar ou não o literal depois de inserido o snippet de código. O valor padrão desse atributo é true.
Elemento filho Descrição
Elemento Default Elemento necessário . Especifica o valor padrão do literal quando você insere o snippet de código. Deve haver exatamente um elemento Default em um elemento Literal.
Elemento Function Elemento opcional. Especifica uma função a ser executada quando o literal recebe foco no Visual Studio. Pode haver zero ou um Function elemento em um Literal elemento.
Elemento ID Elemento necessário . Especifica um identificador exclusivo para o literal. Deve haver exatamente um elemento ID em um elemento Literal.
Elemento ToolTip Elemento opcional. Descreve o valor esperado e o uso do literal. Pode haver zero ou um ToolTip elemento em um Literal elemento.
Elemento Type Elemento necessário . Especifica o tipo do objeto. Deve haver exatamente um elemento Type em um elemento Object.
Elemento pai Descrição
Elemento Declarations Contém os literais e objetos de um snippet de código que você pode editar.

Elemento Reference

Especifica informações sobre as referências de assembly exigidas pelo snippet de código.

<Reference>
    <Assembly>... </Assembly>
    <Url>... </Url>
</Reference>
Elemento filho Descrição
Elemento Assembly Elemento necessário . Contém o nome do assembly referenciado pelo snippet de código. Deve haver exatamente um elemento Assembly em um elemento Reference.
Elemento Url Elemento opcional. Contém uma URL que fornece mais informações sobre o assembly referenciado. Pode haver zero ou um Url elemento em um Reference elemento.
Elemento pai Descrição
Elemento References Elemento de agrupamento de elementos Reference.

Elemento References

Agrupa elementos Reference individuais.

<References>
    <Reference>... </Reference>
</References>
Elemento filho Descrição
Elemento Reference Elemento opcional. Contém informações sobre referências de assembly para o snippet de código. Pode ser que não haja nenhum ou mais de um elemento Reference em um elemento References.
Elemento pai Descrição
Elemento Snippet Contém as referências, as importações, as declarações e o código do snippet de código.

Elemento Shortcut

Especifica o texto do atalho usado para inserir o snippet. O valor de texto de um Shortcut elemento só pode conter caracteres alfanuméricos e sublinhados (_).

Observação

O caractere de sublinhado (_) não é suportado em atalhos de trechos de C++.

<Shortcut>
    Shortcut Text
</Shortcut>
Elemento pai Descrição
Elemento Header Contém informações gerais sobre o snippet de código.

Um valor de texto é opcional. Esse texto é usado como um atalho para inserção do snippet de código.

Elemento Snippet

Especifica as referências, as importações, as declarações e o código do snippet de código.

<Snippet>
    <References>... </References>
    <Imports>... </Imports>
    <Declarations>... </Declarations>
    <Code>... </Code>
</Snippet>
Elemento filho Descrição
Elemento Code Elemento necessário . Especifica o código que você deseja inserir em um arquivo de documentação. Deve haver exatamente um elemento Code em um elemento Snippet.
Elemento Declarations Elemento opcional. Especifica os literais e os objetos que compõem as partes de um snippet de código que você pode editar. Pode haver zero ou um Declarations elemento em um Snippet elemento.
Elemento Imports Elemento opcional. Agrupa elementos Import individuais. Pode haver zero ou um Imports elemento em um Snippet elemento.
Elemento References Elemento opcional. Agrupa elementos Reference individuais. Pode haver zero ou um References elemento em um Snippet elemento.
Elemento pai Descrição
Elemento CodeSnippet Permite que você especifique um título e vários snippets de código, que podem ser inseridos em arquivos do Visual Studio Code.

Elemento SnippetType

Especifica como o Visual Studio adiciona o trecho de código.

<SnippetType>
    SurroundsWith/Expansion
</SnippetType>
Elemento pai Descrição
Elemento SnippetTypes Agrupa elementos SnippetType.

O valor deve ser um dos seguintes valores:

Valor Descrição
Expansion Permite que o trecho de código seja inserido no cursor.
Refactoring Especifica que o trecho de código é usado durante a refatoração do C#. Refactoring não pode ser usado em trechos de código personalizados.
SurroundsWith Permite que o trecho de código seja colocado ao redor de uma parte selecionada do código.

Elemento SnippetTypes

Agrupa elementos SnippetType individuais. Se o SnippetTypes elemento não estiver presente, o trecho de código poderá ser inserido no cursor ou colocado ao redor do código selecionado.

<SnippetTypes>
    <SnippetType>... </SnippetType>
    <SnippetType>... </SnippetType>
</SnippetTypes>
Elemento filho Descrição
Elemento SnippetType Elemento opcional. Especifica como o Visual Studio insere o snippet de código no código. Pode ser que não haja nenhum ou mais de um elemento SnippetType em um elemento SnippetTypes.
Elemento pai Descrição
Elemento Header Especifica informações gerais sobre o snippet de código.

Elemento Title

Especifica o título do snippet de código. O título armazenado no Title elemento do trecho de código aparece no seletor de trechos de código e como o nome do trecho de código no Gerenciador de trechos de código.

<Title>
    Code Snippet Title
</Title>
Elemento pai Descrição
Elemento Header Especifica informações gerais sobre o snippet de código.

Um valor de texto é obrigatório. Esse texto especifica o título do snippet de código.

Elemento ToolTip

Descreve o valor esperado e o uso de um literal ou objeto em um trecho de código. Visual Studio exibe essas informações em uma dica de ferramenta quando ele insere o trecho de código em um projeto. A dica de ferramenta também é exibida quando o mouse passa o mouse sobre o literal ou objeto depois que o trecho de código é inserido.

<ToolTip>
    ToolTip description
</ToolTip>
Elemento pai Descrição
Elemento Literal Define os campos de literal do snippet de código que você pode editar.
Elemento Object Define os campos de objeto do snippet de código que você pode editar.

Um valor de texto é obrigatório. Esse texto especifica a descrição da Dica de Ferramenta a ser associada ao objeto ou literal no snippet de código.

Elemento Type

Especifica o tipo do objeto. O Object elemento identifica um item que o trecho de código exige, mas provavelmente é definido fora do próprio trecho. Por exemplo, os controles do Windows Forms, os controles do ASP.NET, as instâncias do objeto e as instâncias do tipo devem ser declarados como objetos. As declarações de objeto exigem que um tipo seja especificado, o que é feito com o Type elemento .

<Type>
    Type
</Type>
Elemento pai Descrição
Elemento Object Define os campos de objeto do snippet de código que você pode editar.

Um valor de texto é obrigatório. Esse texto especifica o tipo do objeto. Por exemplo:

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

Elemento Url

Especifica uma URL que fornece mais informações sobre o assembly referenciado.

Observação

O Url elemento é suportado apenas para projetos do Visual Basic.

<Url>
    www.microsoft.com
</Url>
Elemento pai Descrição
Elemento Reference Especifica as referências de assembly exigidas pelo snippet de código.

Um valor de texto é obrigatório. Esse texto especifica uma URL com mais informações sobre o assembly referenciado. Essa URL é exibida quando a referência não pode ser adicionada ao projeto.