VS Code support for Phel, a functional Lisp that compiles to PHP.
- Syntax highlighting for every literal the Phel reader accepts — characters, regex literals, radix / BigInt / BigDecimal / ratio numbers,
##Inf/##NaN, gensyms, tagged literals, reader conditionals, metadata tags. - Navigation that understands scope — go-to-definition, find-references, rename, hover and signature help resolve a local to its own binding, so renaming a parameter never touches a same-named global.
- Completion over special forms, macros, core and workspace symbols, with docs and call snippets. Understands
alias/…and the(ns …)form, and can auto-add a missing:require. - Outline & workspace symbols for every defining form, each with a matching icon.
- Diagnostics via
phel lint, formatting viaphel format, both on save. - Refactorings (
Ctrl+.) — thread / unwind, cycle collection delimiters, add missing:require. - REPL and nREPL client, with inline evaluation results and namespace reloading.
- Test Explorer + CodeLens for
deftest, with per-test results and coverage. - Paredit — slurp / barf / raise / wrap / drag / splice / kill, form-aware folding and expand-selection.
- Debugger with real breakpoints in
.phelfiles, via Xdebug and source maps. - 60 snippets, plus semantic highlighting and unused-local hints.
Optionally delegates to Phel's own language server (phel lsp, off by default) for compiler-backed intelligence including PHP interop. See settings.
Marketplace: https://marketplace.visualstudio.com/items?itemName=Phel-Lang.phel-lang
Open Extensions (Cmd+Shift+X), search "Phel Lang", click Install. Or:
code --install-extension Phel-Lang.phel-langRequires VS Code 1.88+.
The extension expects the Phel CLI at vendor/bin/phel (Composer default). For other layouts, set phel.executablePath once in .vscode/settings.json:
Per-subsystem overrides (phel.diagnostics.command, phel.format.command, phel.test.command, phel.repl.command) take precedence when set. Full settings reference: docs/settings.md.
Full docs live in docs/ — installation, syntax, completion & snippets, REPL & paredit, refactoring, debugging, taps, settings, troubleshooting.
Contributing: docs/CONTRIBUTING.md. Release history: CHANGELOG.md.
{ "phel.executablePath": "bin/phel" }