The Prism language server speaks the Language Server Protocol and ships inside the prism
binary. Every editor that supports LSP gets the full experience with no per-editor maintenance.
What you get
- Completions — methods, modules, and even the arguments of the function you are calling.
- Go to definition — cross-file and cross-crate, including into packages.
- Rename — safe, whole-project renames of symbols.
- Diagnostics — errors and warnings stream in as you type, exactly matching the compiler.
- Hover — signatures, docs and inferred types.
- Format on save — the server reformats your file as you type, no separate command needed.
Editor support
| Editor | Setup |
|---|---|
| VS Code | Install the Prism extension from the marketplace |
| JetBrains | Install the Prism plugin |
| Neovim | vim.lsp.start({ name = "prism", cmd = { "prism", "lsp" } }) |
| Helix | Add Prism to languages.toml |
| Zed | Prism support is bundled |
Helix and Zed find the server automatically when prism is on your PATH.
Starting it manually
Editors that need explicit configuration can start the server directly:
prism lsp
The server communicates over stdio, per the LSP. Verbose logging goes to stderr:
prism lsp --log-level=debug 2> lsp.log
Architecture
The server is a library the compiler links. This is deliberate: the analysis the editor asks for and the analysis the compiler performs cannot drift apart, because they are the same code.
Note: the server is incremental — it caches module analysis across edits, so large projects stay responsive even while typing mid-keystroke.
Next: Editors.