GitHub

TypeScript Intelligence

Loxel runs a dedicated language server per worktree and wires it directly into Monaco. You get hover docs, go-to-definition, completions, rename, and more — isolated per context, with no cross-worktree interference.


Per-worktree language server

Each worktree gets its own language server subprocess. Switching worktrees switches language servers. There is no shared server state between worktrees — if one worktree is using an older TypeScript config or a different version of your packages, it does not affect any other worktree’s language server.


Supported features

Feature Description
Hover Type information and JSDoc for any symbol
Go-to-definition Jump to the declaration of any symbol
Find references List all usages across the project
Completions Context-aware autocompletion as you type
Rename Rename a symbol and update all references
Code actions Quick fixes, imports, and refactors
Inlay hints Inline type annotations and parameter names
Signature help Function parameter hints while typing a call
Document symbols Symbol outline for the current file
Folding ranges Collapse functions, blocks, and regions

Cmd+Click on any symbol — or press — to jump to its definition. The target opens in a new editor tab. There is no inline peek; definitions always open as a full tab.


Unused symbols

Symbols flagged as unused by the language server are dimmed in the editor. This uses Monaco’s MarkerTag.Unnecessary — the same visual treatment as VS Code. TypeScript emits these diagnostics automatically; no extra configuration required.


TypeScript server

Loxel uses the official TypeScript 7 native compiler and language server (tsc --lsp -stdio). The same runtime provides diagnostics, completions, navigation, refactors, and other editor features.


Other language servers

Loxel runs language servers for four other languages. Each one is independent of the TypeScript backend.

Language When it starts File types
YAML Always active (global singleton) .yml, .yaml
Terraform First .tf, .tfvars, or .hcl file opened .tf, .tfvars, .hcl
Docker First dockerfile opened dockerfile, dockerbake
Python First .py or .pyi file opened .py, .pyi

YAML is a singleton that starts with loxel and stays running. The Terraform, Docker, and Python servers are lazy — they spawn the first time you open a matching file and disconnect automatically when no matching files remain open. You do not need to configure anything to get them; they are available whenever you open a supported file type.


See also