PicoLode is a VS Code extension for evaluating PicoLisp code inline. It allows you to run selected code or the current line using the pil command-line interpreter and shows results directly in the editor.
- Evaluate PicoLisp selection using
Ctrl+EnterorCtrl+Shift+Enter. - Display results inline as a decoration.
- Provides functionality for displaying documentation on hover. This feature allows users to view relevant documentation when hovering over code elements, enhancing code readability and developer productivity.
pilPicoLisp interpreter must be installed and available in your PATH.- Node.js (>= 16) and npm to build the extension.
- Select PicoLisp code or place the cursor on a line.
- Press the configured hotkey (default:
Ctrl+Enterfor evaluation,Ctrl+Shift+Enterfor inline) or runEvaluate PicoLisp Selection/Evaluate PicoLisp Inlinefrom the command palette. - Optionally configure (in Settings → Extensions → PicoLisp):
picolode.pilPath— path to thepilexecutable (default:pil)picolode.timeout— evaluation timeout in milliseconds (default: 5000)
If .l files aren't recognized as PicoLisp, add to your settings:
{
"files.associations": { "*.l": "picolisp" }
}These steps help you build the extension locally, run it in the Extension Development Host and produce a .vsix for installation.
Prerequisites
- Node.js and npm
- VS Code (for debugging and running the Extension Development Host)
pilPicoLisp interpreter available on PATH
Install dependencies
npm installBuild the extension (single build)
npm run compileBuild in watch mode (rebuilds on file change)
npm run watchRun tests
npm testRun in VS Code debug host
- Open this repository in VS Code.
- Press F5 to launch the Extension Development Host. This opens a new VS Code window with the extension loaded for testing.
Package and install the extension (.vsix)
Webpack is used to produce the compiled extension files. To create a distributable VSIX you can use the vsce tool (not included in devDependencies by default):
# build production bundle
npm run package
# install vsce (if you don't have it)
npm install -g vsce
# create .vsix in the current folder
vsce package
# install the produced .vsix locally
code --install-extension picolode-0.0.1.vsixNotes
npm run packageruns webpack in production mode and prepares the compiled files.vsce packagecreates the final .vsix that can be installed or published to the Marketplace.
Short list of near-term ideas and improvements (prioritized):
- Better inline formatting — make long outputs collapsible / multi-line and add copy buttons.
- Background REPL panel — persistent REPL output window to run snippets and keep session state.
- Async execution & long-running tasks — show progress and cancel support for slow evaluations.
- Improved error handling — surface PicoLisp stack traces and map them to source lines when possible.
- CI and unit/integration tests — run tests on push and add basic integration tests for evaluation behavior.
If you'd like to contribute, pick a roadmap item, create an issue and open a PR.
Contributions are welcome. Typical workflow:
- Fork the repo, create a feature branch.
- Install deps and run the test suite locally:
npm install && npm test. - Build and verify in the Extension Development Host (F5).
- Open a PR describing the change.
If you need help building or debugging the extension locally, open an issue or ping in the PR and include your OS, Node.js version and pil path.

