Hey!

I've been playing around a little bit with Common Lisp lately, and I've found the interactive restarts to be pretty amazing. So, I've implemented something similar to them in Clojure/Cider!

 https://github.com/czan/dont-give-up

It has support for programmatic restarts, but also includes some nrepl middleware which will (when paired with the additional elisp code) prompt the user for what to do upon failure.

The restarts should interact sensibly with normal JVM exception handling. I've put a lot more thought into the exception/restart code than I have into the middleware/elisp code, so the cider interface is pretty hacky at the moment. If you have experience writing nrepl middleware or extending Cider, I'd love your help!

One big problem with this at the moment is that Cider doesn't let you do multiple evaluations in parallel, and the interactive prompt blocks the thread until you tell it what to do. This means you can't evaluate anything else until you have chosen a restart, which limits how interactive the system really feels. Fixing this has to be done in Cider itself, I believe.

It still needs a polish/improvement to be as good as slime, but it's a start!

Carlo

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Attachment: signature.asc
Description: PGP signature

Reply via email to