MSDN Magazine > Home > Issues > 2006 > April >  Code Snippets - Usando e criando templates de c...
Code Snippets - Usando e criando templates de código

Por Lorenzo Minore

Este artigo discute

Este artigo usa as seguintes tecnologias

  • O que são Code Snippets;

  • Usando Code Snippets no Visual Studio 2005;

  • Criando e alterando Code Snippets;

  • Instalando novos Code Snippets e compartilhando
    com outros desenvolvedores.

Visual Studio 2005

Os Code snippets (fragmentos de código) do IntelliSense constituem uma das novas características do Visual Studio 2005. Code snippets podem ser personalizados de várias formas e foram idealizados para realizar rapidamente tarefas, desde as mais simples até as intermediárias. Podemos rapidamente inserir trechos de código prontos, bastando pressionar algumas teclas. Por exemplo, existem estruturas prontas para as principais construções da linguagem usada, como um bloco Select Case. Ou mesmo para realizar tarefas comuns do desenvolvimento, como ler um arquivo.

Neste artigo descreverei como usar os Code snippets instalados no Visual Studio 2005, como editar o conjunto existente ou criar o seu próprio, como compartilhar seus Code Snippets com outros usuários e onde procurar por outros templates.

Inserindo Code Snippets

Code snippets podem ser inseridos de várias maneiras. Se estiver no editor, use o Code Snippet Inserter. Para isso, você pode clicar de direita no editor e selecionar o comando Insert Snippet do menu de contexto. No Visual Basic você também pode digitar "?" e então pressionar a tecla Tab para obter o mesmo resultado. O Code Snippet Inserter tem algumas características em comum com o IntelliSense, permitindo navegar através da estrutura de diretórios de fragmentos para selecionar aquele desejado (Figura 1). Serão exibidos Tooltips ao lado do fragmento atualmente selecionado, para fornecer uma descrição e o atalho do mesmo.


Figura 1. Code Snippet Inserter

Para selecionarmos fragmentos usados com mais freqüência ou para aqueles que se deseja acessar mais rapidamente, podemos inseri-los apenas digitando o atalho seguido da tecla Tab. Para conhecer o atalho de um fragmento, podemos selecioná-lo no Code Snippet Inserter e observar o tooltip ou então, via o Code Snippets Manager, que pode ser acessado pelo menu Tools.

O método de inserção shortcut+Tab funciona muito bem para fragmentos que usam palavras-chaves como atalhos. No Visual Basic, ao digitarmos Select seguido por Tab, um fragmento de código será inserido (Figura 2).


Figura 2. Select-Case Snippet

No Visual Basic, se lembrarmos apenas uma parte do atalho para o fragmento, poderemos digitar o início do mesmo, seguido de "?" e da tecla Tab, e será exibida uma lista de conclusão de atalho (Figura 3). Por exemplo, para inserir um fragmento Visual Basic da categoria (diretório) Application, poderíamos digitar "app" (o prefixo de atalho para aquela categoria), ou apenas "a" seguido por "?", pressionando então a tecla Tab para obtermos a lista. Quando a mesma for exibida, o título do fragmento que corresponde ao atalho atualmente selecionado será exibido no tooltip. Podemos ainda navegar na lista e dar um duplo clique ou pressionarmos Enter para inserir no código o fragmento selecionado.


Figura 3. Buscar por atalho

Nota: Code Snippets são armazenados na forma de arquivo no disco rígido. Cada categoria representa um diretório.

Code Snippets do Visual Basic podem também ser inseridos por meio de simples operações "arrastar e soltar". Se soubermos a localização no disco de um arquivo de Code Snippet em particular, podemos simplesmente arrastá-lo e soltá-lo diretamente a partir do Windows Explorer no código Visual Basic!

Você pode desfazer uma inserção de fragmento, claro. Se inseriu o fragmento errado ou invocou um atalho sem querer, apenas execute o comando desfazer (Ctrl+Z) e o código retornará ao seu estado anterior.

Personalização dos Code Snippets

Code Snippets são diferentes de outros tipos de fragmentos que podemos copiar e colar no editor. Quando inserimos um Code Snippet do Visual Basic, este adicionará automaticamente ao projeto os assemblies referenciados e os imports requeridos no arquivo de código, de forma que o mesmo compilará corretamente (essa característica, porém, não existe para o C#).

O que realmente torna os Code Snippets tão convenientes de usar, são os campos de substituição (replacement fields), áreas realçadas em verde que identificam os valores que geralmente desejaríamos substituir para ajustarmos o fragmento de acordo com sua tarefa específica. Você pode usar Tab e Shift+Tab para movimentar o cursor pelos campos de substituição. Cada um tem um tooltip associado que descreve o que o mesmo representa e como deve ser substituído.

No Visual Basic, os campos de substituição contam também com o suporte IntelliSense para auxiliar na substituição correta; se digitássemos Ctrl+Space em uma substituição, será exibida a lista de substituição das variáveis locais do mesmo tipo, e poderemos escolher uma delas. No C#, essa combinação mostratá a mesma lista no IntelliSense que veríamos ao digitar código normal (Figura 4).


Figura 4. Campos de substituição com IntelliSense

Ao digitarmos em um campo de substituição, o mesmo se estenderá automaticamente, portanto, se quisermos evitar que o campo continue se estendendo, deveremos pressionar a tecla Esc, que irá interromper a substituição. Substituições podem ser linkadas, podendo haver ocorrências múltiplas de uma mesma substituição, sendo que ao substituirmos uma, todas as linkadas serão atualizadas automaticamente.

No Visual Basic os campos de substituição continuarão realçados enquanto não seja fechado o arquivo do código e todos os arquivos associados. Em C#, uma vez pressionada a tecla Enter, os campos de substituição desaparecerão e as alterações serão realizadas. Claro que mais tarde poderemos fazer mais alterações; pois o fragmento se torna parte do código, entretanto, não disporemos da ajuda visual de realce ou das outras funcionalidades dos campos de substituição.

Gerenciando fragmentos de código

Code Snippets instalados no Visual Studio são organizados em uma estrutura de categorias, por assunto ou por tarefa realizada. Para ver todas as categorias e os seus respectivos fragmentos, podemos abrir o Code Snippets Manager. Para tal, simplesmente selecionamos Tools>Code Snippets Manager (Figura 5). Este diálogo nos permite examinar os fragmentos por categoria e ao mesmo tempo verificar informações úteis. Quando selecionarmos um fragmento, poderemos ver a localização física do arquivo no disco, que representa o fragmento, além de uma breve descrição do que faz, o atalho para o mesmo e o seu autor (que é Microsoft Corporation para todos os fragmentos pré-instalados).


Figura 5. Code Snippets Manager

O botão Add do Code Snippets Manager acrescenta uma novo diretório inteiro à estrutura pré-definida. Este é um bom modo de adicionar à nossa coleção fragmentos novos armazenados em um diretório em disco. A pasta a ser adicionada poderá conter alguns arquivos que não são fragmentos de código, mas quando a observarmos no Snippet Manager veremos somente subpastas e fragmentos de código. A seleção atual na tree view não afeta a localização onde a nova pasta será adicionada; sempre será adicionado ao diretório raiz.

O botão Import acrescenta um ou mais fragmentos de código à estrutura de diretório mostrada pelo snippet manager. Uma vez selecionados os fragmentos que desejamos importar, poderemos escolher as pastas onde iremos colocar esses fragmentos.

A estrutura de diretório de fragmentos contém uma pasta chamada My Code Snippets, onde podemos instalar nossos próprios fragmentos ou aqueles obtidos de outros usuários. Se quisermos alterar alguns dos fragmentos de código instalados com o Visual Studio 2005, é bom criarmos uma cópia do fragmento dentro da pasta My Code Snippets e então modificá-los; caso contrário poderá ser difícil reverter as alterações realizadas.

Para alterar fragmentos de código instalados com o Visual Studio sem antes copiá-los, precisaremos também de privilégios de escrita para a pasta Arquivos de Programas, que normalmente só são concedidos a administradores.

O botão Remove removerá apenas a pasta atualmente selecionada da estrutura de diretório mostrada pelo Code Snippets Manager. A pasta removida não será apagada do sistema de arquivos, mas apenas da visão do Code Snippets Manager. Você poderá a qualquer momento usar o comando Add para recuperá-la. A visão do Code Snippets Manager representa os fragmentos que poderão ser inseridos no editor de código pelo snippet inserter ou pelas outras técnicas aqui descritas, portanto, se removermos uma pasta desta visão, não teremos acesso aos fragmentos contidos na IDE.

O comando Search Online exibirá o diálogo de busca MSDN, onde poderemos inserir palavras-chave para procurarmos fragmentos de código. Infelizmente, esta característica nem sempre funciona como esperado, e poderemos obter resultados que casam com as palavra-chave, porém sem relação com fragmentos de código. Se estiver procurando on-line, sugiro o uso de um utilitário de pesquisa e acrescentar "code snippet" ou "IntelliSense Code Snippet" às palavras-chave, para obter um conjunto de resultados mais apropriado.

O Visual Basic Snippet Editor

Você não está limitado aos fragmentos de código que vêm com o Visual Studio 2005, podendo também escrever os seus próprios ou obtê-los de terceiros. Um modo mais fácil de escrever ou modificar fragmentos de código consiste em usar a ferramenta Visual Basic Code Snippet Editor (veja seção links).

Compartilhando Code Snippets

Existem dois sites da Web que hospedam Code Snippets: o DotNetJunkies e o GotCodeSnippets. Ambos os sites têm um número limitado de fragmentos de código disponíveis, mas espero que aumentem significativamente nos próximos meses. Verifique o endereço de ambos na seção links.

Os Code Snippets estão disponíveis no formato .VSI. Uma vez descarregado o pacote .VSI, clique duas vezes nele e um assistente o guiará pelo processo de instalação, perguntando entre outras coisas, em qual pasta deseja colocar os fragmentos (Figura 6). Novamente, sugiro separar os fragmentos descarregados da Web ou obtidos de outros desenvolvedores daqueles criados pela Microsoft, colocando-os na pasta My Code Snippets.


Figura 6. Instalando um Code Snippet

Se estiver planejando publicar ou compartilhar seus próprios fragmentos de código, recomendamos usar o formato .VSI, isso facilitará a instalação para quem for utilizá-lo. Para criar um .VSI com fragmentos múltiplos, o modo mais fácil é provavelmente usar o Content Installer Powertoys de Craig Skibo.

Conclusão

Experimente os Code Snippets incluídos no Visual Studio, eles fornecem uma grande variedade de soluções para aumento de produtividade. Porém, o real poder dessa funcionalidade é sua estensibilidade. O snippet editor, os sites hospedeiros de Code Snippets e o formato e ferramentas VSI, disponibilizam um framework para a comunidade de usuários criar uma biblioteca de fragmentos de código diversificada e acessível para todo o mundo.

Links

http://msdn.microsoft.com/vbasic/downloads/tools/snippeteditor
Visual Basic Code Snippet Editor

http://gotdotnet.com/workspaces/workspace.aspx?id=a927f4e7-8e7f-45ce-8b72-f3b9384a3eab
Snippet Editor workspace

http://gotdotnet.com/codegallery/codegallery.aspx?id=b0813ae7-466a-43c2-b2ad-f87e4ee6bc39
Snippy

http://dotnetjunkies.com
DotNetJunkies

http://gotcodesnippets.com
GotCodeSnippets

http://gotdotnet.com/workspaces/workspace.aspx?id=6b1aceda-e613-4dac-beeb-0cd8ad8f2d41
Content Installer Powertoys

Lorenzo Minore (lorenzom@microsoft.com) é um Software Design Engineer da equipe de Visual Basic da Microsoft. Também coordena uma equipe para promover Code Snippets do IntelliSense, para a comunidade de usuários Visual Basic.

Page view tracker