scope-capture

Step into the shoes of your code

at the REPL

Valentin Waeselynck

@val_waeselynck

What is scope-capture?

  • Tooling as a library #lisp
  • For easing REPL-aided development / debugging in Clojure(Script)
  • By recording & restoring the context(*) of a code expression

 

(*) context: runtime bindings of local names

Demo

There's more

  • Sub-REPLs (clojure.main, nREPL)
  • Breakpoints
  • Custom notifications

How is it useful?

Even more tangible programs:

  • Much faster debugging
  • Ad hoc exploration
  • Accessibility:
    • for Clojure beginners
    • for new developers on the team
    • for occasional maintenance
  • Opportunities for more tooling (IDE integrations etc.)

Comparison to other tools

  • debuggers, loggers, tracers are useful for observation (witnessing execution)
  • scope-capture is useful for intervention / improvisation (switching to manual mode)
  • Closest to CIDER, Dirac
  • Portable (CLJS), customizable

Thanks!

Valentin Waeselynck

@val_waeselynck

scope-capture @ DCD 2018

By Val Waeselynck

scope-capture @ DCD 2018

Presenting the scope-capture library at Dutch Clojure Day 2018

  • 1,075