このページでは、Bazel を IntelliJ、Android Studio、CLion などの IDE と統合する方法(または独自の IDE プラグインを構築する方法)について説明します。また、インストールとプラグインの詳細へのリンクも含まれます。
IDE は、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 のプラグイン ブラウザからインストールします。
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 ウォッチャーは、ソースファイルが変更されたときに Bazel ターゲットをビルドするためのツールです。
独自の IDE プラグインを作成する
IDE プラグインの構築時に使用する Bazel API について詳しくは、IDE のサポートに関するブログ投稿をご覧ください。