Editor integrations
Kalcite provides clients for VS Code and Zed, backed by kalcite-lsp. Install
the Kallyup developer or full profile so kalcite-lsp is available on
PATH. The server provides diagnostics, completions, hover, go-to-definition,
references, safe project-wide rename, document symbols, and workspace symbol
search for .klc projects. It also supplies lexer-backed semantic tokens for
keywords (including defer, break, and continue), types, functions, variables, numbers, and
strings; positions follow the LSP UTF-16 convention, including in documents
containing non-ASCII text. Clients send ordered incremental edits rather than
the full document on every change; malformed UTF-16 ranges are rejected before
they can corrupt the in-memory source. Completion includes language snippets for defer,
break, continue, return, if, and while; hovering defer explains its
deterministic scope-exit behavior, while break and continue explain their
loop-local cleanup.
The VS Code extension lives under editors/vscode-kalcite/. It starts
kalcite-lsp automatically for Kalcite files; configure
kalcite.languageServer.path if the binary is outside PATH. Package it with
npx @vscode/vsce package when preparing a VSIX artifact.
The dedicated Zed extension
pins the published Kalcite Tree-sitter grammar, supplies highlighting and structural queries, and
resolves kalcite-lsp from the active worktree. Clone it, then use zed:
install dev extension to install it locally. Registry publication is tracked
separately through the Zed extensions repository.
Both clients are backed by the same server and understand fixed-array loops:
the LSP completes and semantically highlights for item in items { ... }, VS
Code provides the kl-for snippet, and Zed highlights both for and in.
The shared Tree-sitter grammar parses the current control-flow surface
(defer, break, continue, if/else, while, member calls, binary expressions, and compound
assignments), so structural highlighting does not depend solely on the LSP.
The native Kalcite Editor currently hosts its window and eframe integration in Rust. Its viewport grid snap, grid-density, collision-radius, profiling, and budget policies are already compiled from KLC during the Cargo build. This is an executable migration boundary toward a KLC-led editor, not a claim that most of the editor is written in KLC yet.