Editor support
The VS Code preview extension provides syntax highlighting, comments, brackets/quotes, snippets, and an opt-in client for the Zy language server. It supports unsaved-file diagnostics, formatting, hover, completion, and definition navigation. It does not execute Zy programs or collect telemetry. The language client follows the VS Code language-server model.
Install the bundled extension from the repository root:
.\editors\vscode\install.ps1
Reload VS Code afterward. Colors include function names, parameters, variables, and backend namespaces and follow the active theme. Applications do not need extension source, node_modules, or a sibling language checkout.
For extension development, build with npm run build in editors/vscode, then
open a development window from the repository root:
code --extensionDevelopmentPath=./editors/vscode ./examples/modules/main.zy
Install source dependencies with npm ci --ignore-scripts for extension development; the installed VSIX already bundles the language client. See the setup guide for executable configuration and commands. The publisher identifier is provisional, and the extension has not been published. Tests run the real TextMate/Oniguruma tokenizer, mocked lifecycle checks, and a real isolated VS Code extension host. Windows visual review covers light/dark themes and hover/formatting; see the review record.
For other editors, the TextMate grammar at editors/vscode/syntaxes/zy.tmLanguage.json can be adapted to their grammar-loading conventions. The current tokenizer highlights numeric/IP/CIDR shapes, not semantic validity.
Diagnostic integration
Use zy check --json path/to/file.zy and the diagnostic schema for saved-file checks. It reports errors in dependencies without executing scripts. The CLI formatter is described in tooling.
The language server uses the same frontend and module loader, with in-memory overlays, document versions, cancellation, UTF-16 conversion, dependency invalidation, and stale-diagnostic clearing. It runs as zy lsp; VS Code starts it only on command or after the user enables automatic startup in a trusted workspace. Lexical scope resolution supplies hover/completion/navigation without executing source. Dynamic runtime members and types are not inferred.
Remaining editor acceptance
- Collect feedback from general automation users using the trial protocol.
- Review accessibility and presentation across additional themes/platforms.
- Choose a publisher identity and package/distribute the extension.