Editors¶
Editor matrix¶
| Editor | Best for | Agent support | Status |
|---|---|---|---|
| VS Code | full truST workflow | strongest | primary |
| Neovim | LSP-heavy editing | external agents and shell flows | supported |
| Zed | lighter GUI editing | external agents and shell flows | supported |
| Browser IDE | runtime-hosted editing and demos | product/web flows | available |
| Browser HMI | operator-facing browser use | not an authoring surface | available |
VS Code¶
Use VS Code when you want the full integrated loop in one place:
- diagnostics
- formatting
- code actions
- runtime panel
- debugger
- ST tests
- HMI preview
- PLCopen import/export commands
The commands most users start with are:
Structured Text: New ProjectStructured Text: Open Runtime PanelStructured Text: Start DebuggingStructured Text: Run All TestsStructured Text: Open HMI PreviewStructured Text: Import PLCopen XML
Read these next:
Neovim¶
Use Neovim when you want a lighter client around the same trust-lsp surface.
Supported baseline:
- diagnostics
- hover
- completion
- formatting
- go to definition
Reference files in the repo:
editors/neovim/lspconfig.luaeditors/neovim/README.md
Zed¶
Use Zed when you want a lighter GUI editor with the same baseline LSP feature set as Neovim.
Reference files in the repo:
editors/zed/settings.jsoneditors/zed/README.md
Non-VS-Code setup guide¶
The Neovim/Zed setup guide is rendered below:
This guide documents the official non-VS-Code editor setup for trust-lsp.
It covers the Deliverable 6 baseline:
- Neovim reference configuration
- Zed reference configuration
- Core LSP workflow validation scope
Scope¶
Supported in this guide:
- Diagnostics (
textDocument/publishDiagnostics) - Hover (
textDocument/hover) - Completion (
textDocument/completion) - Formatting (
textDocument/formatting) - Go to definition (
textDocument/definition)
Out of scope for this editor expansion phase:
- VS Code runtime panel
- VS Code debugger command UX
Prerequisites¶
trust-lspinstalled and available onPATH.- Workspace with Structured Text files (
.stand/or.pou).
Neovim Setup¶
Reference files:
editors/neovim/lspconfig.luaeditors/neovim/README.md
Copy the reference config to ~/.config/nvim/lua/trust_lsp.lua and then load it.
Minimal integration pattern:
local trust_lsp = require("trust_lsp")
trust_lsp.setup()
The reference config registers a trust_lsp server, enables omnifunc
completion, and installs keymaps for hover, definition, references, and
formatting.
Zed Setup¶
Reference files:
editors/zed/settings.jsoneditors/zed/README.md
Install by copying the settings file to .zed/settings.json in your workspace.
The profile binds the Structured Text language to trust-lsp, enables language
server formatting, and enables format-on-save.
Validation Contract¶
The editor-expansion smoke gate is:
scripts/check_editor_integration_smoke.sh
The gate validates:
- Neovim and Zed reference configs exist and contain required keys.
- Core LSP workflow test coverage remains green for:
- diagnostics
- hover
- completion
- formatting
- definition
This smoke gate runs in CI as the Editor Expansion Smoke job.
Browser IDE¶
Use the browser IDE when you want runtime-hosted editing or a web-delivered experience.
Start it with:
trust-runtime ide serve --project ./my-plc
Use it for:
- quick onboarding without editor setup
- demos and shared walkthroughs
- browser-hosted config/ST editing
Detailed guide:
This guide covers the product Web IDE hosted by trust-runtime at /ide.
It is separate from the static docs/demo/ showcase.
Scope¶
The /ide surface is the runtime-hosted browser IDE for real project work:
- project selection/open flow (including no-bundle startup)
- workspace tree navigation
- file create/rename/move/delete
- multi-tab editing with save/format/build/test/validate workflows
- language intelligence (diagnostics, hover, completion, definition, references, rename)
Start the Web IDE¶
- Standalone IDE mode (no runtime cycle):
trust-runtime ide serve --project /path/to/project --listen 127.0.0.1:18080 - Runtime-hosted mode:
trust-runtime run --web --project /path/to/project - Open:
http://127.0.0.1:18080/ide
Notes:
trust-runtime config-ui serve ...is still accepted as a deprecated alias foride serve.- If startup has no active project, use the IDE "Open Folder" flow to select a workspace root.
Core API Surface¶
Session/capability:
GET /api/ide/capabilitiesPOST /api/ide/sessionGET /api/ide/projectPOST /api/ide/project/open
Workspace/filesystem:
GET /api/ide/treePOST /api/ide/fs/createPOST /api/ide/fs/renamePOST /api/ide/fs/movePOST /api/ide/fs/deleteGET /api/ide/fs/audit
Documents/language:
GET /api/ide/filesGET /api/ide/filePOST /api/ide/filePOST /api/ide/diagnosticsPOST /api/ide/hoverPOST /api/ide/completionPOST /api/ide/definitionPOST /api/ide/referencesPOST /api/ide/renamePOST /api/ide/formatGET /api/ide/symbols
Build/test/validation:
POST /api/ide/buildPOST /api/ide/testPOST /api/ide/validateGET /api/ide/task
Health/telemetry:
GET /api/ide/healthPOST /api/ide/frontend-telemetry
Validation and Evidence¶
Implementation contract/spec:
docs/internal/runtime/trust-runtime-web-ide-full-specification.md
Checklist and evidence:
docs/internal/testing/checklists/web-ide-full-implementation-checklist.mddocs/internal/testing/evidence/web-ide-full-checklist-evidence-2026-02-15.md
Accessibility/collaboration references:
docs/guides/WEB_IDE_ACCESSIBILITY_BASELINE.mddocs/guides/WEB_IDE_COLLABORATION_MODEL.md
Browser HMI¶
Use Browser HMI when you were given a runtime URL and only need the operator surface.
Start here: