segunda-feira, 22 de abril de 2013

Snippet

Snippet ou Fragmento de Código é a forma de invocar códigos pré-estabelecidos pelo desenvolvedor em qualquer parte do sistema.

O Visual Studio já vem com diversos snippet  e um bom exemplo de um snippet que já existe no Visual Studio é o for.

Qualquer palavra que se digita no Visual Studio ele te mostra as possibilidades, algumas delas contém uma descrição dizendo que pode se invocar um snippet. Como no exemplo abaixo: 


É só pressionar duas vezes a tecla TAB que o snippet será invocado. O resultado é o seguinte:

No exemplo acima o Visual Studio adicionou a estrutura do for ao código.
O mesmo acontece com outras palavras, como  foreach, if, switch, etc.

Você pode criar o seu próprio snippet. O Snippet é um arquivo Xml e tem a seguinte estrutura:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
       <CodeSnippet Format="1.0.0">
             <Header>
                    <Title>Exemplo snippet</Title>
                    <Shortcut>exemplo</Shortcut>
                    <Description>Esse código adiciona for, if, while e foreach</Description>
                    <Author>Celso Zequim</Author>
                    <SnippetTypes>
                           <SnippetType>Expansion</SnippetType>
                           <SnippetType>SurroundsWith</SnippetType>
                    </SnippetTypes>
             </Header>
             <Snippet>
              <Declarations>
                     <Literal>
                           <ID>indice</ID>
                           <Default>i</Default>
                           <ToolTip>Indice</ToolTip>
                    </Literal>
                    <Literal>
                           <ID>maximo</ID>
                           <Default>Max</Default>
                            <ToolTip>Máximo Permitido</ToolTip>
                     </Literal>
        <Literal>
        <ID>valor</ID>
                            <Default>valor</Default>
        <ToolTip>Valor para comparação</ToolTip>
        </Literal>
        <Literal>
          <ID>Condicao</ID>
          <Default>condicao</Default>
          <ToolTip>Valor do switch</ToolTip>
        </Literal>
             </Declarations>
             <Code Language="csharp">
        <![CDATA[for (int $indice$ = 0; $indice$ < $maximo$; $indice$++)
                    {
                    $selected$ $end$
                    }
     
      if($valor$ == "")
                    {
                   
                    }
     
        switch ($Condicao$)
            {
                default:
            }
      ]]>
                    </Code>
             </Snippet>
       </CodeSnippet>
</CodeSnippets>

  • Header – Representa as informações exibidas no memento que se posicionar sobre a palavra de atalho,
  • Declarations – Local onde as variáveis que serão utilizadas no código deverão ser declaradas.
  • Code – Qual é o código que será impresso no momento em que o desenvolvedor invocar o snippet.

Repare que existe um código dentro do for, “$selected$ $end$”, esse código indica ao Visual Studio o local que o cursor deverá ficar assim que o desenvolvedor terminar de preencher as variáveis solicitadas.

Salve esse arquivo com a extensão “snippet”, no meu caso eu estou salvando como “exemplo.snippet”.  vá até o menu Tools e clique na opção “Code Snippets Manager”.

A seguinte janela será exibida:

Clique no botão Import e localize o arquivo que deseja importar. No meu caso é o “exemplo.snippet”.
Feito isso é só digitar em algum trecho de código o comando que você colocou em “Shortcut”, no meu caso é a palavra “exemplo”

 Note que quando posicionar sobre a palavra do seu Snippet, o Visual Studio irá lhe exibir as informações que você inseriu no Header e ao pressionar duas vezes a tecla TAB, o resultado será a seguinte:

        static void Main(string[] args)
        {

            for (int i = 0; i < Max; i++)
            {
               
            }

            if (valor == "")
            {

            }

            switch (condicao)
            {
                default:
            }
     
     
        }



Você pode usar o Snippet para adicionar qualquer código de forma rápida.


Nenhum comentário:

Postar um comentário