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