| Scratch pad |
Create standalone AL scratch files for quick experiments (Ctrl+Shift+A N) |
| Project-aware scratch |
Add //alchemist: project to access workspace tables, codeunits, and enums |
| Run on save |
Automatically execute on save with results in milliseconds |
| Inline Message output |
Message() results appear as green ghost text next to the calling line |
| All loop values |
Loop Message() calls show all iteration values inline (Quokka-style) |
| Coverage gutters |
Green/gray/red dots in the gutter show which lines executed |
| Dimmed uncovered lines |
Lines that didn't execute are visually dimmed |
| Inline error display |
Failed assertions and errors appear as red text at the exact source line and column |
| Variable values on hover |
Hover over any variable to see its captured value |
| Test Explorer |
Tests appear in VS Code's Test Explorer with pass/fail/error states |
| Single test execution |
Run individual tests from Test Explorer instead of the full suite |
| Coverage hover tooltips |
Hover over gutter dots to see coverage status |
| Output panel |
Formatted ALchemist output with messages, errors, and coverage summary |
| Status bar |
Beaker icon shows idle/running/success/failure state at a glance |
| Iteration navigation |
Time-travel through loop iterations with CodeLens stepper, hover links, and keyboard shortcuts |
| Iteration table panel |
Dedicated WebView listing every iteration with its variable snapshot |
| Value change flash |
Inline values briefly highlight when they change between iterations |
| Theme-aware colors |
Inline decoration colors adapt to light/dark/high-contrast themes and are user-customizable |
| Auto-install |
AL.Runner is downloaded automatically on first use |
| Multi-app workspace |
Discovers every AL app across every workspace folder; Test Explorer groups by app; save routes tests via app.json dependencies |
| Precision-tier routing |
Tree-sitter symbol/ref index narrows save-triggered tests to affected apps; falls back safely on parse errors |
| Server-cached execution |
Persistent AL.Runner daemon with per-file caches; warm runs faster than cold one-shot |
| Live test results |
Test Explorer pass/fail marks update as each test completes (requires AL.Runner protocol v2) |
| Clickable stack frames |
Failure stack traces in Test Results are clickable; jump to the exact .al line |
| Native coverage rendering |
Gutter icons + Coverage View panel powered by VS Code's built-in coverage UI (Run with Coverage profile) |
| Cancel mid-run |
Stop in Test Explorer cancels the current run; daemon stays warm for the next request |