Umple language support for the Zed editor, providing syntax highlighting, diagnostics, code completion, and go-to-definition for .ump files.
The extension is not yet available on the Zed marketplace. For now, install it manually as a dev extension:
-
Clone this repo:
git clone https://github.com/umple/umple.zed.git
-
In Zed, open the command palette (
Cmd+Shift+P) and run zed: install dev extension -
Select the
umple.zeddirectory
The extension automatically downloads the LSP server and Umple compiler — no manual setup required beyond the clone.
- Rust (via rustup, not Homebrew rust — needed to compile the dev extension)
- Node.js 18+ (for running the LSP server)
- Java 11+ (optional — needed for diagnostics from the Umple compiler)
- Syntax highlighting via tree-sitter grammar
- Diagnostics from UmpleSync compiler
- Code completion with context-aware keyword suggestions
- Go-to-definition for classes, interfaces, traits, enums, attributes, methods, state machines, states, associations, mixsets, requirements, and
usestatements - Outline view showing classes, methods, state machines, and more
- Auto-indentation for blocks
The extension automatically installs umple-lsp-server from npm and downloads umplesync.jar for compiler diagnostics. The server is launched via Node.js in --stdio mode.
You can adjust certain settings using Settings ... / Open Settings (cmd ,) or by editing the settings.json file.
By default lines of Umple code that have errors or warnings are underlined; you can see the error or warning at the bottom of the screen if you click on the underlined text.
However, if you would like such messages from the Umple compiler to appear inline (on the line where each problem occurs), then you can change the Languages & Tools / Diagnostics / Enabled setting to be true. You can also do this by adding the following to the settings.json file.
{
"diagnostics": {
"inline": {
"enabled": true
}
}
}
For development, you can override the auto-downloaded server with a local build. Add to your Zed settings.json (Cmd+,):
{
"lsp": {
"umple-lsp": {
"settings": {
"serverPath": "/path/to/umple-lsp"
}
}
}
}This points to a locally cloned and built umple-lsp repository.
Since this is installed as a dev extension, pull the latest changes and Zed will pick them up:
cd umple.zed
git pullThen restart Zed or reload the extension.
Zed compiles extensions to WebAssembly (wasm32-wasip2), which requires the Rust toolchain from rustup. Homebrew's rust package only includes the native target and can't cross-compile to WASM.
# Remove Homebrew rust if installed
brew uninstall rust
brew install rustup
# Or install rustup directly via [rustup](https://rustup.rs/)Check View > Toggle Language Server Logs in Zed for errors. Common issues:
- Node.js not found: Install Node.js 18+ and ensure it's on your PATH
- npm install failed: Check internet connection, restart Zed to retry
Diagnostics require Java 11+. Check the LSP logs (View > Toggle Language Server Logs) for errors related to umplesync.
MIT