Vyi for Visual Studio Code
Language support for Vyi — a small systems language with
value semantics, typed absence, and compile-time solving. Syntax highlighting
works as soon as the extension is installed. Everything else comes from the
vyi-language-server binary that ships with the Vyi toolchain.
Early alpha. The language, compiler, and this extension are under active
development.
Requirements
- Linux (amd64 or arm64). Vyi does not ship a compiler or language server
for macOS or Windows yet. On those systems the extension still highlights
.vyi / .vyipac / .vyisum files and tells you the toolchain is
Linux-only.
- The Vyi toolchain — compiler, language server, and standard library
install together:
curl -fsSL https://forgejo.roberthurst.ca/robert/Vyi/raw/branch/master/scripts/install.sh | bash
export PATH="$HOME/.local/bin:$PATH"
Pin a release with VYI_VERSION=v0.1.0 once tags exist. Full options:
Install.
If the language server is missing, the extension asks you to install Vyi
rather than failing silently. Point vyi.languageServer.path at a binary you
built from source if you are hacking on the compiler.
Features
- Diagnostics as you type, across every file in the project
- Hover — signature, resolved type, and
/// doc comment
- Completion that knows the cursor: remaining struct fields, members,
methods, and enum variants when the expected type is an enum
- Go to definition, find references, and rename (including into
the standard library)
- Quick fixes — fill missing struct fields, add missing
switch arms,
“did you mean …”, add a missing import
- Refactors — extract variable, extract function, inline variable
(extracts drop you into a rename)
- Signature help, inlay hints, semantic highlighting
- Document and workspace symbols, folding
package.vyipac — schema-aware diagnostics and key completion
- Syntax highlighting for
.vyi, .vyipac, and .vyisum
How projects are analyzed
One language-server process covers the whole workspace. It discovers every
Vyi project (a folder containing package.vyipac) under your open folders
and treats leftover .vyi files as an orphan graph. The innermost enclosing
project owns a file’s diagnostics and interactive features, so a repository
that contains several packages just works.
Set vyi.languageServer.target to the same target you build and run with
(wasm, x86-64-linux, or arm64-linux) so OS- and arch-gated code is
checked correctly. Changing the path or target restarts the server.
Settings
| Setting |
Default |
Description |
vyi.languageServer.path |
vyi-language-server |
Path to the server binary. |
vyi.languageServer.target |
wasm |
Analysis target: wasm, x86-64-linux, or arm64-linux. |
vyi.features.inlayHints |
true |
Inferred-type inlay hints. |
vyi.features.semanticHighlighting |
true |
Semantic-token coloring. |
vyi.features.diagnostics |
true |
Error and warning squiggles. |
vyi.features.codeActions |
true |
Refactors and quick fixes. |
Commands
| Command |
What it does |
| Vyi: Restart Language Server(s) |
Restarts the language server. |
| Vyi: Language Server Status |
Opens the per-program status picker. |
| Vyi: Toggle Feature… |
Check or uncheck the feature toggles above. |
| Vyi: Install Toolchain… |
Copies the install command and links to the docs. |
Extract refactors invoke rename automatically — no extra step.
Known limitations
- Vyi itself is Linux-only today. Non-Linux editors get highlighting, not
language intelligence.
- Workspace-symbol search is unavailable in the web playground (Monaco has no
workbench symbol search).
- With a Vyi project nested inside another Vyi project, the workspace-symbol
picker can list a nested symbol twice.
License
Apache-2.0.
The Vyi name and branding are reserved; the license covers the software, not
the trademark.
Site: vyilang.org ·
Source: forgejo.roberthurst.ca/robert/Vyi