One ships project-aware integrations for VS Code and Zed. Both are thin clients
over one lsp and the same versioned lifecycle commands used by the CLI; an
editor never becomes another project model or source of semantic truth.
Open the project, not an isolated file
Open the directory containing one.one, keep the verified one installation
on PATH, and let the editor discover the nearest explicit project boundary.
The language client starts:
one lsp --workspace <project-root>VS Code may set one.cli.path to the selected One executable. Its separate
one.lsp.path setting is only for a dedicated syntax-server fallback; leaving
it empty keeps project resolution, embedded implementation tooling, and exact
lock evidence available through the CLI-hosted server. Zed likewise launches
one lsp over standard input and output.
Work from one exact snapshot
Completion, hover, diagnostics, formatting, semantic tokens, references, and
definition navigation are bound to the open source revision, nearest
one.one, selected root, and exact one.lock. They do not query a newer
registry or infer an implementation language from body text.
Go to definition follows authored names into their canonical owner contracts,
package exports, language rules, normalizers, implementation claims, generated
SDK source maps, plans, artifacts, grants, receipts, and evidence. Meaning that
has no literal project file opens as a read-only virtual document under
.one/vfs/; those documents are disposable projections, never editable source
of truth.
An implementation body receives language-specific highlighting and analysis
only after its exact using profile and locked tooling admission match the
current claim. Rust and TypeScript public boundaries compose with their native
language tooling instead of fabricating .one definitions for private code.
Edit malformed source honestly
The lossless parser keeps incomplete or malformed bytes as the current authored state. Intact local references may still navigate, but the editor never shows an older valid normalized value as though it described newer invalid text. Fix the reported source error, save, and let the exact project check refresh the semantic projection.
Formatting applies only after strict envelope acceptance. It canonicalizes System IDL presentation while preserving implementation-body bytes until that body's selected profile formatter is separately admitted.
Use structured projections safely
VS Code can reopen a supported item as a synchronized form, table, graph, or combined view. An edit proposes a bounded patch against the exact source revision, reparses every affected input, reruns the required owner checks, and commits one ordinary undoable workspace edit only if the base revisions still match. If current source cannot be represented faithfully, the projection becomes read-only and the lossless source view remains available.
Lifecycle tasks, the One sidebar, MCP discovery, terminal TUI, and shell all
call the same public operations. A cached badge or editor output filename is
never lifecycle evidence; restore work from an exact plan: or operation:
reference with ordinary one inspect.