Tya v0.53 Release Notes
Status: shipped.
tya versionreports0.53.0andROADMAP.mdcarries the matchingReleasedentry.
TL;DR
v0.53 promotes tya lsp from MVP to a full IDE-grade server:
cross-file definition, references, rename, range formatting, code
actions, semantic tokens, document and workspace symbols, plus
incremental document sync. Setup recipes ship for Neovim, Zed, and
Emacs. The language surface is unchanged from v0.52.
What’s new
LSP feature additions
textDocument/definitionnow followsimportstatements andmod.foomember access.textDocument/referencesreturns every occurrence, workspace-wide for top-level bindings and function-scoped for local / param.textDocument/renameproduces aWorkspaceEdithonouring the same scope rules. Conflicts are rejected with[TYA-E0933].textDocument/rangeFormattingruns the canonical formatter on the smallest top-level Stmt window enclosing the request.textDocument/codeActionoffers quick fixes forTYAL0001 unused local(line-delete) andTYAL0003 redundant if true/false(unwrap).textDocument/semanticTokens/fullemits the LSP delta encoding for a 9-type legend.textDocument/documentSymbolreturns the hierarchical outline (class → methods, module → members).workspace/symbolfilters every top-level symbol in workspace*.tyafiles by case-insensitive substring.- Incremental document sync (
TextDocumentSyncKind.Incremental) is advertised.positionEncodingis"utf-8".
New editor recipes
| Editor | Path |
|---|---|
| Neovim (nvim-lspconfig) | editors/neovim/ |
| Zed | editors/zed/ |
| Emacs (eglot / lsp-mode) | editors/emacs/ |
Each recipe is a short README plus a single drop-in config file
that points the editor at the system tya binary as the LSP server.
VS Code extension
editors/vscode/package.json is bumped to 0.53.0. The README and
manifest already pick up every new feature via
vscode-languageclient because all changes are server-side.
Manual install instructions remain identical:
cd editors/vscode
npm install
npm run compile
npx vsce package
code --install-extension tya-0.53.0.vsix
Marketplace publication (publisher registration, signed VSIX, icon, GH Actions release pipeline) is queued for v0.54+.
Compatibility
- Language surface: unchanged from v0.49 — v0.52.
tya.tomlschema: unchanged.- CLI: every existing subcommand keeps its v0.52 behaviour. All new LSP methods are additive.
Migration
Nothing required. Optional:
- Upgrade to v0.53 (
brew install komagata/tap/tyaor build from source). - Re-build the VS Code extension once with
npm run compile && npx vsce packageand install the new VSIX. (Nopackage.jsonchanges mean an old VSIX still works against the new server.) - New editor recipes:
- Neovim: copy
editors/neovim/init.lua.exampleinto your config. - Zed: merge
editors/zed/extension.json.exampleinto~/.config/zed/settings.json. - Emacs: copy
editors/emacs/setup.el.example.
- Neovim: copy
Implementation notes
- New package files under
internal/lsp/:workspace.go,references.go,rename.go,range_format.go,code_actions.go,semantic_tokens.go,document_symbols.go,workspace_symbols.go,incremental.go,finder_v2.go,protocol_v2.go. internal/checker/autofix.goexposesLintAutofixHints(prog)for the code-action handler.Workspaceis lazy — it only parses files on demand and caches the result so cross-file rename / references stay incremental after the first scan.- All new functionality is reachable through the existing
cmd/tya/lsp.gosubcommand. No CLI changes.
Tests
tests/lsp_v2_test.go adds 11 subprocess scenarios that share the
tests/lsp_helper.go harness from v0.52. The 7 original v0.52
cases continue to pass.
Looking ahead (v0.54+ candidates)
From ROADMAP.md § Future Work § Toolchain:
- VS Code Marketplace publication
prepareRename(rename preview)- Range formatting at AST slice precision
- Semantic token modifiers
- Inlay hints, call hierarchy, selection range, code lens, folding range, document link
- Toolchain track other Epics (
tya lintv3,tya taskv2,tya docv2, diagnostics pipeline migration) - Language-track Epics (raw
"inside{expr}interpolation, primitive class sugar, interface stackable trait surface, WebAssembly target)
Self-host work (ROADMAP.md § Scheduled M8 / M9 / M10) remains
deferred until the v1.0.0 prep window.