Smalltalk for Visual Studio CodeA complete, offline IDE experience for GNU Smalltalk — IntelliSense, refactoring, diagnostics, and navigation, with no image and no Rich language support for Smalltalk ( FeaturesEverything here works offline with no
Language intelligence — no
|
| Setting | Default | Description |
|---|---|---|
smalltalk.gnuSmalltalkPath |
"" |
Absolute path to the gst executable. If empty, gst is looked up on your PATH. |
smalltalk.completion.kernelLibrary |
auto |
Kernel-completion source: auto (installed kernel, else bundled), bundled (GNU Smalltalk 3.2.5 reference), or off (workspace symbols only). Active source is shown in the status bar. |
smalltalk.completion.kernelPath |
"" |
Optional path to a GNU Smalltalk kernel source directory (used when kernelLibrary is auto). Auto-discovered if empty. |
smalltalk.format.indentSize |
4 |
Spaces per indent level when formatting (tabs vs. spaces follow editor.insertSpaces). |
smalltalk.format.cascades |
align |
Cascade layout — align (one segment per line) or preserve. |
smalltalk.format.keywordWrap |
100 |
Wrap a keyword message one-keyword-per-line past this column (0 disables). |
smalltalk.format.blockStyle |
preserve |
Block/method/class body layout — preserve your line breaks, or expand to one statement per line. |
smalltalk.trace.server |
off |
Log the LSP client/server communication (off / messages / verbose). |
Formatting is always available — it runs only on your format gestures (Format Document / Format Selection, or
editor.formatOnSave) and is whitespace-only, so it never changes your code.
Commands
Available from the Command Palette (Ctrl/Cmd+Shift+P) and the editor right-click menu on a Smalltalk file:
| Command | Description |
|---|---|
| Smalltalk: Run Current File | Save and run the active .st / .gst file with GNU Smalltalk in the integrated terminal. |
| Smalltalk: Senders of… | Find every send of the selector under the cursor (workspace ∪ kernel). |
| Smalltalk: Implementors of… | Find every implementor of the selector under the cursor (workspace ∪ kernel). |
Privacy & Workspace Trust
- No telemetry, fully offline. The extension performs no network I/O and collects no telemetry — your code never leaves your machine. This is enforced by a guard test in CI.
- Workspace Trust. All language intelligence works in Restricted Mode. Because Run Current File executes code with
gst, it is disabled until you trust the workspace, and a workspace-scopedsmalltalk.gnuSmalltalkPathis ignored while untrusted.
Troubleshooting
gstnot found — install GNU Smalltalk and ensuregstis on yourPATH, or setsmalltalk.gnuSmalltalkPathto its absolute path (e.g./usr/local/bin/gst, orC:\Program Files\GnuSmalltalk\gst.exe). Only Run Current File needs it.- No highlighting — confirm the file has a
.st/.gstextension and the language mode (bottom-right) is Smalltalk; reload the window if needed. - Semantic colors missing — set
editor.semanticHighlighting.enabledtotrue(some themes default it off).
More help: the GitHub issues page.
Contributing
Contributions are welcome! This project follows a spec-driven process — see the Contribution Guide and the Roadmap. Bug reports and feature requests are best filed with the issue templates.
Feedback
File issues and ideas on the GitHub issues page. If the extension helps you, a Marketplace rating is much appreciated.
License
MIT.




