Como integrar o Bazel com ambientes de desenvolvimento integrado

Informar um problema Acessar a origem

Esta página ensina como integrar o Bazel a ambientes de desenvolvimento integrado, como IntelliJ, Android Studio e CLion (ou criar seu próprio plug-in). Ele também inclui links para detalhes da instalação e do plug-in.

Os ambientes de desenvolvimento integrado se integram ao Bazel de várias maneiras, desde recursos que permitem execuções de dentro do ambiente de desenvolvimento integrado até reconhecimento de estruturas do Bazel, como destaque de sintaxe dos arquivos BUILD.

Se você estiver interessado em desenvolver um editor ou plug-in de ambiente de desenvolvimento integrado para o Bazel, participe do canal #ide no Bazel Slack ou inicie uma discussão no GitHub (links em inglês).

Ambientes de desenvolvimento integrado e editores

IntelliJ, Android Studio e CLion

Plug-in oficial (link em inglês) para IntelliJ, Android Studio e CLion. O plug-in é de código aberto.

Esta é a versão de código aberto do plug-in usado internamente no Google.

Atributos:

  • Interoperabilidade com plug-ins específicos de linguagem. As linguagens compatíveis incluem Java, Scala e Python.
  • Importe arquivos BUILD para o ambiente de desenvolvimento integrado com reconhecimento semântica de destinos do Bazel.
  • Fazer com que o ambiente de desenvolvimento integrado reconheça Starlark, a linguagem usada para os arquivos BUILD e .bzl do Bazel.
  • Crie, teste e execute binários diretamente do ambiente de desenvolvimento integrado
  • Crie configurações para depurar e executar binários.

Para instalar, acesse o navegador do plug-in do ambiente de desenvolvimento integrado e pesquise Bazel.

Para instalar versões mais antigas manualmente, faça o download dos arquivos ZIP no repositório de plug-ins do JetBrains e instale o arquivo ZIP no navegador de plug-ins do ambiente de desenvolvimento integrado:

Xcode

rules_xcodeproj, Tulsi e XCHammer geram projetos Xcode dos arquivos BUILD do Bazel.

Código do Visual Studio

Plug-in oficial para o VS Code.

Atributos:

  • Árvore de destinos de build do Bazel
  • Depurador Starlark para arquivos .bzl durante um build (definir pontos de interrupção, percorrer o código, inspecionar variáveis etc.)

Encontre o plug-in no marketplace do Visual Studio. O plug-in é de código aberto.

Consulte também: Preenchimento automático para código-fonte

Atom

Encontre o pacote language-bazel no gerenciador de pacotes Atom.

Consulte também: Preenchimento automático para código-fonte

Vim

Consulte bazelbuild/vim-bazel no GitHub (link em inglês)

Consulte também: Preenchimento automático para código-fonte

Emacs

Consulte bazelbuild/bazel-emacs-mode no GitHub (link em inglês)

Consulte também: Preenchimento automático para código-fonte

Visual Studio

O Lavender é um projeto experimental para gerar projetos do Visual Studio que usam o Bazel para criação.

Eclipse

O Recurso Eclipse do Bazel é um conjunto de plug-ins para importar pacotes do Bazel para um espaço de trabalho do Eclipse como projetos do Eclipse.

Preenchimento automático para código-fonte

Família de linguagem C (C++, C, Objective-C e Objective-C++)

O hedronvision/bazel-compile-commands-extractor ativa o preenchimento automático, a navegação inteligente, as correções rápidas e muito mais em uma grande variedade de editores extensíveis, como VSCode, Vim, Emacs, Atom e Sublime. Ele permite que servidores de linguagem, como clangd e ccls, e outros tipos de ferramentas, aproveitem o entendimento do Bazel de como o código cc e objc vai ser compilado, incluindo como ele configura a compilação cruzada para outras plataformas.

Java

georgewfraser/java-language-server: servidor de linguagem Java (LSP) com suporte a projetos criados pelo Bazel.

Executar o build e o teste automaticamente quando houver mudanças no arquivo

O Bazel watcher é uma ferramenta para criar destinos do Bazel quando os arquivos de origem mudam.

Como criar seu próprio plug-in de ambiente de desenvolvimento integrado

Leia a postagem do blog sobre suporte ao ambiente de desenvolvimento integrado (link em inglês) para saber mais sobre as APIs Bazel a serem usadas ao criar um plug-in do ambiente de desenvolvimento integrado.