cider 
- Description
- Clojure Interactive Development Environment that Rocks
- Latest
- cider-2.1.0snapshot0.20260729.44.tar (.sig), 2026-Jul-29, 1.77 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-2.1.0snapshot0.20260728.36.tar.lz | 2026-Jul-29 | 364 KiB |
| cider-2.1.0snapshot0.20260728.35.tar.lz | 2026-Jul-28 | 364 KiB |
| cider-2.1.0snapshot0.20260728.24.tar.lz | 2026-Jul-28 | 361 KiB |
| cider-2.1.0snapshot0.20260727.21.tar.lz | 2026-Jul-27 | 361 KiB |
| cider-2.1.0snapshot0.20260723.2.tar.lz | 2026-Jul-23 | 360 KiB |
| cider-2.0.1snapshot0.20260722.11.tar.lz | 2026-Jul-22 | 358 KiB |
| cider-2.0.0.20260705.26.tar.lz | 2026-Jul-05 | 350 KiB |
| cider-1.23.0.20260701.121.tar.lz | 2026-Jul-01 | 340 KiB |
| cider-1.19.0snapshot0.20250710.72009.tar.lz | 2025-Jul-10 | 235 KiB |
| cider-1.9.0.0.20231024.195502.tar.lz | 2023-Oct-24 | 228 KiB |
News
Changelog
master (unreleased)
New features
- #4142: Bring CIDER's dynamic font-locking (highlighting REPL-defined macros, functions, vars and deprecated/instrumented/traced symbols) to
clojure-ts-modebuffers via tree-sitter; previously it only worked underclojure-mode. - #4145: Add
cider-preferred-clojure-mode(defaultauto) controlling which Clojure major mode CIDER uses to font-lock the code it renders (REPL input/results, doc examples, overlays, xref labels, etc.); when set to (or auto-detecting)clojure-ts-mode, those snippets get tree-sitter highlighting instead ofclojure-mode's. - #4146: Have CIDER's own Clojure display buffers (macroexpansion, evaluation results, tracing) honor
cider-preferred-clojure-modetoo, so they open inclojure-ts-modewhen that's your preference instead of alwaysclojure-mode. - #4143: Highlight the
#break/#dbg/#lightdebugging reader tags inclojure-ts-modebuffers too. - #4117: Add
cider-use-completing-read-for-symbol(off by default): when enabled, symbol prompts (e.g.cider-doc,cider-find-var) read throughcompleting-readover a lazy, runtime-backed collection, so they work withcompleting-readUIs (Vertico, Ivy, Helm) and annotate candidates with their type and namespace. - #4129: Render completion annotations as an aligned type/namespace column (via an
affixation-function) in UIs that support it, such as the built-in*Completions*, Corfu and Vertico.
Changes
- #4149: Make the nREPL message log easier to reach: add "Show nREPL messages" to the nREPL menu, reflect the logging toggle's on/off state there, and have
nrepl-show-messagesoffer to enable logging when it's off instead of erroring.
Bugs fixed
- #4152: Stop the dynamic font-lock locals scanner from treating the default expressions in an
:ordestructuring clause (e.g.{:keys [x] :or {x (some-default)}}) as local variables, so references there keep their normal highlighting. - #4150: Stop dropping stray output from long-lived background processes (e.g. a
core.asyncgo-loop still printing under a finished eval's id): once that id is evicted from the completed-requests cache, itsout/erris now routed to the REPL instead of being discarded with a "No response handler with id N found" warning. - #4140: Fix
cider-eval-dwim(and defun evaluation) not descending into a(comment ...)form inclojure-ts-modebuffers: it now bindsclojure-ts-toplevel-inside-comment-formalongside theclojure-modevariable. - #4139: Fix source-based find-usages (
M-?) missing alias- and namespace-qualified references (e.g.m/foo), so a var used through its alias from other namespaces is now found, not just the bare occurrences in its defining namespace. - #4136: Fix a custom ClojureScript REPL init form being sent unwrapped when it starts with a call like
(dorun ...)or(doseq ...), which the previous(doprefix check mistook for an existingdoblock.