| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| CIDER 2.0 (_Terceira_) source code.tar.gz | 2026-07-15 | 9.0 MB | |
| CIDER 2.0 (_Terceira_) source code.zip | 2026-07-15 | 9.2 MB | |
| README.md | 2026-07-15 | 23.6 kB | |
| Totals: 3 Items | 18.2 MB | 0 | |
New features
- Transient menus everywhere:
- #4048: Each command group now opens a transient menu instead of a bare prefix keymap (
cider-eval-menuatC-c C-v,cider-doc-menuatC-c C-d, and likewise for test, ns, insert, macroexpand, profile, trace and references), plus a top-levelcider-menudispatch; existing keybindings are preserved. - #4061: The jack-in/connect keybindings are a transient menu too (
cider-start-menu,C-c C-x), with flags for aliases (-a), the ClojureScript REPL type (-l) and editing the command before running (-e) (#3317). - Add a transient menu to the debugger (
cider-debug-menu,?during a debug session) - its single-key commands are proper named commands now (e.g.cider-debug-next), soM-xworks too - and to the inspector (cider-inspector-menu,m). - Add per-invocation flags to several menus: the printer (
--print-fn=) in the pretty-print menu (#4065), test selectors (--include=/--exclude=) in the test menu (#4063), refresh modes (--all/--clear/--inhibit-fns) in the ns menu and expansion display (--ns=/--meta) in the macroexpand menu (#4062). - Rich content in evaluation results:
- #2476: Interactive evaluations now honor content types too: a result carrying rich content (e.g. an image) renders per the new
cider-eval-rich-content-destination-inline(the default, in the result overlay at point),repl,popupornil(plain values, the previous behavior). - Render fetched
text/htmlcontent as formatted text (viashr), and make an external-content result's URL a clickable link; remote images inside that HTML are never fetched, so rendering a result never makes a network request on its own. - New code-exploration commands under
C-c C-w, presented as expandable trees: - #3995:
cider-who-calls(c) andcider-who-is-called(d), SLIME-style browsers for a function's callers and callees. - #3997, #3998, #4000, #4001:
cider-who-implements(i), browsing a protocol's implementing types (inlinedefrecord/deftypeincluded) or a multimethod's dispatch values, with jumps to each implementation's source. - #3999:
cider-type-protocols(t), listing the protocols a type implements, andcider-protocols-with-method(p), listing the protocols that declare a given method. - #3996:
cider-who-macroexpands(m), finding a macro's use sites by searching the project's source. - #3994:
xref-find-references(M-?) now finds references by searching the project's source files, covering code that hasn't been loaded into the REPL yet (configurable viacider-xref-references-mode). - Tracing and enlighten:
- #3990, #3992, #3993: Add
cider-trace, a dedicated buffer that streams the calls and return values of traced functions live (instead of interleaving them into the REPL), with foldable calls,n/pnavigation and jump-to-definition. - #3989: Add
cider-list-tracedto show what's currently traced andcider-untrace-allto clear all tracing at once. - #3988, #3991: Add
cider-enlighten-defun-at-point(enlighten a single form without the global mode),cider-enlighten-clearandcider-enlighten-stop(turn enlightenment off at once). - Inline macro stepping (#3970, #3976, #3977, #3978, #3985): add
cider-macrostep-expand(cider-macrostep-mode), expanding macros in place step by step, with the further-expandable sub-forms highlighted, gensyms colorized, full expansion in one step (a) and a popup-buffer variant (cider-macrostep-expand-in-buffer). - Eval-to-comment improvements:
- #3965: Add
cider-send-to-comment(C-c C-j c), copying the form at point into the namespace's richcommentblock, andcider-jump-to-comment(C-c C-j v) to visit it. - #3964: Add
cider-comment-style(line,discardorcomment) to control how the inserted results are formatted. - #4018: Successive eval-to-comment calls now update the inserted result in place instead of stacking stale ones.
- #4044, #4045: Add
cider-tap, a buffer that streams the values sent totap>and lets you inspect them withRET(ClojureScript taps stream too, but aren't inspectable). - #4094: Add
cider-doctor, which checks your Emacs setup (and the active nREPL session, if any) for common problems and shows a copy-pasteable report. - Add an
orchardvalue forcider-print-fn, selecting cider-nrepl'sorchard.pp-backed pretty-printer - significantly faster than the defaultclojure.pprintand it doesn't realize lazy seqs while printing. - #4108:
C-c C-dat the stdin prompt sends end-of-input, so code reading to EOF can be satisfied interactively instead of only by interrupting the evaluation. - #4026: Run ClojureScript tests (asynchronous ones included) with the regular test commands when a ClojureScript REPL is active, instead of refusing them.
- #4025: Mark each
deftestwith a green (passed) or red (failed) fringe indicator after a test run;cider-fringe-indicatorsnow also accepts a list of kinds (eval,test) (#3721). - #3973, #3980: Indicate namespace load-state: a mode-line (and optional fringe) marker when the buffer's namespace isn't loaded into the REPL or is stale (
cider-ns-load-state-display), and per-form fringe markers that turn amber when an evaluated form is edited (cider-mark-stale-after-edit); the load, reload and refresh commands all keep them in sync. - #4023:
cider-auto-inspect-after-evalnow acceptsinteractive,replorall, so a visible inspector can also be refreshed after REPL evaluations (#3636). - #4057: Show an animated spinner overlay at the form being evaluated instead of the mode-line spinner, when result overlays are enabled (#3516).
- #4060: Hint at jack-in time when no Clojure CLI aliases are set, so newcomers discover aliases like
:dev/:test; setcider-clojure-cli-aliasesto:nil-no-warnto silence it (#3317). - #4055: Add
cider-clojure-cli-powershell-optionsto pass extra options to the PowerShell executable used for jack-in on Windows (#2879). - #4004: Add
cider-browse-spec-tree, which browses a spec and the specs it references as an expandable tree. - #3969: Show ClojureDocs examples inline in the
*cider-doc*buffer (eto toggle,cider-doc-show-clojuredocs-examplesto always show them). - #3963: Attach
cider-scratchbuffers to a specific session (one scratchpad per session), with a configurable eval destination. - #3966: Add
cider-set-eval-destinationandcider-cycle-eval-destination(C-c C-M-d) to override, per buffer, which REPL type evaluations dispatch to.
Bugs fixed
- #4107: Route stdin input (and a cancel's interrupt) to the exact connection that requested it, so reads no longer misroute when several connections are active.
- #4106: Cancelling a stdin prompt now interrupts the evaluation, instead of sending a value nREPL treated as EOF and letting the evaluation continue.
- #4093: Fix a crash (
wrong-type-argument stringp nil) when a REPL result is truncated by the print middleware. - #4089: Fix
cider-macroexpand-undofailing with a read-only error in the macroexpansion buffer. - #4085: Resolve unqualified ClojureScript core vars (e.g. their indentation metadata) against
cljs.corein a cljs REPL, and make a prefix argument tocider-find-keywordinvertcider-prompt-for-symbollike the sibling find commands. - #4084: A batch of nREPL-layer fixes:
nrepl-dict-mergeno longer mutates a shared literal when its first argument is nil,nrepl-notifyno longer treats a notification's text as a format string, sync-request callbacks are reaped onabort-on-input/timeout exits (fixing a slow memory leak on the eldoc/completion path),cider-find-keyworderrors cleanly when there is no keyword at point, and a missing server-side log appender is recreated after a REPL restart. - #4083: Split the classpath on the platform path separator (fixing
cider-classpathon Windows), stopcider-format-region/cider-format-defunfrom corrupting multi-line string and regex literals when the region starts at a non-zero column, makecider-profile-togglehonor its prefix argument, and signal a clear error whencider-aproposis used in a ClojureScript context. - #4082: Render a stack frame's
ns/fnwhen it carries them (e.g. ClojureScript frames) instead of degrading tonil/nil(#4043). - #4081: Make
cider-stacktrace-suppressed-errorscustomizable again and stop the stacktrace renderer from leaving a strayfill-prefixin the*cider-error*buffer. - #4078: Fix the menu-bar showing a duplicated "CIDER" menu when
cider-modeis active. - Debugger fixes: the
O(force step-out) key no longer aborts the session with an error, and the menu-bar menu advertises the right key for "Inject value" plus the missing stepping/stacktrace/trace entries. - Fix
cider-log-kill-appender's confirmation message, which had the appender and framework names swapped. - #4066: Jump to the actual source when clicking a stack frame for a top-level anonymous function (the
deftestshape), instead of landing inclojure.core/fn(#3157). - #4058: Signal a helpful error when
cider-javadocgets an unresolvable Javadoc URL from the middleware, instead of silently doing nothing (#2969). - #4054: Interrupt every REPL an evaluation was dispatched to - in a
.cljcbuffercider-interruptpreviously interrupted only one of the two (#4036). - #4053: Restore point to the place a debug session was started from when quitting with
q(#1595). - #4049: Font-lock streamed REPL results as a whole instead of per chunk, so values split across chunks are highlighted correctly (nREPL [#445]).
- #4038: SSH tunneling now forwards a free local port (with readiness detected by probing it, bounded by the new
nrepl-ssh-tunnel-timeout), so remote REPLs sharing a port no longer collide on localhost (#3730, #3561, #3085). - #4026:
cider-macroexpand-1and friends now work in ClojureScript for user-defined macros (#2099). - #4016: Show the REPL prompt right away when a server (e.g. jank) sends
valueand("done")in the same response (#3869). - #4019: Stop the local-variable font-locking from mistaking a
def's value for an arglist (cider-localsfalse positives) (#3657). - #4021: Stop unbalanced parentheses in REPL output from breaking sexp navigation and paredit in the REPL buffer (#3102).
- #4020: Show an error instead of failing silently when an interactive evaluation command is used with no REPL connected (#3028).
- #4006: Fix a doubled colon in the jack-in command when both
cider-clojure-cli-global-aliasesandcider-clojure-cli-aliasesare set in the documented:foo:barform. - #3971: Fix
cider-macroexpand-again(gin the macroexpansion buffer) to actually re-expand the form instead of redisplaying the original input. - #3986: Signal a
user-errorwhen a var to trace isn't found or isn't traceable, so the failure no longer triggers a backtrace underdebug-on-error. - #4018: Fix interleaving of value and stderr output in
cider-eval-pprint-with-multiline-comment-handler.
Changes
- #4002, #4050: Bump the injected
cider-nreplfrom 0.59.0 to [0.62.1](https://github.com/clojure-emacs/cider-nrepl/blob/v0.62.1/CHANGELOG.md#0621 (andpiggiebackto 0.7.0); besides backing many of the features above, the new middleware honors the project's cljfmt configuration when formatting and carries a batch of debugger fixes. - Enable rich content in the REPL by default (
cider-repl-use-content-typesis nowt): image results render inline, and external content (files, URLs) renders a[show content]button that fetches only on demand - the automatic fetching that got the feature disabled back in 0.25 (#2825) is gone, and the server side is hardened incider-nrepl0.62. - #4092, #4093: Clean up the REPL's keybindings: the source-buffer eval keys no longer run the source-buffer eval path there (
C-x C-eis a no-op at the REPL; evaluate at the prompt instead),C-c M-mnow opens the macroexpand menu (matchingcider-mode), andC-c C-rno longer injects clojure-mode's source-editing refactor map. - Renames and consolidations (in all cases the old names keep working as obsolete aliases):
- #4052: The inline evaluation-result options become a consistent
cider-eval-result-*family:cider-use-overlays->cider-eval-result-display,cider-result-overlay-position->cider-eval-result-position,cider-result-use-clojure-font-lock/cider-overlays-use-font-lock->cider-eval-result-font-lock,cider-interactive-eval-output-destination->cider-eval-output-destination, andcider-use-fringe-indicators->cider-fringe-indicators. - Consolidate the per-buffer auto-select options (
cider-auto-select-error-bufferand friends) into a singlecider-auto-select-buffer, which can bet,nilor a list of the popup buffers to select (e.g.'(error inspector)). - Rename the REPL history browser from
cider-repl-historytocider-history(command, mode and options), so its names no longer clash with the REPL's unrelated input-history settings. - Rename
cider-log-buffer-clear-ptocider-log-buffer-has-content-p- the old name read as the opposite of its behavior. - #4035: Rename
cider-ensure-connectedtocider-ensure-session. - #4033: Deprecate the legacy connection-named aliases (
cider-current-connection,cider-connections,cider-map-connections,cider-connection-type-for-buffer) in favor of theircider-replcounterparts. - #4029: Deprecate the positional request APIs in favor of their keyword-argument counterparts (
cider-nrepl-send-sync-request->cider-nrepl-sync-request,cider-nrepl-request:eval->cider-nrepl-send-eval-request, and thenrepl-equivalents). - #4028: Deprecate
cider-ensure-op-supported; op support is now enforced automatically by the nREPL senders. - #4081: Remove the long-obsolete (no-op since 1.18)
cider-stacktrace-analyze-at-pointandcider-stacktrace-analyze-in-regioncommands. - Quieter REPL startup (#3983, #3984): the long welcome banner and the echoed jack-in command/ClojureScript init form are gone, replaced by a one-line hint; the details are available on demand via
cider-repl-help(C-c C-h, or the,refcardREPL shortcut) andcider-repl-describe-startup(,startup). - #3982: Warn (once per session) when a deprecated CIDER keybinding is used, starting with the REPL-only jack-in/connect keys superseded back in 0.18; see
cider-warn-on-deprecated-keybindingsandM-x cider-list-deprecated-keybindings. - Bump the default
cider-repl-history-sizefrom 500 to 5000. - Color the nREPL messages buffer with customizable faces (
nrepl-message-faces, with light- and dark-background variants) instead of a hardcoded color list;nrepl-message-colorsis now obsolete, but still takes precedence when customized. - #4059: Use the public
sesman-sessions(viacider-sessions) instead of a private sesman function incider-debug-sesman-friendly-session-p(#4037). - #4056: Show the interactive-evaluation spinner in the buffer you evaluated from, instead of always in the REPL buffer (#3516).
- #4047: Render the doc buffer's "See also" section as a bulleted list, matching the ClojureDocs buffer.
- #4046: Make eldoc asynchronous - the arglist/var lookup no longer blocks Emacs as you move the cursor - and decline the eldoc slot when CIDER has nothing, so other sources (e.g. clojure-lsp) compose cleanly.
- #4026: Show a clear message when a Clojure-only operation (apropos, xref, trace, profile, refresh, reload, undef, spec) is invoked under a ClojureScript REPL, instead of failing confusingly (#2198).
- #4022:
cider-inspect-last-sexpnow inspects the tagged class when point is on a type tag (e.g.^String) (#3679). - #4024: The
*cider-ns-refresh-log*buffer now supportsr/g/C-c M-n rto re-run the refresh from within it (#2798). - #4005: Render the namespace browser (
cider-browse-ns) on thecider-tree-viewwidget: groups are foldable withTAB, andn/pmove between entries. - #4003: Turn
C-c M-minto a prefix map (cider-macroexpand-map) grouping all the macro-expanding commands;cider-macroexpand-allthus moves fromC-c M-mtoC-c M-m a, whileC-c C-mstill runsmacroexpand-1directly. - Macroexpansion buffer polish (#3971, #3972):
n/tcycle namespace display and toggle metadata in place, a header line shows the active expander and options, expansions briefly pulse, and expanding a special form, non-macro or unresolved symbol reports a helpful message instead of silently doing nothing. - #3979: Give
cider-find-var,cider-doc, the ClojureDocs commands and the xref/browse-ns commands actionable resolution hints, telling an unloaded namespace (evaluate the buffer first) apart from a genuinely unresolved symbol. - Cheatsheet refresh (#3967, #3968): add the functions introduced since Clojure 1.11, a dedicated
cider-cheatsheet-modewith fontified section headers andTAB/S-TABnavigation, and a menu plus per-var keys for docs and ClojureDocs.