このページでは、IntelliJ、Android Studio、CLion などの IDE と Bazel を統合する方法について説明します(独自の IDE プラグインをビルドすることもできます)。インストールとプラグインの詳細へのリンクも含まれています。
IDE は、IDE 内から Bazel
の実行を可能にする機能から、Bazel 構造の認識まで、さまざまな方法で Bazel と統合されます。構文
ハイライト表示などの BUILD ファイル。
Bazel 用のエディタまたは IDE プラグインの開発に関心をお持ちの場合は、
#ide チャンネルにBazel Slackで参加するか、
GitHubでディスカッションを開始してください。
IDE とエディタ
IntelliJ、Android Studio、CLion
IntelliJ、Android Studio、 CLion 用の公式プラグイン。このプラグインはオープンソースです。
これは、Google 社内で使用されているプラグインのオープンソース バージョンです。
機能:
- 言語固有のプラグインとの相互運用。サポートされている言語は、Java、 Scala、Python です。
- Bazel ターゲットのセマンティクスを認識して、
BUILDファイルを IDE にインポートします。 - Bazel の
BUILDと.bzlファイルに使用される言語である Starlark を IDE で認識できるようにします。 - IDE から直接バイナリをビルド、テスト、実行します。
- バイナリのデバッグと実行の構成を作成します。
インストールするには、IDE のプラグイン ブラウザに移動して Bazel を検索します。
古いバージョンを手動でインストールするには、JetBrains の プラグイン リポジトリから zip ファイルをダウンロードし、IDE のプラグイン ブラウザから zip ファイルをインストールします。
Xcode
rules_xcodeproj、Tulsi、XCHammer
Visual Studio Code
VS Code 用の公式プラグイン。
機能:
- Bazel ビルドターゲット ツリー
- ビルド中の
.bzlファイルの Starlark デバッガ(ブレークポイントの設定、コードのステップ スルー、変数の検査など)
このプラグインは、Visual Studio Marketplace または OpenVSX 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++、CUDA)
kiron1/bazel-compile-commands
Bazel ワークスペースで bazel-compile-commands //... を実行して compile_commands.json ファイルを生成します。
compile_commands.json ファイルを使用すると、clang-tidy、clangd(LSP)などのツールや他の IDE で
オートコンプリート、スマート ナビゲーション、クイック フィックスなどを使用できます。このツールは C++ で記述されており、
Bazel の Protobuf 出力を消費してコンパイル コマンドを抽出します。
hedronvision/bazel-compile-commands-extractor を使用すると、VSCode、Vim、Emacs、Atom、Sublime など、さまざまな拡張可能なエディタでオートコンプリート、スマート ナビゲーション、クイック フィックスなどを使用できます。これにより、clangd や ccls などの言語サーバーや他の種類のツールで、cc コードと objc コードのコンパイル方法(他のプラットフォームのクロス コンパイルの構成方法など)に関する Bazel の理解を活用できます。
Java
georgewfraser/java-language-server - Bazel でビルドされたプロジェクトをサポートする Java 言語サーバー(LSP)
ファイルの変更時にビルドとテストを自動的に実行する
Bazel ウォッチャーは、ソースファイルが変更されたときに Bazel ターゲットをビルドする ツールです。
独自の IDE プラグインをビルドする
IDE プラグインのビルド時に使用する Bazel API の詳細については、IDE サポート のブログ 投稿をご覧ください。