Desenvolvimento - C#

Snippets: O que são? Como e quando utilizá-los?

Este artigo aborda uma breve explicação do que são Snippets e exemplos para sua criação.

por Leandro Liez



p.MsoNormal {margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; font-size:11.0pt; font-family:"Calibri","sans-serif"; } .style1 { font-weight: bold; } .style2 { font-size: 15pt; }

Snippets: O que são? Como e quando utilizá-los?

Snippets são blocos de códigos utilizados no Visual Studio para agilizar o desenvolvimento de código. Muitas vezes utilizamos Snippets sem saber. O que devemos saber é que podemos criá-los de um modo rápido e fácil.

Abaixo seguem dois Snippets que podem ser utilizados para agilizar o trabalho.

Snippet para criação de um switch-case: switch

Snippet para criação de uma Propriedade: prop

Esses são casos simples de utilização de um Snippet, que já está integrado com o Visual Studio.

A intenção desse artigo é mostrar que Snippets podem ser utilizados no dia a dia, fazendo com que o código fique padronizado e agilizando o processo de desenvolvimento.

Mas... E onde fica?

Na imagem abaixo, o caminho de onde o gerenciador de Snippets está.

Os principais Snippets estão na pasta Visual C#. O caminho depende da instalação do Visual Studio.

Abaixo segue um código de snippet pronto, integrado ao Visual Studio.

<?xml version="1.0" encoding="utf-8" ?>

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

<CodeSnippet Format="1.0.0">

<Header>

<Title>foreach</Title>

<Shortcut>foreach</Shortcut>

<Description>Code snippet for foreach statement</Description>

<Author>Microsoft Corporation</Author>

<SnippetTypes>

<SnippetType>Expansion</SnippetType>

<SnippetType>SurroundsWith</SnippetType>

</SnippetTypes>

</Header>

<Snippet>

<Declarations>

<Literal>

<ID>type</ID>

<ToolTip>Type of object in the collection to iterate through</ToolTip>

<Default>var</Default>

</Literal>

<Literal>

<ID>identifier</ID>

<ToolTip>Identifier that represents the element in the collection</ToolTip>

<Default>item</Default>

</Literal>

<Literal>

<ID>collection</ID>

<ToolTip>Name of collection or array to iterate through</ToolTip>

<Default>collection</Default>

</Literal>

</Declarations>

<Code Language="csharp"><![CDATA[foreach ($type$ $identifier$ in $collection$)

{

$selected$ $end$

}]]>

</Code>

</Snippet>

</CodeSnippet>

</CodeSnippets>

Explicação:

O Code Snippet é um XML, que configurado com o Visual Studio, pode trazer grandes vantagens ao desenvolvedor.

Desmembrando o XML, veremos que o código é simples e fácil de ser desenvolvido. No Header, colocamos informações sobre criação, descrição, título, tipos, e a principal TAG, Shortcut. É ela que será responsável de como a descrição do Snippet aparecerá na lista do Visual Studio. As TAGS Literal são responsáveis por qualquer variável que esteja dentro do código do Snippet, e descrevem o que deverá ser inserido como conteúdo (TAG interna ToolTip) e como será utilizado dentro do código(TAG interna ID).

O conteúdo do Snippet será exibido de acordo com a TAG Code, sendo que todos os espaços, quebras de linhas, parênteses e chaves são respeitados. Lembre-se sempre de manter um padrão no código, tanto em espaçamento quanto na identação. Abaixo segue um XML com as TAGS alteradas, em um exemplo simples de como utilizá-las.

<?xml version="1.0" encoding="utf-8" ?>

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

<CodeSnippet Format="1.0.0">

<Header>

<Title>ifelse</Title>

<Shortcut>ifelse</Shortcut>

<Description>Código para o Bloco if/else</Description>

<Author>Leandro Liez</Author>

<SnippetTypes>

<SnippetType>Expansion</SnippetType>

<SnippetType>SurroundsWith</SnippetType>

</SnippetTypes>

</Header>

<Snippet>

<Declarations>

<Literal>

<ID>sentenca_if</ID>

<ToolTip>Senteça do if</ToolTip>

<Default>setence</Default>

</Literal>

<Literal>

<ID>sentenca_elseif</ID>

<ToolTip>Sentença do else if</ToolTip>

<Default>setence</Default>

</Literal>

</Declarations>

<Code Language="csharp">

<![CDATA[if ($sentenca_if$)

{

}

else if($sentenca_elseif$)

{

}

]]>

</Code>

</Snippet>

</CodeSnippet>

</CodeSnippets>

Veja que não há muitas diferenças no código gerado e no código já existente. Por isso, antes de criar um snippet, entenda os prontos, que são usados por você no dia a dia. O código XML é simples e claro, e provavelmente é entendido por grande parte dos desenvolvedores. Lembre-se sempre de salvar o XML com a terminação “.snippet”, para que o Visual Studio possa entender o seu novo bloco de código.

Mas e agora, como coloco meu código para utilização no Visual Studio?

É simples, é só ir no gerenciador de snippets e adicionar o seu novo snippet. Podem ser criadas pastas para facilitar o trabalho, colocando todos os seus snippets dentro dela. Essa pasta pode ser adicionada facilmente pelo botão “Add...”, que coloca o caminho completo da pasta. Outro modo é fazer a importação de um snippet para uma pasta já existente (O Visual Studio faz uma cópia do arquivo para a pasta selecionada).

Pronto, agora é só utilizar o novo snippet criado.

Utilização.

Bom... É isso.

Agora é sói usar sua criatividade e necessidade para criar os mais variados snippets.

Até a próxima.

Leandro Liez

Leandro Liez - Graduado em Ciência de Computação pela faculdade Metodista de São Paulo. Trabalha com .NET a 6 anos, como desenvolvedor e coordenador de desenvolvimento. Atualmente trabalha na Bovespa, desenvolvendo um novo projeto, com as tecnologias WCF e WPF.