Regarding cider vs nrepl, I plan to look into this and try to make things more modular, since we don't want to reinvent everything. Already had a chat with @bozhidar about this, but will need some time.
@plexus if you don't mind sharing I can help there as well
I don't have much more at this point than intentions @richiardiandrea. Happy to share whatever I get up to. Or if you have suggestions on where to start I'd be very happy to hear them
Yeah, that’s one thing that has to be done for sure. It’s also a prerequisite for supporting things like the socket-repl and could also give a huge boost to even the plain repl, provided this new extracted library is included. For CIDER itself - there needs to be an abstraction layer hiding the details for the connection type (nREPL, socket, unrepl). Now that unrepl.el
exists something like this should be relatively straightforward. There would be a need for some basic socket repl client, though.
plexus: my idea was to just extract the logic from the middleware part, probably it is already pretty much segregated apart from the wrap-*
stuff: https://github.com/clojure-emacs/cider-nrepl/blob/master/src/cider/nrepl/middleware/spec.clj#L98
it is Clojure after all, it should be easy to do
first time today trying unrepl
/`unravel` (finally!), pretty cool stuff!