Distribuir snippets de código como uma extensão do Visual Studio
Você pode fornecer os snippets de código a seus amigos e solicitar a eles que instalem os snippets em seus próprios computadores usando o Gerenciador de Snippets de Código. No entanto, se tiver vários snippets para distribuir ou desejar distribuí-los mais amplamente, você poderá incluir os arquivos de snippet em uma extensão do Visual Studio. Em seguida, os usuários do Visual Studio podem instalar a extensão para obter os snippets.
Pré-requisitos
Instale a carga de trabalho do desenvolvimento de extensões do Visual Studio para obter acesso aos modelos do Projeto do VSIX.
Configurar a estrutura do diretório de extensão
Neste procedimento, você usará o mesmo snippet de código Olá, Mundo criado no Passo a passo: Criar um snippet de código. Este artigo fornece o snippet XML, portanto, você não precisa voltar e criar um snippet.
Crie um novo projeto a partir do modelo de Projeto VSIX vazio e nomeie o projeto
TestSnippet
.No projeto TestSnippet, adicione um novo arquivo XML e chame-o
VBCodeSnippet.snippet
(.snippet é a nova extensão de arquivo). Substitua o conteúdo pelo seguinte XML:<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>Hello World VB</Title> <Shortcut>HelloWorld</Shortcut> <Description>Inserts code</Description> <Author>MSIT</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> <SnippetType>SurroundsWith</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language="VB"> <![CDATA[Console.WriteLine("Hello, World!")]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
No Gerenciador de Soluções, selecione o nó do projeto e adicione uma pasta que tenha o nome que deseja que o snippet tenha no Gerenciador de Snippets de Código. Neste caso, deve ser HelloWorldVB.
Mova o arquivo .snippet para a pasta HelloWorldVB.
Selecione o arquivo .snippet no Gerenciador de Soluções e, na janela Propriedades, garanta que Ação de Build esteja definida como Conteúdo, Copiar para Diretório de Saída esteja definido como Copiar sempre e Incluir no VSIX esteja definido como true.
Adicionar o arquivo .pkgdef
Adicione um arquivo de texto à pasta HelloWorldVB e dê a ele o nome de HelloWorldVB.pkgdef. Esse arquivo é usado para adicionar determinadas chaves ao Registro. Para obter mais informações, consulte Exibir o registro para o trecho (opcional).
Adicione as seguintes linhas ao arquivo.
// Visual Basic [$RootKey$\Languages\CodeExpansions\Basic\Paths] "HelloWorldVB"="$PackageFolder$"
Se você examinar essa chave, poderá ver como especificar idiomas diferentes do Visual Basic.
Selecione o arquivo .pkgdef no Gerenciador de Soluções e, na janela Propriedades, garanta que:
- A opção Ação de Build esteja definida como Conteúdo
- A opção Copiar para Diretório de Saída esteja definida como Sempre copiar
- A opção Incluir no VSIX esteja definida como true
Adicione o arquivo .pkgdef como um ativo no manifesto VSIX. No arquivo source.extension.vsixmanifest, vá para a guia Ativos e clique em Novo.
Na caixa de diálogo Adicionar Novo Ativo, defina o Tipo como Microsoft.VisualStudio.VsPackage, a Origem como Arquivo no sistema de arquivos e o Caminho como HelloWorldVB.pkgdef (que deve aparecer na lista suspensa). Selecione OK para salvar esse novo ativo.
Registrar o snippet
Acesse Ferramentas>Gerenciador de Snippets de Código e defina a Linguagem como Basic.
Selecione Adicionar..., navegue até a pasta HelloWorldVB do diretório da solução e escolha Selecionar Pasta.
HelloWorldVB agora é uma das pastas de snippet de código. Expanda a pasta para ver o snippet HelloWorldVB. Selecione OK para salvar essa pasta recém-adicionada.
Teste o snippet
Agora você pode verificar se o snippet de código funciona na instância experimental do Visual Studio. A instância experimental é uma segunda cópia do Visual Studio, que é separada daquela que você usa para escrever código. Ela permite que você trabalhe em uma extensão sem afetar seu ambiente de desenvolvimento.
Compile o projeto e comece a depuração.
Uma segunda instância do Visual Studio é exibida.
Teste o snippet. Na instância experimental, abra um projeto do Visual Basic e abra um dos arquivos de código. Coloque o cursor em algum lugar no código, clique com o botão direito do mouse e, no menu de contexto, selecione Snippet e, depois, Inserir Snippet.
Clique duas vezes na pasta HelloWorldVB. Você verá um pop-up Inserir snippet: HelloWorldVB > que tem uma lista suspensa HelloWorldVB. Clique duas vezes na lista suspensa HelloWorldVB.
A seguinte linha é adicionada ao arquivo de código:
Console.WriteLine("Hello, World!")
Exibir o registro para o trecho (opcional)
O arquivo .pkgdef é usado para adicionar determinadas chaves ao Registro. Depois de registrar o trecho, se você precisar exibir as chaves do Registro na hive do registro privado, poderá encontrá-las na seguinte subchave:
Visual Studio 2022: HKEY_USERS\IsolatedHiveName\Software\Microsoft\VisualStudio\17.0_configID\Languages\CodeExpansions\Basic\Paths
Visual Studio 2019: HKEY_USERS\IsolatedHiveName\Software\Microsoft\VisualStudio\16.0_configID\Languages\CodeExpansions\Basic\Paths
Para exibir as chaves do Registro nessa localização, primeiro feche o Visual Studio, abra o editor do Registro e carregue o hive do Registro privado em HKEY_USERS.
Importante
Se você verificar o registro, certifique-se de descarregar o hive do registro privado antes de iniciar o Visual Studio.
Por exemplo, as chaves do registro podem aparecer como mostrado aqui.