Visual Studio Code
Devbox Extension
Devbox has an accompanying VSCode extension that makes the experience of integrating your devbox environment in VSCode much simpler.
Syncing VSCode with Devbox shell
Follow the steps below to have VSCode's environment be in sync with Devbox shell:
- Install Devbox's VSCode extension
- Open a project that has a devbox.json file in VSCode
- Open command palette in VSCode (cmd+shift+p) and type:
Devbox: Reopen in Devbox shell environment
- Press Enter and wait for VSCode to reload.
- The newly opened VSCode is now integrated with the environment defined your devbox.json. You can test it by checking if packages defined in devbox.json are available in VSCode integrated terminal.
Keep in mind that if you make changes to your devbox.json, you need to re-run Step 3 to make VSCode pick up the new changes.
NOTE: This integration feature requires Devbox CLI v0.5.5 and above installed and in PATH. This feature is in beta. Please report any bugs/issues in Github or our Discord.
NOTE2: This feature is not yet available for Windows and WSL.
Automatic Devbox shell in VSCode Terminal
Devbox extension runs devbox shell
automatically every time VSCode's integrated terminal is opened, if the workspace opened in VSCode has a devbox.json file.
This setting can be turned off in VSCode's settings. Simply search for devbox.autoShellOnTerminal
in settings or add the following to VSCode's settings.json:
"devbox.autoShellOnTerminal": false
Note that running devbox shell
is not necessary if VSCode is reopened in Devbox shell environment via the steps described in Syncing VSCode with Devbox shell
Direnv Extension
Direnv is an open source environment management tool that allows setting unique environment variables per directory in your file system. For more details on how to set it and integrate it with Devbox visit our Direnv setup guide.
Once Direnv is installed and setup with Devbox, its VSCode extension can also be used to integrate the environment defined in your devbox.json to VSCode. To do that follow the steps below:
- Install Direnv (link to guide)
- Setup Devbox shell with Direnv (link to guide)
- Install Direnv's VSCode extension
- Open your Devbox project in VSCode. Direnv extension should show a prompt notification to reload your environment.
- Click on reload.
Windows Setup
Devbox CLI is not supported on Windows, but you can still use it with VSCode by using Windows Subsystem for Linux (WSL). If you've set up WSL, follow these steps to integrate your Devbox shell environment with VSCode:
- Install Devbox in WSL.
- Navigate to your project directory. (
C:\Users
is/mnt/c/Users/
in WSL). - Run
devbox init
if you don't have a devbox.json file. - Run
devbox shell
- Run
code .
to open VSCode in Windows and connect it remotely to your Devbox shell in WSL.
Manual Setup
VS Code is a popular editor that supports many different programming languages. This section covers how to configure VS Code to work with a devbox Java environment as an example.
Setting up Run and Debugger
To create a devbox shell make sure to have devbox installed. If you don't have devbox installed follow the installation guide first. Then follow the steps below:
devbox init
if you don't have a devbox.json in the root directory of your project.devbox add jdk
to make sure jdk gets installed in your devbox shell.devbox shell -- 'which java
to activate devbox shell temporarily and find the path to your executable java binary inside the devbox shell. Copy and save that path. It should look something like this:/nix/store/qaf9fysymdoj19qtyg7209s83lajz65b-zulu17.34.19-ca-jdk-17.0.3/bin/java
- Open VS Code and create a new Java project if you don't have already. If VS Code prompts for installing Java support choose yes.
- Click on Run and Debug icon from the left sidebar.
- Click on create a launch.json link in the opened sidebar. If you don't see such a link, click on the small gear icon on the top of the open sidebar.
- Once the
launch.json
file is opened, update theconfigurations
parameter to look like snippet below:Update the values in between < and > to match your project and environment.{
"type": "java",
"name": "Launch Current File",
"request": "launch",
"mainClass": "<project_directory_name>/<main_package>.<main_class>",
"projectName": "<project_name>",
"javaExec": "<path_to_java_executable_from_step_4>"
} - Click on Run and Debug or the green triangle at the top of the left sidebar to run and debug your project.
Now your project in VS Code is setup to run and debug with the same Java that is installed in your devbox shell. Next step is to run your Java code inside Devbox.
Setting up Terminal
The following steps show how to run a Java application in a devbox shell using the VS Code terminal. Note that most of these steps are not exclusive to VS Code and can also be used in any Linux or macOS terminal.
- Open VS Code terminal (
ctrl + shift + ~
in MacOS) - Navigate to the projects root directory using
cd
command. - Make sure
devbox.json
is present in the root directoryls | grep devbox.json
- Run
devbox shell
to activate devbox shell in the terminal. - Use
javac
command to compile your Java project. As an example, if you have a simple hello world project and the directory structure such as:You can use the following command to compile: to compile:my_java_project/
-- src/
-- -- main/
-- -- -- hello.javajavac my_java_project/src/main/hello.java
- Use
java
command to run the compiled proect. For example, to run the sample project from above:cd src/
java main/hello
If this guide is missing something, feel free to contribute by opening a pull request in Github.