Criando atalhos de teclado (Code Snippets) no Visual Studio

Você conhece os snippets do Visual Studio? São pequenos trechos de código ativados por palavras-chave: você escreve a palavra chave tecla tab duas vezes e o VS substitui a palavra pelo trecho configurado no snippet. Experimente com o texto prop.

Para um projeto em que trabalhei criei um snippet para complementar os o block comments de funções, já que não temos a opção de editar os comments default, então queria compartilhar com vocês aqui essa gambi ideia.

Os campos extras que eu precisava eram autor e data, então criei um snippet pra facilitar minha vida.

Um snippet para chamar de seu

Para fazer o seu snippet, utilize o bloco de notas e cole o template do XML básico de um snippet. Salve com o nome que você quiser utilizando a extensão .snippet. Segue abaixo o modelo de um snippet.

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/CodeSnippet">
    <CodeSnippet>        


<Header>
            <!-- Informações de cabeçalho -->
        </Header>



        <Snippet>
            <!-- Informações adicionais do snippet -->
            <Declarations>
                <Literal>
                    <ID>Variavel</ID>
                    <ToolTip>Dica da chave</ToolTip>
                    <Default>Valor padrão</Default>
                </Literal>
            </Declarations>
            <Code Language="CSharp">
                <![CDATA[ Conteúdo com $Variavel$; ]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

No cabeçalho você deve colocar as informações básicas do snippet desde a criação, o autor, o que ele faz e qual a palavra chave. No meu causo ficou assim:

<Title>Template de comentários</Title>
<Description>Cria um template customizado de comentários para adicionar tags</Description>
<Author>Diego Ritzel</Author>
<Shortcut>mais</Shortcut>
<SnippetTypes>
      <SnippetType>Expansion</SnippetType>
</SnippetTypes>

Então quando eu digitar mais e teclar tab duas vezes ele vai jogar todo o conteúdo do Content Data do xml no lugar da palavra no meu código.

O conteúdo do meu snippet, inicialmente, ficou mais ou menos assim:

        <Snippet>
            <Code Language="csharp">
                <![CDATA[/// <author>
        ///      Diego
        /// </author>
        /// <date>
        ///      00/07/2017
        /// </date>]]>
            </Code>
    </Snippet>

Mas como eu deveria alterar a data conforme o momento que eu estivesse criando e queria compartilhar com os colegas, adicionei dois nós de literal com os respectivos valores default. Dessa forma ao adicionar o snippet no meu código eu posso circular entre os dois valores com o tab.

            <Declarations>  
                <Literal>  
                    <ID>nome</ID>   
                    <Default>Diego</Default>   
                </Literal>  
                <Literal>  
                    <ID>data</ID>   
                    <Default>00/08/2017</Default>   
                </Literal> 
            </Declarations>

No conteúdo as variáveis são chamadas com o $ entre elas. Então alterei para ficar assim:

<Code Language="csharp">
<![CDATA[/// <author>
///      $nome$
/// </author>
/// <date>
///      $data$
/// </date>]]>
</Code>

No final, dos ajustes, meu snippet ficou assim:

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">

    <CodeSnippet Format="1.0.0">
        

<Header>
                <Title>Template de comentários</Title>
                <Description>Cria um template customizado de comentários para adicionar tags</Description>
                <Author>Diego Ritzel</Author>
                <Shortcut>mais</Shortcut>
                <SnippetTypes>
                        <SnippetType>Expansion</SnippetType>
                </SnippetTypes>
        </Header>


        <Snippet>
            <Declarations>  
                <Literal>  
                    <ID>nome</ID>   
                    <Default>Diego</Default>   
                </Literal>  
                <Literal>  
                    <ID>data</ID>   
                    <Default>00/08/2017</Default>   
                </Literal> 
            </Declarations>
            <Code Language="csharp">
                <![CDATA[/// <author>
        ///      $nome$
        /// </author>
        /// <date>
        ///      $data$
        /// </date>]]>
            </Code>
    </Snippet>
  </CodeSnippet>

</CodeSnippets>

Você usar snippets para longos trechos de código, padrões de código e até usar objetos do seu projeto.

Adicionando ao Visual Studio

Abre o Visual Studio e acesse o menu Ferramentas, item Gerenciador de Snippets. Clique em adicionar e selecione aonde está o seu arquivo e, por fim, marque a categoria desejada.

snippets

Janela de gerenciamento de snippets

Não precisa reiniciar o Visual Studio: você já pode utilizar o seu snippet imediatamente após fechar a janela.

Veja no gist Snippet para mais informações nos comentários

Fonte: Code Snippets

Veja também: Code Snippet Functions