22 jul 2026
This is a language server for Julia. I’m not 100% sure what a language server means, but it tells the editor how to do stuff like syntax highlighting, code formatting, definition lookup, linting, etc. Very helpful.
I am also using the Zed editor and fish shell.
The default Julia language server that comes with Zed has always given me trouble. I’m not sure if this is everyone’s experience. I’ve brought this upon myself by not using VS Code, so I’m not looking for any pity here. But it would be nice to be able to jump to a definition once in a while. Hence the switch to JETLS.
This was the process to set it up:
Once installed, add the jetls binary to the path. The
binary is at ~/.julia/jetls. Usually you’d do this with
$ export PATH=$PATH:~/.julia/bin/jetls
but in the fish shell I need to do
$ fish_add_path -U ~/.julia/bin/jetls
Then you can check that your shell can find it by running:
$ jetls --help
rustupWe don’t need to write Rust directly, but the Zed extension framework needs to be able to build Rust. It’s a one-line shell install; you can confirm you can run like this:
$ rustup --version
The instructions are on the README of aviatesk’s fork of
zed-julia, in the avi/JETLS branch. The link
in the header above will take you there. It boils down to:
$ git clone https://github.com/aviatesk/zed-julia.git
$ git checkout avi/JETLS
In Zed, run the zed: extensions command.
Or do cmd+X or ctrl+X.
Then click on Install Dev Extension button in the top
right. Feed it the directory you’ve cloned zed-julia into
(last step).
Play with the Zed settings to make sure the Julia LSP is enabled. There is plenty of configuration possible.
The first time JETLS sees a project it takes a while to index everything and figure out what’s going on. But then I find it pretty responsive to click around, go to definitions, etc. Even linking to external packages!