Bazel と IDE の統合

問題を報告する ソースを表示 ナイトリー · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

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

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

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

TulsiXCHammer は、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、Sublime など、さまざまな拡張可能なエディタで自動補完を有効にできます。これにより、clangd や ccls などの言語サーバーや、他のタイプのツールが、他のプラットフォームのクロス コンパイルの構成方法など、cc コードと objc コードのコンパイルの方法に関する Bazel の理解を利用できるようになります。

Java

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

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

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

独自の IDE プラグインを構築する

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