WalkLang Professional Tooling
WalkLang includes first-party tooling for normal editor and documentation 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
Install the extension during local development:
cd editors/vscode
npx @vscode/vsce package
code --install-extension walklang-0.1.0.vsix
The VS Code package is syntax-only in the Phase 11 port candidate so the repository contains no JavaScript extension runtime. Run walk lsp manually or wire it through your editor's native LSP configuration.
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.
Official Tools
walktop is the first official standalone WalkLang-built tool. Its source lives under tools/walktop/, and it builds into its own native command instead of a Go-side walk subcommand.
walk build --mode release --warnings=error tools/walktop/src/main.walk -o build/walktop
NO_COLOR=1 build/walktop --once --fixture tools/walktop/testdata/basic
The normal source install and release-artifact flows build walktop through the C++/C walk compiler and install it beside walk.
C++/C Compiler
The systems compiler port now builds the repo-local walk executable from C++/C sources:
make walk WALK_VERSION=v6.1.0
./build/walk version
./build/walk help
make test
As of Phase 11 of the systems compiler port, walk supports the current compiler, project/package, formatter, docs, debug-map, LSP initialize, diagnostics/formatting, REPL, static docs-site generation, and walktop build/test/install/release paths without a Go reference implementation.
Non-Goals
Professional tooling does not add:
JetBrains plugin implementation
step-through debugger adapter
generated C source maps
remote package registry integration
new language syntax