Integrating Bazel with IDEs
IDEs integrate with Bazel in a variety of ways, from features that allow Bazel executions from within the IDE, to awareness of Bazel structures such as syntax highlighting of the BUILD files.
If you are interested in developing an editor or IDE plugin for Bazel, please
join the #ide
channel on the Bazel Slack or email
bazel-dev@googlegroups.com.
IDEs and editors
IntelliJ, Android Studio and CLion
Official plugin for IntelliJ, Android Studio, and CLion. The plugin is open source.
This is the open source version of the plugin used internally at Google.
Features:
- Interop with language-specific plugins. Supported languages include Java, Scala, and Python.
- Import BUILD files into the IDE with semantic awareness of Bazel targets.
- Make your IDE aware of Starlark, the language used for Bazel’s BUILD and bzl files
- Build, test, and execute binaries directly from the IDE
- Create configurations for debugging and running binaries.
To install, go to the IDE’s plugin browser and search for Bazel
.
To manually install older versions, download the zip files from JetBrains’ Plugin Repository and install the zip file from the IDE’s plugin browser:
Xcode
Tulsi and
XCHammer generate Xcode projects from
Bazel BUILD
files.
Visual Studio Code
Official plugin for VS Code.
Features:
- Bazel Build Targets tree
- Starlark debugger for .bzl files during a build (set breakpoints, step through code, inspect variables, and so on)
Find the plugin on the Visual Studio marketplace. The plugin is open source.
Atom
Find the language-bazel
package on
the Atom package manager.
Vim
See bazelbuild/vim-bazel
on GitHub
Emacs
See bazelbuild/bazel-emacs-mode
on
GitHub
Visual Studio
Lavender is an experimental project for generating Visual Studio projects that use Bazel for building.
Eclipse
Bazel Eclipse Feature is a set of plugins for importing Bazel packages into an Eclipse workspace as Eclipse projects.
Automatically run build and test on file change
Bazel watcher is a tool for building Bazel targets when source files change.
Building your own IDE plugin
Read the IDE support blog post to learn more about the Bazel APIs to use when building an IDE plugin.