Praxis for VS CodePraxis is a small compiled language for input-shaped puzzles: it reads the file, gives you the shape you asked for, and JIT-compiles the program that walks it. This extension is the editor half. Everything the editor knows about your program arrives from the compiler over
LSP. There is no parsing and no type logic in the extension, so the editor
and It needs the
|
| Diagnostics | Every error praxis check prints, after a 150 ms pause in typing. There are no warnings — an underline is never advisory. |
| Hover | The inferred type; a method's signature and what it does; a parser constructor's signature and the type it synthesizes. |
| Completion | Methods and fields after ., enum variants in a pattern, parser atomics and constructors inside a read, names in scope elsewhere. |
| Signature help | The callee's signature and which parameter the cursor is in. |
| Inlay hints | The type of every binding the source does not annotate — and accepting one writes the annotation into the file. |
| Navigation | Go to definition, find references, document and workspace symbols. All by symbol, so two shadowed bindings never answer for each other. |
| Rename | A rename that would change what another name refers to is refused, with a sentence naming the collision. |
| Quick fixes | The machine-applicable half of a diagnostic: a misspelled constructor, name or method, and the arms a match is missing. |
| Highlighting | A TextMate grammar paints the file instantly; semantic tokens refine it once analysis has run. |
Two things worth knowing up front. Inlay hints are on — turn them off with
editor.inlayHints.enabled, which is the editor's setting and the only one.
And Praxis has no formatter: the server does not advertise formatting, so
Format Document leaves your editor doing whatever it would do by itself.
The full capability list, and what each one answers, is in Editor support.
Commands
| Command | What it runs |
|---|---|
Praxis: Run File |
praxis run <file>, with --input input.txt appended when that file sits beside the source |
Praxis: Check File |
praxis check <file> |
Praxis: Restart Language Server |
Stops and relaunches the server process |
The first two save the buffer first — praxis reads the file from disk — and
run in an integrated terminal rather than an output channel, because the crash
debugger is interactive and a write-only pane cannot answer a prompt.
Settings
| Setting | Default | |
|---|---|---|
praxis.binaryPath |
praxis |
The one path the server and both commands use. A bare name resolves on PATH. Changing it restarts the server: pointing at a different build is a relaunch, not a reconfiguration. |
praxis.trace.server |
off |
Trace the JSON-RPC traffic between VS Code and praxis lsp. |
If the server cannot start you get a message naming the command it tried and the
setting to change. It is nearly always a praxis.binaryPath pointing at nothing.
Workspace trust
praxis.binaryPath names a program to execute, and a folder you open can carry
its own settings. So the extension does not run in an untrusted workspace —
opening a folder is not consent to run what it names. Highlighting still works
there, because a grammar executes nothing; the server and the two commands wait
until you trust the folder.
Reporting something
Issues and questions: https://github.com/tljubej/praxis/issues. The
extension's source is editors/vscode/,
and DEVELOPING.md
is how to build, package and release it.
License
MIT OR Apache-2.0, at your option.