將 Bazel 與 IDE 整合

回報問題 查看來源

本頁說明如何整合 Bazel 與 IDE,例如 IntelliJ、Android Studio 和 CLion (或建構自己的 IDE 外掛程式)。其中也包含安裝和外掛程式詳細資料的連結。

IDE 會以各種方式與 Bazel 整合,包括允許 Bazel 在 IDE 中執行的功能,以及瞭解 Bazel 結構 (例如醒目顯示 BUILD 檔案的語法) 的功能。

如果您有興趣開發適用於 Bazel 的編輯器或 IDE 外掛程式,請在 Bazel Slack 上加入 #ide 管道,或在 GitHub 上開始討論。

IDE 和編輯器

IntelliJ、Android Studio 和 CLion

IntelliJ、Android Studio 和 CLion 適用的官方外掛程式。外掛程式為開放原始碼

這是 Google 內部使用的外掛程式開放原始碼版本。

功能:

  • 與語言專用外掛程式互通。支援的語言包括 Java、Scala 和 Python。
  • BUILD 檔案匯入 IDE,同時瞭解 Bazel 目標的語意。
  • 讓 IDE 瞭解 Starlark,這種語言用於 Bazel 的 BUILD.bzl 檔案
  • 直接透過 IDE 建構、測試及執行二進位檔
  • 建立用於偵錯和執行二進位檔的設定。

如要安裝,請前往 IDE 的外掛程式瀏覽器並搜尋 Bazel

如要手動安裝舊版,請從 JetBrains 外掛程式存放區下載 ZIP 檔案,然後從 IDE 外掛程式瀏覽器中安裝 ZIP 檔案:

Xcode

rules_xcodeprojTulsiXCHammer 會從 Bazel BUILD 檔案產生 Xcode 專案。

Visual Studio 程式碼

VS Code 的官方外掛程式。

功能:

  • Bazel Build 目標樹狀結構
  • 建構期間 .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) 與其他類型工具的分析,確實瞭解 ccobjc 程式碼的編譯方式,包括設定其他平台的跨平台程式碼編譯方式。

Java

georgewfraser/java-language-server - 支援 Bazel 專案的 Java 語言伺服器 (LSP)

自動執行建構及測試檔案變更

Bazel 觀察器是可在來源檔案變更時建構 Bazel 目標的工具。

建構自己的 IDE 外掛程式

請參閱 IDE 支援網誌文章,進一步瞭解建構 IDE 外掛程式時要使用的 Bazel API。