IDE¶
Ensure you are set-up with a working build on the CLI before configuring your IDE.
GitHub Codespaces¶
Web-based IDEs are great to easily work from any computer.
We recommend you use GitHub Codespaces to contribute to this project by clicking here.
This project is configured to automatically configure your Codespace with all required tools. If anything doesn’t just work “out of the box”, please create an issue. The only “it’s not 100% fully automated” currently known open issues to be aware of are:
- You must “Switch to Pre-Release Version” for the Bazel extension for Java extension
If you are missing your fancy custom Shell configuration that you have built over the last 100 years, you should set up your dotfiles for Codespaces such as e.g. this dude did in his dotfiles.
If you are hitting the “Codespace could not be created: SKU name ‘basicLinux32gb’ is not allowed for this repository” error, this actually (somewhat confusingly) indicates a billing problem. Please create an issue on the project to discuss how we can increase quota so that you can contribute.
Visual Studio Code on Web¶
You may alternatively be interested in using:
with a Remote Tunnel
e.g. your own VM in the Cloud, or to a computer at home, or perhaps even simply running and exposing a code serve-web
with your own VPN or SSH port forwarding solution (but without GitHub tunnel).
While GitHub Codespaces are built on VSC Web technologies, this project is currently known to unfortunately not work well with such non-GitHub Codespaces VSC Web environments. The bazel-vscode-java issue #94 has more background about this.
Local Visual Studio Code (VSC)¶
You must manually install the following tools locally for all VSC extensions to work:
$ go install github.com/yoheimuta/protolint/cmd/protolint@latest
$ sudo apt get install clang-format
# sudo dnf install clang-format
The code style used in this project will be enforced while typing in VSC using the extensions below. They are automatically proposed to be installed (because they are all listed in .vscode/extensions.json
). They will all also automagically pick up their options from the respective configuration files in this repository; this makes the VSC IDE and pre-commit use the same parameters for these tools.
-
.editorconfig
for normalized line endings etc. on all files -
VSC Bazel for syntax highlighting, linting and formatting
BUILD
files -
VSC Bazel for Java, by Salesforce for Java support (it’s awesome, and much better than alternatives). Check out its great Troubleshooting Guide in case of any set-up problems.
-
protolint for
*.proto
validation (this requiresprotolint
, see above) -
proto3 for
*.proto
editing -
TextProto for
*.textproto
syntax highlighting -
Clang Formatter (this requires
clang-package
, see above) for*.textproto
formatting
JetBrains IntelliJ IDEA (IJ)¶
IJ can be used as a complete alternative to VSC, or only for Java coding, with:
-
Bazel from ij.bazel.build (You have to manually change the Bazel Binary Location from the default
bazel
tobazelisk
.)
Eclipse¶
Eclipse is not actively supported by this project as an IDE.
It may work using the Bazel Eclipse Feature, but this has not been tested yet.
We recommend using VSC.
Other¶
Some people prefer coding using 🙊 hexedit
or one its derivatives 😈 such as vi
or emacs
.
You can just launch the ./test.bash
script to automatically format code while coding locally when using other IDEs.
Or contribute to this page to document how to set up your favorite editor.