Calva Gets a Debugger

The latest version of Calva comes with a debugger! It utilizes cider-nrepl and VS Code’s debugger extension API. This work has been done as part of the Clojurists Together Q1 2020 funding period. Many thanks to them for allowing us the time to focus on adding this feature, and many thanks to the cider-nrepl creators and maintainers for providing great foundational functionality for Clojure tooling.

The debugger is still in an early stage, and more features are soon to come, but currently it supports adding breakpoints with #break and #dbg reader tags, pausing execution on those breakpoints, continuing execution, and evaluating code in the debug context (while execution is paused).

Features

Set breakpoints with #break



Instrument functions with #dbg



Continue to next breakpoint

Evaluate code in the debug context



See variable values in the debugger side pane



Upcoming features

Step over form

Step into form

Step out of form

See structured variables in the debugger side pane (currently maps and collections are just shown as strings)

See the debugger documentation for more info.

Please take this Clojure debugger for a spin, and please give us your feedback!