Integrating Bazel with IDEs
This page covers how to integrate Bazel with IDEs, such as IntelliJ, Android
Studio, and CLion (or build your own IDE plugin). It also includes links to
installation and plugin details.
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
the
bazel-dev
mailing list.
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:
Android Studio
plugin
IntelliJ
plugin
CLion plugin
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
.
Find the
language-bazel
package
on
the Atom package manager.
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.