Version 1.22.2 of package Cider has just been released in NonGNU ELPA. You can now find it in M-x list-packages RET.
Cider describes itself as: ====================================================== Clojure Interactive Development Environment that Rocks ====================================================== More at https://elpa.nongnu.org/nongnu/cider.html ## Summary: Provides a Clojure interactive development environment for Emacs, built on top of nREPL. See https://docs.cider.mx for more details. ## Recent NEWS: # Changelog ## master (unreleased) ### New features - [#3964](https://github.com/clojure-emacs/cider/pull/3964): Add `cider-comment-style` to control how the eval-to-comment commands format the inserted result (`line`, `ignore` or `comment`). - [#3965](https://github.com/clojure-emacs/cider/pull/3965): Add `cider-send-to-comment` to copy the top-level form at point into the namespace's rich `comment` block (`C-c C-j c`), optionally evaluating it, and `cider-jump-to-comment` to visit the block (`C-c C-j v`). - [#3963](https://github.com/clojure-emacs/cider/pull/3963): Attach `cider-scratch` buffers to a specific session (one scratchpad per session), with a configurable eval destination (cljc-style by default) cyclable via `cider-scratch-cycle-eval-destination` (`C-c C-d`). ## 1.22.2 (2026-06-17) ### Bugs fixed - [#3958](https://github.com/clojure-emacs/cider/pull/3958): Fix `cider-stacktrace` crashing on ClojureScript errors whose cause has no exception class. - [#3959](https://github.com/clojure-emacs/cider/pull/3959): Emit stdout (e.g. the `time` macro's "Elapsed time" line) when pretty-printing an eval result to a comment. - [#3960](https://github.com/clojure-emacs/cider/pull/3960): Browse single-segment namespaces (e.g. `user`) from `cider-browse-ns-all` instead of opening their docs. - [#3961](https://github.com/clojure-emacs/cider/pull/3961): Recognize `?` and `!` in symbols for `cider-find-dwim` (e.g. `teardown!`). ### Changes - [#3919](https://github.com/clojure-emacs/cider/issues/3919): Rename the `cider-jack-in-tools` registry key `:universal-prefix-arg` to `:dispatch-prefix-arg`, to avoid clashing with the Emacs universal-argument (`C-u`) terminology. ## 1.22.1 (2026-06-16) No user-visible changes. This release was done solely to fix a problem with the docs site. ## 1.22.0 (2026-06-16) ### New features - [#3645](https://github.com/clojure-emacs/cider/issues/3645): Show a spinner in the mode line while tests are running. - [#3865](https://github.com/clojure-emacs/cider/pull/3865): Add default session feature to bypass sesman's project-based dispatch (`cider-set-default-session`, `cider-clear-default-session`). - [#3930](https://github.com/clojure-emacs/cider/pull/3930): Inspector: add help message with keybindings. - [#3884](https://github.com/clojure-emacs/cider/pull/3884): Introduce `cider-jack-in-tools` and `cider-register-jack-in-tool` so third-party packages can register new project tools for `cider-jack-in` and `cider-jack-in-universal`. - [#3888](https://github.com/clojure-emacs/cider/pull/3888): Cache the result of `cider--running-nrepl-paths` (used by `cider-locate-running-nrepl-ports`) for `cider-running-nrepl-paths-cache-ttl` seconds (default 5). Repeated `cider-connect` completions no longer re-spawn a fresh round of `ps`/`lsof` subprocesses each time. `cider-clear-running-nrepl-paths-cache` discards the cache on demand. - [#3890](https://github.com/clojure-emacs/cider/pull/3890): New `nrepl-make-eval-handler` with a keyword-arg API: - Keyword slots: `:on-value`, `:on-stdout`, `:on-stderr`, `:on-done`, `:on-eval-error`, `:on-content-type`, `:on-truncated`. - Sub-handlers no longer take a buffer argument; they close over whatever they need. - `nrepl-make-response-handler`, the legacy 7-positional-arg form, is preserved as an obsolete shim that adapts the old `(buffer x)` lambdas to the new `(x)` lambdas, so existing extensions keep working. - [#3929](https://github.com/clojure-emacs/cider/pull/3929): Keyword-argument forms for several low-level request APIs, so callers no longer pad arguments with `nil` to reach a later one. In every case the legacy positional function is kept as a thin shim that delegates to the new one, so existing callers (including third-party packages) keep working unchanged: - Eval requests: `nrepl-send-eval-request` (shim: `nrepl-request:eval`) and `cider-nrepl-send-eval-request` (shim: `cider-nrepl-request:eval`), with `:ns`, `:line`, `:column`, `:additional-params`, plus `:tooling` at the nREPL level and `:connection` at the CIDER level. ... ...
