cider Atom Feed

Description
Clojure Interactive Development Environment that Rocks
Latest
cider-1.22.0snapshot0.20260429.215217.tar (.sig), 2026-Apr-30, 1.43 MiB
Maintainer
Bozhidar Batsov <bozhidar@batsov.dev>
Website
https://www.github.com/clojure-emacs/cider
Browse ELPA's repository
CGit or Gitweb
All Dependencies
clojure-mode (.tar), compat (.tar), parseedn (.tar), queue (.tar), spinner (.tar), seq (.tar), sesman (.tar), transient (.tar)
Badge

To install this package from Emacs, use package-install or list-packages.

Full description

Provides a Clojure interactive development environment for Emacs, built on
top of nREPL.  See https://docs.cider.mx for more details.

Old versions

cider-1.22.0snapshot0.20260429.190630.tar.lz2026-Apr-29 341 KiB
cider-1.22.0snapshot0.20260429.71825.tar.lz2026-Apr-29 339 KiB
cider-1.22.0snapshot0.20260428.84400.tar.lz2026-Apr-28 338 KiB
cider-1.22.0snapshot0.20260417.131818.tar.lz2026-Apr-17 337 KiB
cider-1.22.0snapshot0.20260312.63418.tar.lz2026-Mar-12 335 KiB
cider-1.22.0snapshot0.20260221.61239.tar.lz2026-Feb-21 244 KiB
cider-1.21.0snapshot0.20260128.165118.tar.lz2026-Jan-28 236 KiB
cider-1.19.0snapshot0.20250710.72009.tar.lz2025-Jul-10 235 KiB
cider-1.9.0.0.20231024.195502.tar.lz2023-Oct-24 228 KiB
cider-1.2.0.0.20220104.100235.tar.lz2022-Jan-04 189 KiB

News

Changelog

master (unreleased)

New features
  • #3645: Show a spinner in the mode line while tests are running.
  • #3865: Add default session feature to bypass sesman's project-based dispatch (cider-set-default-session, cider-clear-default-session).
  • 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.
  • 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.
  • New nrepl-make-eval-handler with a keyword-arg API (: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.
  • Decouple the nREPL transport layer from CIDER's UI layer (closes #1099). nrepl-make-eval-handler is now CIDER-agnostic: it no longer references nrepl-namespace-handler-function, nrepl-err-handler-function, nrepl-need-input-handler-function, or any hardcoded UI strings. New :on-ns and :on-status keyword slots let any consumer wire up their own namespace tracking and status handling. The editor-level cider-make-eval-handler wraps it with CIDER's UI behavior (ns tracking, default error handler, need-input prompt, "Evaluation interrupted." / "Namespace not found." messages); in-tree callers all use it.
Bugs fixed
  • #3209: Fix cider-format dropping non-map cljfmt options (e.g. remove-consecutive-blank-lines?).
  • cider-jack-in-clj now restores the originating buffer when running its connect callback, matching the behavior of cider-jack-in-cljs and cider-jack-in-clj&cljs.
  • cider-locate-running-nrepl-ports now runs its ps/lsof probes via process-file, so endpoint completion for cider-connect works correctly from a TRAMP buffer (it inspects the remote host instead of the local one). Same for the lsof health check on .nrepl-port files.
  • cider-clojure-cli-command and cider-jack-in-default no longer freeze their auto-detection result at package load time. With the new nil default, CIDER picks the right command/tool at jack-in time, so installing Clojure (or moving it on PATH) no longer requires restarting Emacs.
  • cider--update-project-dir no longer reuses a single *cider-context-buffer* across calls. Each invocation gets a unique hidden buffer, so concurrent or interrupted jack-ins don't stomp each other.
  • nrepl-server-filter now treats wildcard/loopback printed bind addresses (localhost, 127.0.0.1, 0.0.0.0, ::1, ::) as "use the calling context", so jacking in over TRAMP to a server that prints localhost connects to the TRAMP host instead of the local machine.
  • cider--resolve-command now actually verifies command presence on remote hosts via executable-find's remote search, instead of unconditionally trusting the user-supplied command. A missing tool on the remote side now surfaces immediately during jack-in instead of as a server-startup failure later.
  • nrepl--ssh-tunnel-connect no longer routes its ssh invocation through a shell. The tunnel command is now spawned via start-process with an explicit arg list, eliminating shell-quoting hazards in user/host components.
  • Plug five request-id leaks in raw nREPL response handlers (cider/test-stacktrace, cider/test-var-query, cider/analyze-last-stacktrace, cider/ns-reload, cider/get-state). They never called nrepl--mark-id-completed, so their ids accumulated in the connection's nrepl-pending-requests for the lifetime of the session. ... ...