Compartilhar via


Passo a passo: criar um snippet de código no Visual Studio

Os snippets de código são partes de código pré-criadas que estão prontas para serem inseridas no seu aplicativo. Você pode aumentar a produtividade e confiabilidade usando snippets de código para reduzir o tempo gasto digitando código repetitivo ou procurando exemplos.

É possível criar seus próprios snippets de código e adicioná-los aos snippets de código que o Visual Studio já contém. Este artigo orienta você sobre como criar um snippet de código em apenas algumas etapas. Você cria um arquivo XML, preenche os elementos apropriados e adiciona seu código ao arquivo. Opcionalmente, você pode usar parâmetros de substituição e referências de projeto. Em seguida, importe o trecho para a instalação do Visual Studio.

Para criar um snippet de código

  1. Abra o Visual Studio e selecione Continuar sem código na tela Iniciar.

    Captura de tela da janela Iniciar com a opção

  2. Na barra de menus, selecione Arquivo>Novo Arquivo ou digite Ctrl+N.

  3. Na caixa de diálogo Novo Arquivo, selecione Arquivo XML e Abrir.

    Captura de tela da caixa de diálogo 'Novo Arquivo' com a opção 'Arquivo XML' selecionada.

  4. Cole o seguinte modelo básico de snippet a seguir no editor de código.

    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
        <CodeSnippet Format="1.0.0">
            <Header>
                <Title></Title>
            </Header>
            <Snippet>
                <Code Language="">
                    <![CDATA[]]>
                </Code>
            </Snippet>
        </CodeSnippet>
    </CodeSnippets>
    
  5. Insira o título Raiz Quadrada no elemento Title do snippet.

  6. No atributo Linguagem do elemento Code, preencha CSharp para um snippet C# ou VB para o Visual Basic.

    Dica

    Para conferir todos os valores de linguagem disponíveis, consulte Atributos na Referência de esquema de snippets de código.

  7. Adicione o seguinte snippet de código na seção CDATA dentro do elemento Code.

    Para o C#:

        <![CDATA[double root = Math.Sqrt(16);]]>
    

    Para o Visual Basic:

        <![CDATA[Dim root = Math.Sqrt(16)]]>
    

    Observação

    Não é possível especificar como formatar ou recuar as linhas de código na seção CDATA de um snippet de código. Após a inserção, o serviço de linguagem formata automaticamente o código inserido.

  8. Salve o snippet como SquareRoot.snippet em qualquer lugar.

Importar o snippet de código

  1. Para importar o snippet para sua instalação do Visual Studio, selecione Ferramentas>Gerenciador de Snippets de Código ou pressione Ctrl+K, B.

  2. No Gerenciador de Snippets de Código, selecione o botão Importar.

  3. Navegue até o local do snippet de código, selecione-o e selecione Abrir.

  4. Na caixa de diálogo Importar Snippet de Código, selecione a pasta Meus Snippets de Código no painel direito. Selecione Concluir e OK.

    O snippet é copiado para uma das seguintes localizações, dependendo da linguagem de código:

    %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual C#\My Code Snippets%USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual Basic\My Code Snippets

    %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets

  5. Teste o snippet abrindo um projeto C# ou Visual Basic. Com um arquivo de código aberto no editor, execute uma das seguintes ações:

    • Na barra de menus do Visual Studio, escolha Editar>IntelliSense>Inserir Snippet.
    • Clique com o botão direito do mouse e escolha Snippet>Inserir Snippet no menu de contexto.
    • Usando o teclado, pressione Ctrl+K, X.
  6. Abra Meus Snippets de Código e clique duas vezes no snippet chamado Raiz Quadrada. O snippet de código é inserido no arquivo de código.

Campos de descrição e de atalho

O campo de descrição fornece mais informações sobre o snippet de código quando exibido no Gerenciador de Snippets de Código. O atalho é uma marcação que você pode digitar para inserir seu snippet.

  1. Para editar o snippet, abra o arquivo de snippet de um dos seguintes locais, dependendo da linguagem do código:

    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual C#\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual Basic\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets/SquareRoot.snippet

    Dica

    Como você está editando o arquivo no diretório em que o Visual Studio o colocou, você não precisa importá-lo novamente para o Visual Studio.

  2. Adicione elementos Author, Description e Shortcut ao elemento Header e preencha-os.

  3. Confirme se o elemento Header é semelhante ao seguinte exemplo e salve o arquivo.

    <Header>
        <Title>Square Root</Title>
        <Author>Myself</Author>
        <Description>Calculates the square root of 16.</Description>
        <Shortcut>sqrt</Shortcut>
    </Header>
    
  4. Abra o Gerenciador de Snippets de Código do Visual Studio e selecione o snippet de código. No painel direito, observe que os campos Descrição, Autor e Atalho agora estão preenchidos.

    Descrição do snippet de código no Gerenciador de Snippets de Código

  5. Para testar o atalho, abra o projeto que você usou anteriormente, digite sqrt no editor e pressione Tab uma vez para o Visual Basic ou duas vezes para o C#. O snippet de código é inserido.

Parâmetros de substituição

Talvez seja interessante que o usuário substitua partes de um snippet de código. Por exemplo, o ideal é que o usuário substitua um nome de variável por um no projeto atual.

Você pode fornecer dois tipos de substituições: literais e objetos.

  • Use o elemento Literal para identificar um substituto para um código totalmente contido no snippet que pode ser personalizado depois de inserido no código. Por exemplo, uma cadeia de caracteres ou valor numérico.

  • Use o elemento Objeto para identificar um item que o snippet de código exige, mas que provavelmente é definido fora do snippet. Por exemplo, uma instância de objeto ou um controle.

Você pode usar um elemento Literal no arquivo SquareRoot.snippet para ajudar os usuários a alterar facilmente o número cuja raiz quadrada será calculada.

  1. No arquivo SquareRoot.snippet modifique o elemento Snippet da seguinte maneira:

    <Snippet>
      <Code Language="CSharp">
        <![CDATA[double root = Math.Sqrt($Number$);]]>
      </Code>
      <Declarations>
        <Literal>
          <ID>Number</ID>
          <ToolTip>Enter the number you want the square root of.</ToolTip>
          <Default>16</Default>
        </Literal>
      </Declarations>
    </Snippet>
    

    Observe que a substituição de literal recebe uma ID, Number. Você faz referência a essa ID no snippet de código colocando-a entre os caracteres $ da seguinte maneira:

    <![CDATA[double root = Math.Sqrt($Number$);]]>
    
  2. Salve o arquivo de snippet.

  3. Abra um projeto e insira o snippet.

    O snippet de código é inserido e o literal editável é realçado para substituição. Focalize o parâmetro de substituição para ver a dica de ferramenta para o valor.

    Dica de ferramenta do parâmetro de substituição de snippet de código no Visual Studio

    Dica

    Se houver mais de um parâmetro substituível em um snippet, pressione Tab para ir de um parâmetro para o outro e alterar os valores.

Importar um namespace

Você pode usar um snippet de código para adicionar uma diretiva using (C#) ou uma instrução Imports (Visual Basic) incluindo o elemento Imports. Para projetos .NET Framework, você também pode adicionar uma referência ao projeto usando o elemento References.

O XML a seguir mostra um snippet de código que usa o método File.Exists no namespace System.IO e, portanto, define o elemento Imports para importar o namespace System.IO.

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>File Exists</Title>
      <Shortcut>exists</Shortcut>
    </Header>
    <Snippet>
      <Code Language="CSharp">
        <![CDATA[var exists = File.Exists("C:\\Temp\\Notes.txt");]]>
      </Code>
      <Imports>
        <Import>
          <Namespace>System.IO</Namespace>
        </Import>
      </Imports>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>