Bazel と IDE の統合

このページでは、IntelliJ、Android Studio、CLion などの IDE と Bazel を統合する方法について説明します(独自の IDE プラグインをビルドすることもできます)。また、インストールとプラグインの詳細へのリンクも掲載しています。

IDE は、IDE 内から Bazel の実行を可能にする機能から、BUILD ファイルの構文ハイライト表示などの Bazel 構造の認識まで、さまざまな方法で Bazel と統合されます。

Bazel 用のエディタまたは IDE プラグインの開発に関心をお持ちの場合は、 #ide チャネルにBazel Slack で参加するか、 bazel-dev メーリング リストにメールを送信してください。

IDE とエディタ

IntelliJ、Android Studio、CLion

IntelliJ、Android Studio、 CLion 用の公式プラグイン。このプラグインはオープンソースです。

これは、Google 社内で使用されているプラグインのオープンソース バージョンです。

機能:

  • 言語固有のプラグインとの相互運用。サポートされている言語は、Java、Scala、Python です。
  • Bazel ターゲットのセマンティック認識を使用して、BUILD ファイルを IDE にインポートします。
  • IDE で、Bazel の BUILD ファイルと .bzl ファイルに使用される言語である Starlark を認識できるようにします。
  • IDE から直接バイナリをビルド、テスト、実行します。
  • バイナリのデバッグと実行の構成を作成します。

インストールするには、IDE のプラグイン ブラウザに移動して Bazel を検索します。

古いバージョンを手動でインストールするには、JetBrains のプラグイン リポジトリから zip ファイルをダウンロードし、IDE のプラグイン ブラウザから zip ファイルをインストールします。

Xcode

TulsiXCHammer は、 Bazel BUILD ファイルから Xcode プロジェクトを生成します。

Visual Studio Code

VS Code 用の公式プラグイン。

機能:

  • Bazel ビルドターゲット ツリー
  • ビルド中の .bzl ファイルの Starlark デバッガ(ブレークポイントの設定、コードのステップスルー、変数の検査など)

Visual Studio Marketplace でプラグインを見つけます 。このプラグインはオープンソースです。

こちらもご覧ください: ソースコードの自動補完

Atom

Atom パッケージ マネージャーで language-bazel パッケージ を見つけます。

Vim

GitHub の bazelbuild/vim-bazel をご覧ください

Emacs

GitHub の bazelbuild/bazel-emacs-mode on をご覧ください。

Visual Studio

Lavender は、ビルドに Bazel を使用する Visual Studio プロジェクトを 生成するための試験運用プロジェクトです。

Eclipse

Bazel Eclipse Feature は、Bazel パッケージを Eclipse ワークスペースに Eclipse プロジェクトとしてインポートするためのプラグインのセットです。

ソースコードの自動補完

C 言語ファミリー(C++、C、Objective-C、Objective-C++)

hedronvision/bazel-compile-commands-extractor を使用すると、VSCode、Vim、Emacs、Sublime など、さまざまな拡張可能なエディタで自動補完が可能になります。これにより、clangd や ccls などの言語サーバーや他の種類のツールで、他のプラットフォームのクロスコンパイルを構成する方法など、cc コードと objc コードのコンパイル方法に関する Bazel の理解を活用できます。

Java

georgewfraser/java-language-server - Bazel でビルドされたプロジェクトをサポートする Java 言語サーバー(LSP)

ファイルの変更時にビルドとテストを自動的に実行する

Bazel ウォッチャーは、ソースファイルが変更されたときに Bazel ターゲットをビルドする ツールです。

独自の IDE プラグインをビルドする

IDE プラグインのビルド時に使用する Bazel API の詳細については、IDE サポート のブログ 投稿をご覧ください。