このページでは、IntelliJ、Android Studio、CLion などの IDE と Bazel を統合する方法(または独自の 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 にインポートします。 - Bazel の
BUILD
ファイルと.bzl
ファイルで使用される言語である Starlark を IDE に認識させる - IDE から直接バイナリのビルド、テスト、実行を行う
- バイナリのデバッグと実行用の構成を作成する。
インストールするには、IDE のプラグイン ブラウザに移動して Bazel
を検索します。
古いバージョンを手動でインストールするには、JetBrains のプラグイン リポジトリから zip ファイルをダウンロードし、IDE のプラグイン ブラウザから zip ファイルをインストールします。
Xcode
rules_xcodeproj、Tulsi、XCHammer は、Bazel BUILD
ファイルから Xcode プロジェクトを生成します。
Visual Studio Code
VS Code の公式プラグイン。
機能:
- Bazel Build Targets ツリー
- ビルド中の
.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 プロジェクトを生成する試験運用版のプロジェクトです。
Eclipse
Bazel Eclipse Feature は、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 サポートに関するブログ投稿をご覧ください。