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