| --- |
| layout: documentation |
| title: IDE integration |
| category: getting-started |
| --- |
| |
| # 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](https://slack.bazel.build) or email |
| the [bazel-dev](https://groups.google.com/forum/#!forum/bazel-dev) mailing list. |
| |
| ## IDEs and editors |
| |
| ### IntelliJ, Android Studio and CLion |
| |
| [Official plugin](http://ij.bazel.build) for IntelliJ, Android Studio, and |
| CLion. The plugin is [open source](https://github.com/bazelbuild/intellij). |
| |
| 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](https://plugins.jetbrains.com/plugin/9185-android-studio-with-bazel) |
| * [IntelliJ |
| plugin](https://plugins.jetbrains.com/plugin/8609-intellij-with-bazel) |
| * [CLion plugin](https://plugins.jetbrains.com/plugin/9554-clion-with-bazel) |
| |
| ### Xcode |
| |
| [Tulsi](https://tulsi.bazel.build) and |
| [XCHammer](https://github.com/pinterest/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](https://marketplace.visualstudio.com/items?itemName=BazelBuild.vscode-bazel). |
| The plugin is [open source](https://github.com/bazelbuild/vscode-bazel). |
| |
| |
| ### Atom |
| |
| Find the [`language-bazel` package](https://atom.io/packages/language-bazel) on |
| the Atom package manager. |
| |
| ### Vim |
| |
| See [`bazelbuild/vim-bazel` on GitHub](https://github.com/bazelbuild/vim-bazel) |
| |
| ### Emacs |
| |
| See [`bazelbuild/bazel-emacs-mode` on |
| GitHub](https://github.com/bazelbuild/emacs-bazel-mode) |
| |
| ### Visual Studio |
| |
| [Lavender](https://github.com/tmandry/lavender) is an experimental project for |
| generating Visual Studio projects that use Bazel for building. |
| |
| ### Eclipse |
| |
| [Bazel Eclipse Feature](https://github.com/salesforce/bazel-eclipse) 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](https://github.com/bazelbuild/bazel-watcher) is a tool for |
| building Bazel targets when source files change. |
| |
| ## Building your own IDE plugin |
| |
| Read the [**IDE support** blog |
| post](https://bazel.build/blog/2016/06/10/ide-support.html) to learn more about |
| the Bazel APIs to use when building an IDE plugin. |