0.8 Code completion Symbol lookup First class support for Babashka Basic support for sideloading (functionality added in nREPL 0.7) Smarter handling of ClojureDocs data (no downloads the first time you try to use it or automatic data updates) Auto-trimming of REPL buffers (disabled by default) Small improvements
always clear which connection to use (e.g. you can have connections without project or two connections to the same project) Grouping Clojure and ClojureScript connections together and deciding what to do about things like `cljc` files Lots of flexibility You can work on multiple projects All sorts of workflows are supported out of the box
before, but now it’s a generic library for session management in Emacs Session management becomes a third-party library Less flexibility You can work on multiple projects Some workflows get broken, as we now have a more rigid session mapping mechanism
of the codebase Connection management in CIDER The choice of a REPL server Request processing API Choice of data structures It’s rarely the same as inherent complexity (which is often rooted in the business domain) It’s the complexity that’s hardest/most expensive to undo
Configuration options Things built on the top of the core APIs Variations of core commands and APIs The stuff that’s nice to have, but you didn’t really need Easy to undo, as it’s typically not coupled with anything important
predating the birth of cider-nrepl and the modern connection management Dropped the notion of dedicated buffers for things like documentation, macroexpansion, results, etc Not coupled with Clojure as strongly as CIDER Convenience/flexibility vs simplicity
What type of complexity is this? How big of an (positive) impact it would make? Do I want to develop it? Can I develop it (properly)? Does anyone want to develop it? Do I want to maintain this? Can I maintain this?