Skip to content

IDE

Ensure you are set up with a working build on the CLI before configuring your IDE.

Enter nix develop and run ./test.bash to verify that the setup is correct; it should complete without errors.

Because of the Nix requirement, please launch your IDE not via its usual graphical Desktop launch, but from within a nix develop shell on the CLI, where PATH is the Nix environment. This avoids many problems, like issue #1657, etc.

JetBrains IntelliJ IDEA (IJ)

Do not launch IDEA graphically via Toolbox, but from the CLI. To do this, start JetBrains Toolbox, click on Settings of IJ (in Toolbox, BEFORE starting it), and Configure... the shell scripts’ location to be a directory on your PATH (e.g., $HOME/.local/bin). Toolbox may warn that it Cannot find the specified directory in the system PATH. You can ignore this, as long as the directory is on the PATH in the nix develop shell from which you will launch IJ. Toolbox will now have put a launch script into that directory.

The required plugins are managed via the .idea/externalDependencies.xml.

Visual Studio Code (VSC)

Please launch VSC via code . in the nix develop environment, not via another starting mechanism (see the introduction of this page).

This is not using Bazel IDE integration (anymore now), but just simple “unmanaged source folders”, configured in .vscode/settings.json. Please let us know if you find any discrepancies with the build system.

The required VSC extensions are managed via .vscode/extensions.json. They will 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.

The JAR libraries in the generated/classpath directory are placed there by the tools/javac/classpath.bash script.

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.

Debug

bazelisk run //java/dev/enola/chat:demo  -- --debug
(...)
Listening for transport dt_socket at address: 5005

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.