本页介绍了如何将 Bazel 与 IDE(例如 IntelliJ、Android Studio 和 CLion)集成,或构建自己的 IDE 插件。此外,还提供了安装和插件详细信息的链接。
IDE 以多种方式与 Bazel 集成,从允许在 IDE 中执行 Bazel 的功能,到对 Bazel 结构(例如 BUILD 文件的语法突出显示)的感知。
如果您有兴趣为 Bazel 开发编辑器或 IDE 插件,请加入 #ide 频道,或在 Bazel Slack 上发起讨论 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_xcodeproj、
Tulsi 和
XCHammer 从 Bazel BUILD 文件生成 Xcode
项目。
Visual Studio Code
适用于 VS Code 的官方插件。
功能:
- Bazel 构建目标树
- 构建期间用于
.bzl文件的 Starlark 调试器(设置断点、单步执行代码、检查变量等)
在 Visual Studio Marketplace 或 OpenVSX Marketplace 上查找该插件。 该插件是开源的。
另请参阅:源代码自动补全
Atom
在 Atom 软件包管理器上查找 language-bazel 软件包
。
另请参阅:源代码自动补全
Vim
请参阅 bazelbuild/vim-bazel on GitHub
另请参阅:源代码自动补全
Emacs
请参阅 bazelbuild/bazel-emacs-mode on
GitHub
另请参阅:源代码自动补全
Visual Studio
Lavender 是一个实验性项目,用于 生成使用 Bazel 进行构建的 Visual Studio 项目。
Eclipse
Bazel Eclipse Feature 是一组插件,用于将 Bazel 软件包作为 Eclipse 项目导入 Eclipse 工作区。
源代码自动补全
C 语言系列(C++、C、Objective-C、Objective-C++ 和 CUDA)
kiron1/bazel-compile-commands
在 Bazel 工作区中运行 bazel-compile-commands //... 以生成 compile_commands.json 文件。
compile_commands.json 文件使 clang-tidy、clangd (LSP) 和其他 IDE 等工具能够提供自动补全、智能导航、快速修复等功能。该工具使用 C++ 编写,并使用 Bazel 的 Protobuf 输出提取编译命令。
hedronvision/bazel-compile-commands-extractor 可在各种可扩展编辑器(包括 VSCode、Vim、Emacs、Atom 和 Sublime)中实现自动补全、智能导航、快速修复等功能。它允许语言服务器(例如 clangd 和 ccls)和其他类型的工具利用 Bazel 对 cc 和 objc 代码的编译方式的理解,包括如何为其他平台配置交叉编译。
Java
georgewfraser/java-language-server - Java 语言服务器 (LSP),支持 Bazel 构建的项目
在文件更改时自动运行构建和测试
Bazel watcher 是一种 在源文件更改时构建 Bazel 目标的工具。
构建自己的 IDE 插件
如需详细了解在构建 IDE 插件时要使用的 Bazel API,请阅读**IDE 支持** 博文 。