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 start
a discussion on GitHub.
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
BUILDfiles into the IDE with semantic awareness of Bazel targets. - Make your IDE aware of Starlark, the language used for Bazel’s
BUILDand.bzlfiles - Build, test, and execute binaries directly from the IDE
- Create configurations for debugging and running binaries.
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
rules_xcodeproj, Tulsi, and XCHammer generate Xcode projects from BazelBUILD files.
Visual Studio Code
Official plugin for VS Code. Features:- Bazel Build Targets tree
- Starlark debugger for
.bzlfiles during a build (set breakpoints, step through code, inspect variables, and so on)
Atom
Find thelanguage-bazel package
on the Atom package manager.
See also: Autocomplete for Source Code
Vim
Seebazelbuild/vim-bazel on GitHub
See also: Autocomplete for Source Code
Emacs
Seebazelbuild/bazel-emacs-mode on
GitHub
See also: Autocomplete for Source Code
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.Autocomplete for Source Code
C Language Family (C++, C, Objective-C, Objective-C++, and CUDA)
kiron1/bazel-compile-commands
run bazel-compile-commands //... in a Bazel workspace to generate a compile_commands.json file.
The compile_commands.json file enables tools like clang-tidy, clangd (LSP) and other IDEs to
provide autocomplete, smart navigation, quick fixes, and more. The tool is written in C++ and
consumes the Protobuf output of Bazel to extract the compile commands.
hedronvision/bazel-compile-commands-extractor enables autocomplete, smart navigation, quick fixes, and more in a wide variety of extensible editors, including VSCode, Vim, Emacs, Atom, and Sublime. It lets language servers, like clangd and ccls, and other types of tooling, draw upon Bazel’s understanding of how cc and objc code will be compiled, including how it configures cross-compilation for other platforms.
Java
georgewfraser/java-language-server - Java Language Server (LSP) with support for Bazel-built projects