Skip to content

Language server

Run wiz c lsp --stdio. The server implements initialize, open/change/close, combined diagnostics, hover, definition, references, completion, signature help, document symbols, rename, semantic tokens, document/range formatting, and code actions. It uses Content-Length JSON-RPC framing and exits when stdin closes.

Clients should identify both .wiz and .d.wiz as wiz and resend workspace configuration when config.wiz.json changes.

The transport counts UTF-8 bytes, so non-ASCII source and client names do not desynchronize framing. Shutdown and exit are handled without leaving the server process behind. A configuration file change reloads formatter and linter settings, then republishes diagnostics for every open document.

Content-Length: 58\r\n
\r\n
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}

The LSP package is transport-only: cross-file rename, symbol ownership, signature help, and quick-fix generation remain in @wiz-sh/language-service. Completions and signature help include the bundled shell, coreutils, Git, curl, Docker, systemctl, jq, SSH, and related ambient command declarations.