Structurizr editor tooling built around the strz LSP, linter built on top of a Tree-sitter grammar for .dsl.
- Use Structurizr in Zed -> start with Using
strzwith Zed today - Parse Structurizr DSL directly in Rust -> jump to Using the grammar directly
- Contribute to the grammar, analysis layer, or LSP -> start with
CONTRIBUTING.md - Understand the current LSP architecture and roadmap -> start with
docs/lsp/README.md
Today the most reliable setup is local and explicit: install a Rust toolchain, build strz, then point Zed at that binary.
- Build the binary:
cargo build -p strz --bin strz --release- Verify the binary works:
./target/release/strz check your-workspace.dsl
./target/release/strz server- Install the
zed-structurizrextension.
Note
The extension currently needs to be installed manually as it is pre-release.
In the future the extension will download strz if not installed on the system.
- Point Zed at it:
{
"lsp": {
"strz-lsp": {
"binary": {
"path": "~/path/to/tree-sitter-structurizr/target/release/strz"
}
}
}
}- syntax, include, and bounded semantic diagnostics
- document symbols
- keyword/directive and style-property completion
- hover for the current bounded identifier families, with source-derived metadata summaries
- go-to-definition, find-references, and type-definition for the currently supported reference shapes
- directive path links and path-opening fallbacks
this- selector-style references such as
system.api - named dynamic relationship reference sites
- rename, workspace symbols, semantic tokens, and code actions
For deeper status, delivery, and configuration detail, continue with:
docs/lsp/00-current-state.mddocs/lsp/03-delivery/roadmap.mddocs/lsp/03-delivery/zed-extension-language-server-wiring.md
For grammar, analysis, LSP, benchmarking, and release workflow, start with CONTRIBUTING.md.
For the current LSP architecture, status, and doc map, start with docs/lsp/README.md.
Original code in this repository is available under either the MIT License (LICENSE-MIT) or the Apache License, Version 2.0 (LICENSE-APACHE).
This repository also includes material copied or adapted from the Apache-2.0 licensed Structurizr DSL project in structurizr/structurizr, predominantly consisting of checked-in .dsl samples and fixtures.
These consist of:
- Structurizr DSL corpus material under
crates/strz-grammar/test/corpus/ - General Structurizr DSL fixtures under
fixtures/ - LSP-specific single-document fixtures under
crates/strz-lsp/tests/fixtures/ - Multi-file workspace fixtures under
tests/lsp/workspaces/
- Structurizr DSL overview: https://docs.structurizr.com/dsl
- Structurizr DSL language reference: https://docs.structurizr.com/dsl/language
- Upstream Structurizr repository: https://github.com/structurizr/structurizr