WalkLang v4 Professional Tooling

v4 makes WalkLang usable from normal editor workflows without changing the language surface.

Language Server

Start the language server:

walk lsp

The server speaks JSON-RPC over stdio and supports:

document diagnostics
format document
hover type info
go to definition
find references
completion
rename symbol

Diagnostics reuse the compiler parser, module loader, package cache checks, and checker. Open files are checked using their project context when a walk.toml is available.

VS Code

The first-party VS Code extension scaffold lives in:

editors/vscode/

It contributes:

.walk file association
TextMate syntax highlighting
editor indentation/comment rules
WalkLang LSP startup through walk lsp

Install the extension during local development:

cd editors/vscode
npm install
npx @vscode/vsce package
code --install-extension walklang-0.1.0.vsix

The extension expects walk on PATH. Override the server binary with:

{
  "walklang.serverPath": "/absolute/path/to/walk"
}

Neovim

Neovim support lives in:

editors/neovim/

It includes:

ftdetect/walk.vim
syntax/walk.vim
ftplugin/walk.vim

Use the README in that directory for a minimal vim.lsp.start setup that runs walk lsp.

Formatter Integration

Editor formatting calls the same formatter as:

walk fmt <source.walk>

Project formatting still works from the project root:

walk fmt

Project-Wide Check

Inside a project, the editor and command line share the same project search behavior:

walk check --warnings=error

The project check validates the configured entry file, tests/*_test.walk, local modules, and locked package dependencies.

Docs Generator

Generate Markdown API documentation:

walk docs src/main.walk
walk docs -o docs/api.md src/main.walk

Generate a machine-readable docs index:

walk docs --format json -o docs/api.json src/main.walk

Require structured /// docs for every generated public symbol:

walk docs --strict -o docs/api.md src/main.walk
walk docs --strict --format json -o docs/api.json src/main.walk

Inside a project, omit the source file to document the configured entry:

walk docs -o docs/api.md

The generator includes loaded user modules, top-level structs, functions, and exp: exports. By default it remains compatible with signature-only sources. In strict mode, public symbols need structured comments with Summary, Example, and Since; functions with parameters need Params, and non-void functions need Returns.

Debugger Foundation

Generate a deterministic source symbol map:

walk debug-map src/main.walk
walk debug-map -o build/debug-map.json src/main.walk

The map records source files, symbol names, symbol kinds, and line/column locations. It is a foundation for debugger adapters and generated-C source mapping in later backend work.

Non-Goals

v4 does not add:

JetBrains plugin implementation
step-through debugger adapter
generated C source maps
remote package registry integration
new language syntax