Como integrar o Bazel com ambientes de desenvolvimento integrado

Informar um problema Ver a fonte Nightly · 8.0 · 7.4 · 7.3 · 7.2 · 7.1 · 7.0  · 6.5

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

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

Se você tem interesse em desenvolver um editor ou plug-in de ambiente de desenvolvimento integrado para o Bazel, entre no canal #ide no Slack do Bazel ou inicie uma discussão no GitHub.

Ambientes de desenvolvimento integrados e editores

IntelliJ, Android Studio e CLion

Plug-in oficial 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.

Recursos:

  • Interoperabilidade com plug-ins específicos de linguagem. As linguagens com suporte incluem Java, Scala e Python.
  • Importação de arquivos BUILD para o ambiente de desenvolvimento integrado com reconhecimento semântico das metas do Bazel.
  • Deixe o ambiente de desenvolvimento integrado ciente do Starlark, a linguagem usada para os arquivos BUILD e .bzl do Bazel.
  • Criar, testar e executar binários diretamente no ambiente de desenvolvimento integrado
  • Crie configurações para depurar e executar binários.

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

Para instalar versões mais antigas manualmente, faça o download dos arquivos zip do 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 de arquivos BUILD do Bazel.

Visual Studio Code

Plug-in oficial para VS Code.

Recursos:

  • Árvore de destinos de build do Bazel
  • Depuração do 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 do Atom.

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

Vim

Consulte bazelbuild/vim-bazel no GitHub

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

Emacs

Consulte bazelbuild/bazel-emacs-mode no GitHub

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 build.

Eclipse

O Bazel Eclipse Feature é 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 linguagens 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 ampla variedade de editores extensível, incluindo VSCode, Vim, Emacs, Atom e Sublime. Ele permite que servidores de linguagem, como clangd e ccls, e outros tipos de ferramentas, usem o entendimento do Bazel sobre como o código cc e objc 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 automaticamente o build e o teste na alteração do 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 Suporte ao ambiente de desenvolvimento integrado para saber mais sobre as APIs do Bazel que podem ser usadas ao criar um plug-in do ambiente de desenvolvimento integrado.