## Como Criar uma Extensão VS Code: Um Guia Prático
Criar extensões para o Visual Studio Code (VS Code) pode transformar sua experiência de desenvolvimento, automatizando tarefas, adicionando funcionalidades específicas e personalizando o editor para suas necessidades. Este guia te levará pelos passos essenciais, desde a configuração inicial até um exemplo simples \"Hello World\".
1. Pré-requisitos
- Node.js e npm: Certifique-se de ter o Node.js e o npm (Node Package Manager) instalados em seu sistema. Você precisará deles para gerenciar as dependências do seu projeto de extensão.
- VS Code: Obviamente, você precisa do VS Code instalado.
- Conhecimento básico de JavaScript/TypeScript: Embora não seja estritamente necessário, um conhecimento básico de JavaScript ou TypeScript facilitará o desenvolvimento. TypeScript é a linguagem preferida para extensões VS Code.
2. Configurando o Ambiente
-
Instale o Yeoman e o Gerador de Extensões VS Code:
Abra o terminal e execute:
npm install -g yo generator-codeO Yeoman é um gerador de scaffolding que facilita a criação de projetos de extensão. O
generator-codeé um gerador específico para extensões VS Code. -
Crie a Estrutura da Extensão:
No terminal, navegue até a pasta onde deseja criar sua extensão e execute:
yo codeO Yeoman irá te guiar por algumas perguntas para configurar sua extensão:
* **Tipo de extensão:** Selecione a opção desejada (neste exemplo, escolheremos \"New Extension (TypeScript)\").
* **Nome da extensão:** Dê um nome para sua extensão (ex: \"hello-world-extension\").
* **Identificador da extensão:** Será gerado automaticamente, mas você pode modificá-lo.
* **Descrição:** Adicione uma breve descrição da sua extensão.
* **Nome do autor:** Seu nome ou o nome da sua organização.
* **Gerenciar as dependências do projeto:** Escolha a opção padrão (npm).
* **Inicializar o repositório Git:** Escolha a opção padrão (Sim, ou No, se não quiser usar Git).
* **Abrir no VS Code:** Escolha a opção padrão (Sim).
Após responder às perguntas, o Yeoman criará a estrutura básica da sua extensão.
-
Entendendo a Estrutura do Projeto:
O gerador cria uma pasta com os seguintes arquivos e pastas importantes:
* `package.json`: Contém metadados da extensão, dependências e configurações.
* `src/extension.ts`: O arquivo principal da extensão, onde você escreverá o código.
* `README.md`: Um arquivo de texto com informações sobre sua extensão.
* `.vscode/`: Contém configurações do VS Code específicas para o projeto (ex: launch.json para depuração).
3. As APIs do VS Code
As extensões do VS Code se comunicam com o editor por meio de uma vasta gama de APIs (Application Programming Interfaces). As principais áreas de atuação são:
-
vscode.commands: Permite registrar e executar comandos. -
vscode.languages: Permite adicionar suporte a linguagens (syntax highlighting, autocompletar, etc.). -
vscode.window: Permite interagir com a interface do usuário (ex: exibir mensagens, criar painéis). -
vscode.workspace: Permite acessar e manipular arquivos e pastas no workspace. -
vscode.TextEditorevscode.TextDocument: Permite interagir com editores de texto e documentos. -
vscode.ExtensionContext: Fornece acesso ao contexto da extensão (ex: pasta de extensão, armazenamento de dados).
Você pode encontrar a documentação completa da API do VS Code na documentação oficial: https://code.visualstudio.com/api
4. Exemplo \"Hello World\"
Vamos criar uma extensão simples que exibe uma mensagem \"Hello World!\" quando um comando é executado.
-
Modifique
src/extension.ts:Abra o arquivo
src/extension.tsno seu editor. Substitua o conteúdo atual pelo seguinte:
import * as vscode from 'vscode'; export function activate(context: vscode.ExtensionContext) { let disposable = vscode.commands.registerCommand('hello-world-extension.helloWorld', () => { vscode.window.showInformationMessage('Hello World from Hello World Extension!'); }); context.subscriptions.push(disposable); } export function deactivate() {}
* **`activate()`:** Esta função é chamada quando a extensão é ativada.
* **`vscode.commands.registerCommand()`:** Registra um novo comando. O primeiro argumento é o ID do comando, e o segundo é a função a ser executada quando o comando é chamado.
* **`vscode.window.showInformationMessage()`:** Exibe uma mensagem na tela do usuário.
* **`context.subscriptions.push()`:** Adiciona o comando à lista de \"subscriptions\" da extensão. Isso garante que o comando seja removido corretamente quando a extensão for desativada.
-
Modifique
package.json:No arquivo
package.json, adicione a seguinte seçãocontributesdentro do objeto principal:
\"contributes\": { \"commands\": [ { \"command\": \"hello-world-extension.helloWorld\", \"title\": \"Hello World\" } ] },
* **`commands`:** Define os comandos que sua extensão registra.
* **`command`:** O ID do comando, que deve corresponder ao ID usado em `registerCommand` no arquivo `extension.ts`.
* **`title`:** O texto que aparecerá no menu de comandos do VS Code.
- Compile e Execute a Extensão:
* **Compile:** No terminal, dentro da pasta da sua extensão, execute:
```bash
npm install
npm run compile
```
* **Execute:** No VS Code, pressione `F5` para iniciar a depuração. Uma nova janela do VS Code será aberta com sua extensão carregada.
- Teste a Extensão:
* Na janela de depuração (a nova janela do VS Code), pressione Ctrl+Shift+P (Windows/Linux) ou Cmd+Shift+P (macOS) para abrir o menu de comandos.
- Digite \"Hello World\" e selecione o comando \"Hello World\" que você criou.
- Você deverá ver a mensagem \"Hello World from Hello World Extension!" aparecer no canto inferior direito da tela.
- Próximos Passos
- Explore as APIs do VS Code: A documentação da API é seu melhor amigo. Experimente diferentes funcionalidades.
- Adicione funcionalidades: Crie comandos mais complexos, adicione suporte a linguagens, integre com outras ferramentas.
- Publique sua extensão: Compartilhe sua criação na Marketplace do VS Code para que outros desenvolvedores possam usá-la.
Este guia te deu uma base sólida para começar a criar suas próprias extensões VS Code. Divirta-se e explore as possibilidades!
Top comments (0)