- #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).
- #3209: Fix
cider-formatdropping non-map cljfmt options (e.g.remove-consecutive-blank-lines?).
- #3788: Remove the
cider-info-formeval fallback forcider-var-info. TheinfoandlookupnREPL ops are now required. - Bump the injected nREPL version to 1.6.
- Convert modern tuple-format indent specs (e.g.
[[:block 1] [:inner 0]]) to legacy format for compatibility with older clojure-mode versions. - Rename
cider-eval-spinner-type,cider-show-eval-spinner, andcider-eval-spinner-delaytocider-spinner-type,cider-show-spinner, andcider-spinner-delay. The old names are kept as obsolete aliases.
- #3854: Use buttons for items in
cider-ns-browserto allow clicking and evil'sRETto navigate. - Drop support for Emacs 27.
- This was prompted by upstream deps dropping support for it.
- Remove deprecated
cider-*-global-opts. - Move Emacs Lisp code under
lisp/folder to improve the structure of the repo.- That's not a user-visible change, but might affect the packaging depending on how you're installing CIDER.
- #3853: Fix mangling of printed representations.
- This was caused by a bug in nREPL, that was addressed in nREPL 1.5.2
- #3847: Inspector: tidy up namespaced-qualified keywords.
- Bump the injected
nreplto 1.5.1.-
- nrepl#385: Preserve filename in functions compiled during regular eval.
-
- Bump the injected
piggiebackto 0.6.1. - Bump the injected
cider-nreplto 0.58.0.-
- cider-nrepl#951: Debug: correctly process
#dbgtag duringload-file.
- cider-nrepl#951: Debug: correctly process
-
- #3834: Change
cider-ns-refreshto always use Clojure REPL.
- #3832: Fix
nrepl--eval-requestsending duplicate info. - #3837: Fix broken stacktrace response when
C-c C-pthrows an exception. - orchard#353: Stacktrace: flag Clojure functions as duplicate.
- orchard#355: Java: resolve source files for non-base JDK classes.
- #3834: Fix
cider-ns-refreshthrowing an error when a Clojure REPL exists, butcider-current-repldoes not support the required operations. - #3848: Format: fix
cider-formatcrashing when format options are set.
- #3359: Add customizable default connection params (see
cider-connect-default-paramsandcider-connect-default-cljs-params). - #3828: Inspector: diff mode.
- #3828: Inspector: sorting maps by keys.
- Bump the injected
cider-nreplto 0.57.0.- cider-nrepl#941: Stop vendoring Fipp dependency.
- cider-nrepl#943: Reduce debugger instrumentation bytecode footprint.
- orchard#342: Inspector: add hexdump view mode.
- orchard#349: Inspector: add ability to sort maps by key.
- orchard#350: Inspector: add diff mode and
orchard.inspect/diff.
- #3816: (Breaking) Remove enrich-classpath support from cider-jack-in.
- #3817: Enable
cider-download-java-sourcesby default.
- #3802: Inspector analytics.
- #3802: Inspector table view-mode.
- #3813: Inspector pretty-printing mode.
- #3810: Inspector:
C-c C-pto pretty-print the currently inspected value. - orchard#320: Info: recognize printed Java classes/methods and munged Clojure functions in stacktrace outputs.
- #3782: Drop official support for Emacs 26.
- #3812: (Breaking) Remove support for Boot.
- #3793: (Breaking) Remove features that relied on printed exception parsing:
cider-stacktrace-analyze-stringandcider-stacktrace-analyze-at-pointfunctions.- Automatic stacktrace parsing in log viewer.
- Bump the injected
cider-nreplto 0.55.7.- compliment#122: Completion: sort candidates by priority.
- Inspector: add dedicated view for Exceptions.
- Stop vendoring Haystack dependency.
- Stop vendoring Puget dependency. You can still use
pugetpretty-printer in CIDER, but you need to depend on Puget explicitly. If Puget is not found on the classpath, CIDER will revert toclojure.pprint/pprintfor pretty-printing.
- #3777: Inspector no longer displays parsed Javadoc for Java classes and members.
- #3790: Stacktrace: show messages and data for all exception causes by default.
- #3807: Stacktrace: make exception data individually inspectable.
- #3789: Refactor and simplify exception handling.
- #3789: Completion: disable client-side sorting (defer to backend-provided candidate order).
- #3797: Completion: enable
cider-completion-styleby default (this enables richer completion suggestions where candidates don't have to strictly match the prefix). - #3803: Enable dynamic indentation for
clojure-ts-mode. - #3805: Profiler: update to latest profiling middleware.
- #3806: Add client info to
cloneop request.
- #3784: Inspector: make point less erratic when navigating between inspector screens.
- #3786: Sort dictionaries by key in nrepl-bencode
- #3779:
cider-find-keyworddoesn't work withclojure-ts-mode. - #3791: Missing font-lock when
cider-font-lock-dynamicallyis enabled forclojure-ts-mode.
- Bump the injected
cider-nreplto 0.52.1.
- #3775: Code completion throws
MalformedURLExceptionon Windows.
- Automatic downloading of third-party Java sources for better Java documentation and jump-to-definition functionality. See Obtaining source JARs.
- CIDER History: Add a command to delete history item at point.
- Bump the injected nREPL version to 1.3.1.
- Bump the injected
cider-nreplto 0.52.0. - #3574: New value
per-projectforcider-repl-history-fileto save the history on a per-project basis.
- #3763: Fix
cider-docview-rendercompletion popup error when symbol being completed does not have a docstring. - #3774: Fix overlay hangup when evaluating huge values.
- Bump the injected
cider-nreplto 0.50.3. - #3753: Add
cider-log-show-frameworkscommand to show available log frameworks in a buffer. - #3746: Bring back
cidercompletion style for activating backend-driven completion.
- #3742: Restore syntax highlighting of result in the minibuffer.
- #3747: Fix errors when docstring is
nil. - #3757: Fix inspector's
def-current-valueselecting wrong REPL when multiple are connected. - #3754: Fix regex in
cider-ns-from-p.
- Bump the injected nREPL version to 1.3.
- #3733: Remove support for sideloading. (this experimental feature was removed from nREPL 1.3)
- Bump the injected
cider-nreplto 0.50.2.- Introduce new backend for CIDER tracing functionality (replacing
tools.trace). - Remove special handling of Boot classpath.
- Introduce new backend for CIDER tracing functionality (replacing
- #3722: Call
cider-docstring--formatafter checking argument is notnil. - #3739: Leiningen jack-in fails when
cider-enable-nrepl-jvmti-agentis enabled.
- #3714: Show progress when evaluating files using
cider-load-all-files. - #3713: Optimize
nrepl-dict-getand deprecate its 3-argument arity. - #3719: Remove duplicated keybinding.
- Bump the injected
cider-nreplto 0.49.1.- Reduces the minimal supported Clojure version to 1.10.0 (from 1.10.3).
- #3692: Add ability to switch view modes in the inspector (bound to
v). - #3693: Add
cider-enable-nrepl-jvmti-agentdefcustom to enable loading native nREPL JVMTI agent which restores thread stop ability on Java 21+.
- #3691: Deprecate
cider-sync-request:inspect-set-*functions in favor of genericinspect-refreshop. - Bump the injected
cider-nreplto 0.49.0. - Bump the injected nREPL version to 1.2.0.
- #3696: Don't eagerly complete a candidate if there are other candidates matching
flexstyle. - #3698: Fix error messages in non-JVM runtimes being suppressed when
cider-show-error-bufferis set tonil.
- #3681: Add an alternative way to display cheatsheet in a buffer and make it the default.
- Current
cider-cheatsheetcommand is renamed tocider-cheatsheet-select. - New way to display cheatsheet in a buffer is available with
cider-cheatsheetcommand.
- Current
- #3686: Add an alternative way to display
cider-cheatsheet-selectwhen called with a prefix argument. - #3632: Add new configuration variable
cider-clojure-cli-global-aliases. - #3366: Support display of error overlays with
#dbg!and#break!reader macros. - #3622: Basic support for using CIDER from clojure-ts-mode.
- The
clojure-modedependency is still required for CIDER to function. - Some features like
cider-dynamic-indentationandcider-font-lock-dynamicallydo not work withclojure-ts-mode(yet).
- The
- #3624: Support new
cider.clj-reload/reloadcider-nrepl middleware.- adds
cider-ns-code-reload-tooldefcustom, defaulting to'tools.namespace. - you can change it to
'clj-reloadto use clj-reload instead of tools.namespace.
- adds
- #3682: Add
cider-jack-insupport for Basilisp (Python). - #3664: Add customization inspector op to change max nested collection depth.
- #3626:
cider-ns-refresh: jump to the relevant file/line on errors. - #3628:
cider-ns-refresh: summarize errors as an overlay. - #3660: Fix
cider-inspector-def-current-valalways defining inusernamespace. - #3661: Truncate echo area output ahead of time.
- Bump the injected
enrich-classpathto 1.19.3. - Bump the injected nREPL to 1.1.2.
- Bump the injected
cider-nreplto 0.48.0.- Updates clj-reload.
- Updates tools.reader.
- Updates nREPL.
- Updates Orchard.
- Updates Logjam.
- Updates Compliment.
- orchard#245, cider-nrepl#868: Drop support for Clojure 1.9.
- #3689: Fix
cider-clojuredocs-lookupto show friendly error message if symbol is not found on ClojureDocs. - #3673: Fix buggy
special-display-buffer-namescheck. - #3659: Fixes completions when using
flex-like completion styles. - #3600: Fix scittle jack-in when using
cider-jack-in-clj. - #3663: Fix
cider-interactive-eval-overrideinvocation.
- #3605: Avoid
cider--error-phase-of-last-exceptionrecursive loop. - #3613: Adapt
cider-completion-context.elto upstream changes in Compliment. - #3587: Avoid overlays and
messages on stderr that is unrelated to exception handling.
- #3588: Compatibility with pwsh 7.3 quoting rules.
- Introduce the
cider-log-showfunction.- Please refer to the (slightly revamped) CIDER Log Mode guide.
- Bump the injected
enrich-classpathto 1.19.0. - Bump the
parseednrequired version to 1.2.1. - Bump the injected
cider-nreplto 0.45.0.- Introduces Timbre compatibility for CIDER Log Mode.
- Fixes JS completions for nested objects.
- Bundles other fixes and reliability improvements.
- cider-nrepl#840: Drop support for Clojure 1.8.
- #3576: CIDER Inspector: display Java class/method/field block tags (Returns/Throws/Params info) when available.
- CIDER Inspector: introduce
1keybinding which performscider-inspector-tap-at-point. - CIDER Inspector: introduce
okeybinding which performscider-inspector-open-thing-at-point. - CIDER Inspector: introduce
:keybinding which performscider-inspect-expr-from-inspector. - CIDER Inspector: retain
truncate-linesvalues across screens. - #3580:
cider-test: make test vars in test results reports clickable.- As defined in the newly introduced
cider-test-var-keymapvar.
- As defined in the newly introduced
- #3582: Handle
cider-clojure-compilation-error-phasesvalues that have been customized tot. - #3581: Bump the injected
enrich-classpathto 1.18.6.- Handles Clojure CLI
:pathsdirectly defined as:aliases.
- Handles Clojure CLI
- Bump the
clojure-moderequired version to 5.18.1. - Bump the injected
cider-nreplto 0.44.0.
- Bump the injected
cider-nreplto 0.43.3.- Improves performance for error-handling functionality.
- Bump the injected
enrich-classpathto 1.18.4.- Handles a Clojure CLI edge case.
- #3565:
*cider-error*: open a given Exception in the Inspector by clicking it, or hitting p.
- CIDER Inspector: display Java class/method/field info when available.
- This info is available when enrich-classpath is active.
- #3495: possibly display error overlays on
cider-load-buffer. cider-popup-buffer-display: honorspecial-display-buffer-namesif customized for a given CIDER buffer name (e.g.*cider-inspect*), avoiding the double-rendering of the given buffer.- #3572:
lein.sh: honorXDG_CACHE_HOME. - Bump the injected
cider-nreplto 0.43.1.- Improves performance for exception handling and other use cases.
- Fixes
cider-inspector-refresh - Offers better completions related to
:as-aliasunder ClojureScript.
- #3555: Introduce
cider-start-nrepl-serverfunction which does the same ascider-jack-inbut without connecting to the started nREPL server.- This can help setting up more complex workflows.
- Bump the injected
cider-nreplto 0.42.1. - #3553:
cider-pprint-eval-last-sexp,cider-eval-last-sexp-to-repl,cider-pprint-eval-last-sexp-to-repl: use error overlays to indicate failure.- this also avoids showing an empty
*cider-result*buffer.
- this also avoids showing an empty
- #3554: CIDER macroexpand: handle errors more gracefully.
- #3541: Fix
cider-jack-infailing with SSH remotes. - #3559: Don't apply dynamic syntax highlighting over buffers belonging to unrelated Sesman sessions.
- #3529: CIDER inspector: introduce
cider-inspector-previous-sibling,cider-inspector-next-siblingcommands (doc). - #3548: CIDER inspector: introduce
cider-inspector-tap-current-valcommand (doc).
- #3546: Inspector: render Java items using
java-modesyntax coloring. - #3521: Expand
cider-clojure-compilation-regexpto also match e.g.Unexpected error (ExceptionInfo) macroexpanding defmulti at (src/ns.clj:1:1).. - Remove module info from the CIDER error overlay.
- Example string that is now trimmed away:
(java.lang.Long is in module java.base of loader 'bootstrap'; clojure.lang.IObj is in unnamed module of loader 'app')
- Example string that is now trimmed away:
- #3522: Introduce a new possible value for
cider-use-overlays:errors-only.- If specified, only errors will result in an overlay being shown.
- #3527: Preserve the font size as one navigates through the CIDER inspector.
- #3525: Introduce
cider-inline-error-message-functioncustomization option. - #3528: Bump the injected
cider-nreplto 0.41.0.- Updates Orchard, providing misc presentational improvements for the CIDER Inspector.
- Inspector: avoid
Symbol's value as variable is void: text-scale-mode-amountunder certain Emacs clients.
- #2903: Avoid
No comment syntax is definedprompts. - Bump the
clojure-moderequired version to 5.18.0.
- #3533: Refine Sesman session linking to accurately work on
*cider-test-report*buffers. - #3539:
cider-jump-to-locref-at-point: don't jump to non-existing files.
- Bump the injected
cider-nreplto 0.40.0.- Improves the
:style/indent:arglistand other key metadata propagation for ClojureScript macros.
- Improves the
- #3364: Update enrich-classpath, adding Clojure CLI compatibility, and reworking its integration into CIDER.
- #3472: render Java doc comments and arglists with an improved format, and improve Java interop type inference.
- Requires enrich-classpath to be enabled (see previous bullet point).
- A related option has been introduced:
cider-docstring-max-lines.
- #3352: Add CIDER Log Mode, a major mode that allows you to capture, debug, inspect and view log events emitted by Java logging frameworks.
- #3418: Introduce
cider-clojure-compilation-error-phases(doc).- This prevents stacktraces from showing up whenever the :clojure.error/phase indicates that it's a compilation error.
- Infer indentation specs when possible (doc).
- #2958, #3279:
cider-test-run-test: support arbitrary deftest-like forms, defns with :test metadata, and search for a-testcounterpart for a given defn (followingcider-test-infer-test-nslogic).- This also makes obsolete the
cider-test-defining-formscustomization variable.
- This also makes obsolete the
cider-test: add timing information.cider-test: fail-fast by default, as controlled by the newcider-test-fail-fastdefcustom andcider-test-toggle-fail-fastkeybinding.- #3352: Introduce
cider-eval-dwim. - Add new customization variable
cider-clojurec-eval-destinationto allow specifying which REPL .cljc evals are sent to. - #3354: Add new customization variable
cider-reuse-dead-replsto control how dead REPL buffers are reused on new connections.
- #3341: Escape clojure-cli args on MS-Windows on non powershell invocations.
- #3353: Fix regression which caused new connections to prompt for reusing dead REPLs.
- #3355: Fix
cider-modedisabling itself after a disconnect whencider-auto-modeis set to nil. - #3362: Fix
sesman-restartregression issue. - #3236:
cider-repl-set-nsno longer changes the repl session type fromcljs:shadowtoclj. - #3383:
cider-connect-clj&cljs: don't render"ClojureScript REPL type:"for JVM repls. - #3331:
cider-eval: never jump to spurious locations, as sometimes conveyed by nREPL. - #3112: Fix the CIDER
xref-find-referencesbackend to return correct filenames. - #3402: Fix
cider-format-connection-paramsedge case for Emacs 29. - #3393: Recompute namespace info on each shadow-cljs recompilation or evaluation.
- Recompute namespace info on each fighweel-main recompilation.
- #3250: Don't lose the CIDER session over TRAMP files.
- #3413: Make jump-to-definition work in projects needing
cider-path-translations(i.e. Dockerized projects). - #2436: Prevent malformed
cider-repl-history-files from failingcider-jack-in. - #3456: Restore xref-based jump-to-definition in Babashka (and any nREPL clients not having cider-nrepl).
- #3466: Restore the usual
cider--connected-handlerperformance for JVM Clojure repls. - #3503: Make
cider-repl-set-nsmore reliable on Piggieback connections. - Fix the
xref-find-definitionsCIDER backend to return correct filenames. - Fix the
cider-xref-fn-depsbuttons to direct to the right file. - Fix the
cider-find-keywordoverall reliability and correctness, particularly for ClojureScript. - Make TRAMP functionality work when using non-standard ports.
- Fix the
cider-insert-commands-mapvariable initialization.
- Ensure that
cidercompletion isn't used with completion styles that are currently unsupported (initials,partial-completion,orderless, etc).- This restores completions for users that favor those styles - otherwise the would see bad or no completions.
- Relatedly,
cider-company-enable-fuzzy-completionis now deprecated in favor ofcider-enable-flex-completion.
- Improve support for multiple forms in the same line by replacing
beginning-of-defunfn. - #3390: Enhance
cider-connectto show all nREPLs available ports, instead of only Leiningen ones. - #3408:
cider-connect: check.nrepl-port-like files for liveness, hiding them if they don't reflect an active port. - Introduce
cider-stacktrace-navigate-to-other-windowdefcustom. - Preserve the
:cljs-repl-typemore reliably. - Improve the presentation of
xrefdata. - #3419: Also match friendly sessions based on the buffer's ns form.
- Always match friendly sessions for
cider-ancillary-buffers(like*cider-error*,*cider-result*, etc). cider-test: only show diffs for collections.cider-inspector-def-current-valnow can suggest a var name (default none), which can be customized viacider-inspector-preferred-var-names.- The
"Member in class: "prompt can now be optionally skipped in ido-mode by pressing<up>or<down>(doc). - #3375:
cider-test: don't render a newline between expected and actual, most times. - Interactive evaluation: show a shorter overlay when rendering compilation errors.
- e.g., the
Syntax error compiling clojure.core/let at (foo/bar.clj:10:1)prefix is now removed.
- e.g., the
- Ensure there's a leading
:when usingcider-clojure-cli-aliases. - Improve
nrepl-dicterror reporting. - Bump the injected
piggiebackto 0.5.3. - Bump the
clojure-moderequired version to 5.17.1, and useclojure-find-nsmore safely, which fixes issues such as #2849. - Bump the
parseednrequired version, and wrap its usage with a more informativeuser-error. - Bump the injected
cider-nreplto 0.39.1.- Improves indentation, font-locking and other metadata support for ClojureScript.
- Updates Orchard
- introduces support for displaying the docstring and arglists of 'indirect' vars (e.g.
(def foo bar)) for Clojure/Script. - fixes xref support across deftest vars.
- introduces support for displaying the docstring and arglists of 'indirect' vars (e.g.
- Updates Compliment
- Improves type hint propagation.
- Supports better completions for
doto,->,->>,some->, andsome->>. - Supports better completions for var-quote (
#'some/var). - Supports better completions for deftype field names.
- Updates Haystack.
- Now, in
*cider-error*, more internal stackframes will be hidden under thetoolingcategory.
- Now, in
- Updates Suitable
- avoiding side-effecting
->evaluation for pure-ClojureScript chains.
- avoiding side-effecting
- #3314: Detect
nrepl+unixsockets (say vialein nrepl :headless :socket nrepl.sock). - #3262: Add navigation functionality to
n/p/f/bkeys inside the data inspector's buffer. - #3310: Add ability to use custom coordinates in
cider-jack-in-dependencies. - cider-nrepl#766: Complete local bindings for ClojureScript files.
- #3179: Introduce
cider-jack-in-universalto support jacking-in without a project from a set of pre-configured Clojure project tools.
- Allow using
npx nbbascider-nbb-command. - #3281: Replace newline chars with actual newlines in
*cider-test-report*buffer, for prettier error messages. - Bump the injected
cider-nreplto 0.30. - #3219: Disable by default forcing the display of output when the REPL prompt is at the first line of the of the REPL window. This behavior is desirable, but very slow and rarely needed. It can be re-enabled by setting
cider-repl-display-output-before-window-boundariestot. - #3335: Disable the Paredit binding of RET in cider-repl-mode buffers, which can cause unexpected behaviour by appearing to hang instead of evaluating forms.
- #3307: Make eldoc highlighting on emacs special forms better match the location of the point when latest
cider-nreplis used.
- #3278: Introduce integration tests, which also fix a long standing issue with orphaned process on MS-Windows by contracting
taskkill, if available, to properly kill the nREPL server process tree. - #3061: Add support for
nbb. - #3249: Add support for Clojure Spec 2.
- #3247: Add the
cider-stacktrace-analyze-at-pointandcider-stacktrace-analyze-in-regioncommands to view printed exceptions in the stacktrace inspector.
- Bump the injected nREPL version to 1.0.
- #3061: Allow to use
cider-connect-cljfor self-hosted cljs repls (e.g.nbb). - #3291: Remove the
'cljs-pendingrepl-type. It is replaced bycider-repl-cljs-upgrade-pending. - #3261: If user is connecting to nREPL from a TRAMP buffer, use its connection parameters (port, username) for establishing SSH tunnel.
- Remove needless quotes from the choices of
cider-jack-in-auto-inject-clojure. - #2561: Disable undo in
*cider-test-report*buffers. - #3251: Disable undo in
*cider-stacktrace*buffers. - Consecutive overlays will not be spuriously deleted.
- #3260: Scroll REPL buffer in other frame.
- #3293: Can't jack in to more than one
bbprojects.
- #3226: Populate completions metadata, making it possible to change the style of completion via
completion-category-overrideorcompletion-category-defaults. - #2946: Add custom var
cider-merge-sessionsto allow combining sessions in two different ways: Settingcider-merge-sessionsto'hostwill merge all sessions associated with the same host within a project. Setting it to'projectwill combine all sessions of a project irrespective of their host. - Support Gradle jack-in via the Gradle wrapper (
gradlew), instead of just a globally installedgradleon thePATH. - Gradle projects can now inject dependencies and middleware as with other build tools (dependency injection requires Clojurephant 0.7.0 or higher).
- #3239: Added commands to evaluate and tap last sexp (
cider-tap-last-sexp) and sexp at point (cider-tap-sexp-at-point).
- Upgrade clojure-mode to 5.15.1.
- Upgrade injected
cider-nreplto 0.28.5. - #3200: Improve cider-browse-ns interface to allow selective hiding of var types as well as grouping options. Include private vars in result list.
- Changed default
cider-gradle-commandto./gradlewto use the Gradle wrapper. - Changed default
cider-gradle-global-optionsto""(empty, formerly--no-daemon). - #3234: Autocomplete multiple available ports on nREPL connect.
- #3235: Check
nameis a TRAMP file incider--client-tramp-filenameviatramp-tramp-file-p.
- Upgrade cider-nrepl to 0.28.4.
- #3195: Revert the change that resulted in
(error "Cyclic keymap inheritance")oncider-test-run-test. - #3182: Don't try to invoke JVM-specific code outside of JVM Clojure.
- #3202: Fix
cider-eval-ns-form- Do not always perform
undef-all. Undef only withC-uprefix. - Fix extraction of namespace name.
- Do not always perform
- #3188: Add support for
undef-allop, for removing stale vars and conflicting aliases.- Add new command
cider-undef-all. - Existing commands
cider-load-buffer,cider-load-file, andcider-eval-ns-formcan be called withC-uprefix to executeundef-allbefore reloading the ns.
- Add new command
- #3185: Add feature to
cider-eval-in-contextfor automatically extracting parent let bindings when called withC-uprefix argument. - Add new interactive command
cider-inspire-me. It does what you'd expect. - #3162: Save eval results into kill ring and registers.
- Add new customization variable
cider-eval-registerto automatically store the last interactive eval result into the specified register. - Add interactive command
cider-kill-last-resultto manually save the last eval result into kill ring.
- Add new customization variable
- #3170: Skip ensure repl available checks on xref functions. (this improves the interop with
clojure-lsp) - #3173: Locally remove
cider-complete-at-pointfromcompletion-at-point-functionsinstead of killing it as a local variable. - #3172: Restore the long-lost (but critical) inspirational message on connect.
- #3186: An assortment of small fixes.
- #3148: Display error messages in multiline comment eval results, and in result overlays when
cider-show-error-bufferis set tonil. - #3149: Add option
'changetocider-eval-result-duration, allowing multiple eval result overlays to persist until the next change to the buffer.
- #3127: Strip all exec-opts flags (
-A-M-T-X) if they exist incider-clojure-cli-aliases. Also addresses a duplicate:in the generatedcljcommand. cider-jack-in-lein-pluginsno longer affects non-Leiningen projects.- Third-party packages should rely on
cider-jack-in-dependenciesinstead.
- Third-party packages should rely on
- Upgrade cider-nrepl to 0.28.3.
- Remove
cider-jdk-src-pathsdefcustom since enrich-classpath makes it redundant. - Remove
cider-resolve-java-classfunction since enrich-classpath makes it redundant.
- Upgrade enrich-classpath, which fixes various edge cases.
- Remember: at the moment the enrich-classpath is disabled by default. If you wish to try it out, you can customize
cider-enrich-classpathtot. - Also remember: for it to work, on Linux, you'll also have to do something like
sudo apt install openjdk-11-source(depending on your package manager and JDK of choice).
- Remember: at the moment the enrich-classpath is disabled by default. If you wish to try it out, you can customize
- #3145: Allow fallback to other
xrefbackends if cider-nrepl is not loaded. - #3148: Fix eval result overlays at point inheriting the faces of following text.
- #3133: Respect
cider-injected-middleware-version. - #3163:
cider-clojuredocs: prevent redundant prompt for a symbol.
- Integrate enrich-classpath by default for Leiningen projects.
- This enables functionality related to Java sources, javadocs or parsing thereof.
- This can slightly slow down jack-in for the first time for a given project; later on the related work will be cached.
- The feature is experimental at this point and needs to be enabled with
(setq cider-enrich-classpath t).
- #2831: Add
xrefintegration, configured with customizable variablescider-use-xrefandcider-xref-fn-depth. - #3017: Annotate company completion kinds.
- #3040: Support invoking
cider-clojuredocswithin the*clojuredocs*buffer. - Make it possible to specify the version of
cider-nreplto use withcider-jack-in. Seecider-injected-middleware-version. - Make it possible to specify the version of nREPL to use with
cider-jack-in. Seecider-injected-nrepl-version. - Upgrade
cider-nrepl,Orchardandclj-suitablefor pulling their latest bugfixes. - Add support for babashka projects to
cider-jack-in. - Introduce
cider-jack-in-lein-middlewaresdefcustom. - #3093: Make
see-alsos clickable in ClojureDocs buffers. - #3044: Dynamically upgrade nREPL connection. See
cider-upgrade-nrepl-connection.
- #3022: Handle empty stacktraces, pointing users to docs about the
OmitStackTraceInFastThrowJVM optimization. - #3020: Fix session linking on Windows, e.g. when jumping into a library on the classpath.
- #3031: Fix
cider-eval-defun-up-to-pointfailing to match delimiters correctly in some cases, resulting in reader exceptions. - #3039: Allow starting the sideloader for the tooling session.
- #3041: Sideloader: handle binary files, support multiple directories.
- #3047: Fix info/lookup fallback: response has an extra level.
- #2746: Handle gracefully Clojure versions with non-standard qualifiers (e.g.
1.11.0-master-SNAPSHOT). - #3069: Fix cursor color changing when it shouldn't in
evil-mode. - #3071: Use
xrefinstead ofetagsto push point to marker stack. - #3074: Recognize
pwshas apowershellexecutable.
- Drop support for Emacs 25 (this tracks upstream deps like
parseednthat no longer support Emacs 25 and is line with our compatibility policy for RHEL and Debian).
- #3014: Update Krell repl initialization code to follow latest guidelines as found in Krell wiki.
- #3012: Allow connecting sibling repls from any buffer.
- #3010: Remove
::auto-resolved keyword expansion logic fromcider-symbol-at-point, moving it tocider-browse-spec.
- #2930: Add new customization variable
cider-test-default-include-selectorsandcider-test-default-exclude-selectorsfor specifying default test selectors when running commands such ascider-test-run-ns-tests. - #2907: Add new customization variable
cider-format-code-optionsto specify options used bycljfmtto format code when running commandscider-format-buffer,cider-format-regionandcider-format-defun. - #3002: [Inspector] Make collection member truncation limits configurable.
- #2871: Restore the dynamic code completion (the actual fixes are in
clj-suitableandcider-nrepl). - #2993: Fix bug where calling
cider-repl-set-nsfor a cljs ns whencider-repl-require-ns-on-setistwould fail. - #2983: Update signal description in nrepl server sentinel as a workaround for Emacs bug #46284 affecting v27.1 on Windows.
- #2941: Use main args in alias for clojure cli.
- #2953: Don't font-lock function/macro vars as generic vars.
- #2964: Fix issue with
cider-company-enable-fuzzy-completionand Helm. - #2937: Green fringe produced for extra line in rich comment block.
- #2996: Fix debugger incorrectly locating
#_ignored forms. - Fix a compatibility issue with Java 15 and fetching fresh ClojureDocs data. (fixed in
cider-nrepl0.25.6) - #3004: Use appropriate coding system when unzipping jars.
- #2934: Enable
eldoc-modein existing clojure buffers.
- Removed
cider-clojure-cli-parametersdue to clojure-cli jack-in changes. - Changed the behaviour of
cider-last-sexpso it returns only the sexp, excluding all whitespace and/or the first newline after.
- #2909: Add new customization variable
cider-inspector-auto-select-bufferto control the auto selection of the inspector buffer. - #2940: Add a new customization variable cider-shadow-watched-builds to allow watching several shadow-cljs builds at the same time.
- Fix broken links to the docs in REPL warnings (the REPL links included the full CIDER version, but the docs URLs are without the patch version).
- #2916: Fix ordering of dependencies, global-opts and params for Clojure CLI projects when calling
cider-jack-in. - #2929: Fix handling of reader tags or metadata when calling
cider-eval-last-sexp-and-replace.
- Bump the injected nREPL version to 0.8.3.
- Bump the injected
cider-nreplversion to 0.25.5. - Bump the injected Piggieback version to 0.5.2. See this issue for details.
- #2897: Translate paths from CIDER to nREPL and vice-versa.
- Set
cider-prompt-for-symboltonilby default.
- #2886: Don't check for
node's presence before starting a browser REPL. - #2889: Fix a typo in
cider-info-form.
- Bump the injected piggieback version to 0.5.1.
- Add first class support for Babashka (more warnings when you connect to
babashka.nrepl). - Add support for nREPL 0.8's
lookupop. - Add support for nREPL 0.7's sideloading functionality (experimental).
- Add support for nREPL 0.8's
ls-middlewareop. - #2861: Add support for the Krell REPL.
- #2881: Add command to evaluate list around point (
cider-eval-list-at-point).
- #2527: Enable auto-clear of REPL buffer by setting a limit to the max buffer size.
- #2852: Convert 1-based column numbers in response map to Emacs' 0-based system.
- Differentiate between more types in
cider-eldoc. They used to be justvarandfnand now we have additional handling for macros, special forms and methods. - No longer fetches ClojureDocs data on first run (it's now bundled with
cider-nrepl). - No longer updates the ClojureDocs data automatically on startup (it has to be updated explicitly using
M-x cider-clojuredocs-refresh-cache). - Use nREPL 0.8 by default (when doing
cider-jack-in).
- Handle properly missing file metadata in
cider-docbuffers, when you eval fallback to obtain var metadata. - Show eldoc for
.and... - #2860: Don't send blank strings in
eldocrequests. - #2718: When calling
cider-pprint-eval-last-sexp-to-comment, avoid printing empty comment if eval throws error. - #2796: Closing CIDER connection will disable the debug minor mode on clojure buffers.
- #2482: Improvements to CIDER Inspector.
- New defcustom
cider-inspector-skip-uninterestingto control whether to skip over nils, numbers and keywords when navigating between values in the inspector buffer. - New defcustom
cider-auto-inspect-after-evalto control whether a visible inspector buffer is updated with the last evaluated result.
- New defcustom
- #2833: Save command history for jack-in with universal arg.
- #2828: Bind "L" to toggle display of locals during a debug session.
- #2800: Add support for force-out debugger command.
- Add support for nREPL 0.8
completionsop. It's used ifcider-nreplis not available. - Add
browserto the list of supported ClojureScript REPL types. - Add an interactive command to toggle Clojure font-locking in the REPL (
cider-repl-toggle-clojure-font-lock). - Add a defcustom controlling nREPL's print buffer size (
cider-print-buffer-size). It's set to 4K by default, nREPL own default is 1k.
- #2826: Add support for symbols with quotes and resolving of ns-aliased keywords in
cider-symbol-at-point. - #2617: Add menu bar entry for
Insert last sexp in REPL. - Removed support for the Nashorn ClojureScript REPL. (it was removed upstream in ClojureScript)
- #2825: Disable support for displaying images in the REPL. (set
cider-repl-use-content-typesto re-enable it) - #2850: Ensure you're in the middle of a window after commands like
cider-find-var.
- #2839: Fix symbol-at-point on var-quoted symbols.
- #2807: Fix require-repl-utils for shadow-cljs repls.
- #1971, #2628: Don't try to font-lock multi-chunk results in the REPL.
- #2816: Update eldoc to work with Emacs 28.1.
- #2744: Add startup commands to REPL banner.
- #2499: Add
cider-jump-to-pop-to-buffer-actions. - #2738: Add ability to lookup a function symbol when cursor is at the opening paren.
- #2735: New debugger command
Pto inspect an arbitrary expression, it was previously bound topwhich now inspects the current value. - #2729: New cider inspector command
cider-inspector-def-current-vallets you define a var with the current inspector value.
- #2781: Extend
cider-doc-xref-regexpto recognize[[var]]syntax and fully qualified symbols as xref links in cider-doc buffers. - #2731: Make the in-buffer debugging menu customizable via
cider-debug-prompt-commands.
- #2787: Fix nrepl process naming collision when using
nrepl-hide-special-buffers. - #2739: Start built-in shadow-cljs build profiles correctly (node-repl, browser-repl).
- #2730: Require REPL utilities into current namespace not just
userns. - #2614: Fix error highlighting in source buffers for Clojure 1.10.
- #2733: Restore compatibility with Emacs 25.3.
- New configuration variable
cider-result-overlay-positiondetermining where debugger and inline eval result overlays should be displayed. Current options are 'at-eol and 'at-point. - #2606: Defcustom
cider-path-translationsfor translating paths from nREPL messages (useful where a file appears to be somewhere, but it's actually somewhere else). - #2698: Infer figwheel builds automatically.
- New command
cider-clojuredocs-refresh-cache.
- #2711:
cider-selectorhas more robust handling for edge cases. - #2572: Make it possible to a start a one off ClojureScript REPL without defining a new REPL type.
- Dynamic cljs completions (via suitable) can be disable by setting
cider-enhanced-cljs-completion-pto nil.
- #2715: Fix the
shadow-cljspresence check. - #2705: Middleware version check looks at only at the minor version for comparison (when the major version is 0) and ensures a matching major and a minor >= required otherwise.
- Fixed some bugs related to the new suitable-powered ClojureScript code completion (this was fixed by upgrading the
suitableused bycider-nrepl). - Remove a misplaced error message when doing
clojuredocs-lookup. - #2721: Handle properly symbols ending in
.(e.g.SomeRecord.).
- #2656: Base64 encode clojure command and arguments on jack-in when
cider-clojure-cli-commandis"powershell"to avoid escaping issues. If noclojurecommand is found on Windowscider-clojure-cli-commanddefaults to"powershell". - Allow editing of jack in command with prefix or when
cider-edit-jack-in-commandis truthy. - New defcustom
cider-repl-require-ns-on-set: Set it to make cider require the namespace before setting it, when callingcider-repl-set-ns. - #2611: Add
eval-based classpath lookup fallback. It's used when cider-nrepl is not present. - #2611: Add
eval-based var info lookup fallback. It's used when cider-nrepl is not present. - #1840: Add a command to find runtime function references (
cider-xref-fn-refs). - Add a command to find runtime function dependencies (
cider-xref-fn-deps). - Add a menu to the inspector.
- Add completion of shadow-cljs build names in the minibuffer when connecting or jacking in.
cider-use-tooltipsnow also controls whetherhelp-echois used.cider-print-optionsis now supported by theproption forcider-print-fn. The options will now be also used by interactive eval commands that do not use pretty-printing.spec-listandspec-formrequests send the current namespace for alias resolution.C-c , C-gandC-c C-t C-gcancel the key chord instead of rerunning the last test. The respective command has been moved toC-c , C-a,C-c , a,C-c C-t C-aandC-c C-t a.- #2643: (Breaking) Stop using the
cider.tasks/nrepl-servercustom task forcider-jack-inwith Boot. - #2647:
cider-repl-require-repl-utilsnow loads cljs specific REPL utils in cljs buffers. - #2689:
cider-load-buffernow takes an optionalcallbackthat will override the defaultcider-load-file-handler. - #2689:
cider-load-file-handlernow takes an optionaldone-handlerlambda that is run once load is complete.
- #2685: Send
exclude-regexpsin apropos under correct key - Stop cursor moving when initialising the CIDER REPL, when
cider-repl-pop-to-buffer-on-connectis nil. This fixes a bug introduced by commit e0aca78b. - #2577: Ensure user friendly error messages if a REPL connection is expected but none was found in certain situations.
- #2593: The REPL's initial namespace is now set correctly if configured in another tool (e.g. Leiningen's
:init-ns). - #2607: Use markers for specifying insertion point for
cider-eval-*-to-commentcommands. This fixes a bug where editing the buffer during a pending evaluation resulted in comments appearing in unintended locations. - #2308: Don't rely on the classpath in
cider-library-present-p. Now it does arequireinstead to check if some library is present or not. - #2541: Hook properly CIDER's code completion machinery.
- #2659: Handle
#shadow/envreader tags incider--shadow-get-builds. - #2676: Widen before
cider--file-string, to allowcider-load-bufferto work on narrowed buffers. - Don't disable
cider-modeuntil all CIDER sessions have been closed.
- The
cider-test-run-*andcider-ns-refresh-*commands are now interruptible by thecider-interruptcommand. - Many commands now stream printed results back to the client incrementally – meaning it's now possible to, for example, interrupt evaluations while their result is being rendered.
- New option:
cider-repl-init-code. This is a list of strings containing Clojure code to evaluate when the REPL starts (with bindings for anyset!-able vars in place). Replacescider-print-lengthandcider-print-level, which are now obsolete. - New option:
cider-print-quota. This is a hard limit on the number of bytes that will be returned by any printing operation. This defaults to one megabyte and can be set tonilif no limit is desired.
- Add new defcustom
cider-switch-to-repl-on-insert: Set to prevent cursor from going to the REPL when inserting a form in the REPL with the insert-to-repl commands. Replaces obsoletedcider-switch-to-repl-after-insert-p - (Breaking) Upgrade to nREPL 0.6.0. This is now the minimum required version.
- (Breaking) Upgrade to piggieback 0.4.0. This is now the minimum required version.
- (Breaking) Remove
cider.nrepl.middleware.pprint. All functionality has been replaced by the built-in printing support in nREPL 0.6. - Option
cider-repl-scroll-on-outputis now obsolete, and the default REPL behavior has changed to not recenter the window. The built-in variablescroll-conservativelycan be set to 101 (either globally or locally in the REPL buffer) to restore the old behavior. This change has a dramatic positive effect on REPL performance. cider-pprint-fnandcider-pprint-optionsare now obsolete, replaced bycider-print-fnandcider-print-options.cider-debug-print-options,cider-stacktrace-print-options, andcider-repl-pretty-print-widthare now all obsolete, replaced bycider-print-options.- #2546: New defcustom
cider-ns-save-files-on-refresh-modesto control for which bufferscider-ns-refreshshould save before refreshing.
- Fix values for
cider-preferred-build-toolvariable. - Fix value and safe property for
cider-allow-jack-in-without-projectvariable. cider-ns-save-files-on-refreshwill now save any modified buffers visiting files on the classpath, rather than just in the current project.cider-expected-nsno longer requires an absolute path as its argument, and now internally handles paths canonically and consistently.- Fixed a bug causing REPL output to be inserted after the prompt.
- Fixed a bug causing
cider-pprint-eval-last-sexp-to-commentandcider-pprint-eval-defun-to-commentto not insert anything. cider-find-varnow correctly uses a new window when passed a prefix of-or a double prefix argument.
- Make it possible to pass an options map to the currently selected pprint function via
cider-pprint-options. - Add support for zprint.
- Make it possible to eval and pprint in the scratch buffer using
C-u C-j. - #2532: Add support for
CompilationExceptiondynamic source location discovery.
- #2496: Replace CIDER's pprint implementation with nREPL 0.5's built-in pprint support.
- #2558: Load clj, cljc, & cljs (if cljs REPL available) files on
cider-load-all-files(C-c C-M-l). Previously, this only loaded clj files. - Enable pretty-printing in the REPL by default.
- #2532: Fix re-display hangs while dynamically recovering source locations under mouse pointer.
- #2560: Detect REPL type for completion, eldoc and info ops.
- #2430:
cider-find-varopens archive files inside AVFS folders if AVFS is detected. - #2446: Implement Sesman friendly sessions to allow for on-the-fly association with sessions from dependency projects and jars.
- #2253: Split
continuedebug command into "continue till next breakpoint" (c) and "continue non stop" (C) commands.
- #2474: Fix incorrect detection of output and out-of-order printing.
- #2514: Don't auto-jump to warnings when
cider-auto-jump-to-erroris set to 'errors-only. - #2453: Make it possible to debug deftype methods by direct insertion of #dbg and #break readers into the deftype methods.
- #1869,cider-nrepl#460: Fix
continuedebugger command which was stopping entering debugger on repeated invocations. - #2444: Reuse dead REPL buffers on new connections.
- #2441: Make it possible to use
C-c C-xkeys without loading cider first (autoloadcider-start-map). - #2440: Make
cider-check-cljs-repl-requirementstake effect again. - #2439: Remove mentions of
cider-toggle-connection-bufferfrom the docs. - #2435: Remove killed REPLs from sessions in client sentinel.
- Fix jack-in from inside of remote buffers.
- #2454: Fix erratic inspector behavior when multiple REPLs are connected
- #2467: Make generic CIDER ops use any available nREPL connection.
- #2105: Fix no comment syntax defined message when loading buffer after running a failing test.
- #2115: Reset the current buffer after
display-buffer.
- #2482: Don't bind nREPL server started by
cider-jack-into::(uselocalhostinstead). - #2484: Fix issues where some functionality in REPL buffers (like eldoc) was broken.
- #2484: REPL types are now symbols instead of strings.
- #1544: Add a new defcustom
cider-infer-remote-nrepl-portsto control whether we use tramp/ssh to infer remote ports. Now defaulting tonil(previously it always tried to infer).
- #2375: Move
cider-eval-toplevel-inside-comment-forminto clojure-mode asclojure-toplevel-inside-comment-formsobeginning-of-defunis aware of comment forms. - Add new
cider-session-name-templatevariable for flexible customization of cider session and REPL buffer names. - Bind
C-c M-rtocider-restart. - Add new
cider-start-mapkeymap (C-c C-x) for jack-in and connection commands. - Add new
cider-ns-mapkeymap (C-c M-n) for namespace related functionality. - Allow evaling top level forms in a comment form rather than the entire comment form with
cider-eval-toplevel-inside-comment-form. - Create keymap for inserting forms into the REPL at
C-c C-j. - Add new defcustom
cider-invert-insert-eval-p: Set to cause insert-to-repl commands to eval the forms by default when inserted. - Add new defcustom
cider-switch-to-repl-after-insert-p: Set to prevent cursor from going to the REPL when inserting a form in the REPL with the insert-to-repl commands. - Inject piggieback automatically on
cider-jack-in-clojurescript. - Introduce a new command named
cider(C-c M-x) that acts as a simple wrapper around all commands for starting/connecting to REPLs. - #2305: Make it possible to disable the REPL type auto-detection by customizing
cider-repl-auto-detect-type. - #2373: Make it possible to configure the welcome message displayed in scratch buffers via
cider-scratch-initial-message. - Add the ability to jump to the profiler buffer using
cider-selector. - #1980: Echo back missing namespace name on interactive eval (requires nREPL 0.4.3+).
- #2397: Add shadow-select ClojureScript REPL type.
- #2314: Add
cider-ns-reloadandcider-ns-reload-allinteractive commands.
- #2317: The stdin prompt can now be cancelled.
- #2328: Added
cider-eval-sexp-to-point. - #2310:
cider-format-edn-last-sexpwill format the last sexp. - #2294: Fix setting default stacktrace filters.
- #2286: Fix eldoc issue with images in the REPL.
- #2307: Use a better error when a cljs REPL form cannot be found.
- Fix the broken test selector functionality.
- #2291:
cider-use-tooltipscustom variable works as expected. - #2424: Fallback to
leinas the default jack-in command whenclojureis not present.
- (Breaking) Move
cider-repl-set-ns, previously onC-c M-n, onC-c M-n (M-)nin thecider-ns-map. - (Breaking) Move
cider-ns-refresh, previously onC-c C-x, onC-c M-n (M-)rin thecider-ns-map. - (Breaking) Bump the minimum required Emacs version to 25.1.
- (Breaking) Drop support for Java 7 and Clojure(Script) 1.7.
- (Breaking) Use session name as part of CIDER buffers names (REPL, server, messages), and obsolete
nrepl-buffer-name-separatorandnrepl-buffer-name-show-port. Seecider-session-name-templateandcider-format-connection-paramsfor how to customize CIDER buffer names. - (Breaking) Use a custom task (
cider.tasks/nrepl-server) forcider-jack-inwith Boot (that's done to provide access to newer nREPL features to users of older versions of Boot). - Rename
cider-eval-defun-to-pointtocider-eval-defun-up-to-point. - Add support for printing to the current buffer to
cider-eval-defun-up-to-point. - Remove
cider-pingcommand. - Remove
cider-visit-error-bufferin favour of usingcider-selector. - Rename
cider-refreshtocider-ns-refresh(and all the related defcustoms). - (Breaking) Rewrote connection management (see https://docs.cider.mx/cider/usage/managing_connections.html for details).
- (Breaking)
cider-jack-in-clojurescriptnow creates only a ClojureScript REPL (usecider-jack-in-clj&cljsto create both REPLs). - #2357: Support both keywords and strings as test selectors (previously it was only strings).
- #2378: Add autoloads target to Makefile.
- Map
cider-pprint-eval-last-sexptoC-c C-v (C-)f (C-)ein thecider-eval-commands-map. - Map
cider-pprint-eval-defun-at-pointtoC-c C-v (C-)f (C-)din thecider-eval-commands-map. - Accept bare figwheel-main build names (e.g.,
dev). Previously, a keyword (e.g.,:dev) was required. - Stop releasing CIDER and cider-nrepl together. cider-nrepl now has its own release cycle and CIDER introduces
cider-required-middleware-versionto track it.
- #2248:
cider-replcan now display recognized images in the REPL buffer. - #2172: Render diffs for expected / actual test results.
- #2167: Add new defcustom
cider-jdk-src-paths. Configure it to connect stack trace links to Java source code. - #2161: Add new interactive command
cider-eval-defun-to-pointwhich is bound toC-c C-v (C-)z. It evaluates the current top-level form up to the point. - #2113: Add new interactive commands
cider-eval-last-sexp-in-context(bound toC-c C-v (C-)c) andcider-eval-sexp-at-point-in-context(bound toC-c C-v (C-)b). - Add new interactive command
cider-repl-set-type. - #1976: Add new interactive command
cider-connect-clojurescript. - Add a menu for
cider-browse-ns-mode. - #2160: Make it possible to configure the default
*print-level*and*print-length*via defcustoms (cider-repl-print-levelandcider-repl-print-length). - New interactive command
cider-cheatsheetallows you to browse the Clojure Cheatsheet with an Emacs interface. - #2191: Add support for jacking-in just with the
clojurecommand-line tool andtools.deps. - Make it possible to start a Nashorn ClojureScript REPL.
- #2235: Make the REPL ignore blank input rather than evaluating.
- #2241: Make
cider-test-ediffdiff eval'ed values. - Add support for shadow-cljs to
cider-jack-in. - #2244: Display the REPL type in the modeline.
- #2238: Allow specifying predicates for entries in
cider-jack-in-lein-pluginsandcider-jack-in-nrepl-middlewares. - Add support for test selectors. If test all or all loaded is called with a prefix ask for filter test selectors in the minibuffer and only run those tests in the project which match the filters. Add variation of test namespace which asks for filter selectors the same way and only runs a subset of the namespace tests.
- Add a configuration variable allowing to control whether server output should be redirected to the REPL (
cider-redirect-server-output-to-repl).
- #1913: Fix
cider-toggle-buffer-connectionto allow cycling of connection and restoring all connections in cljc buffers. - #2148: Fix
jump to definitionworking properly when remotecider-jack-inandcider-connect. - Font-lock failed assertions even in tests that were evaluated interactively.
- #2102: Make
cider-format-bufferhandle mismatched parens gracefully.
- #2163: Add
cider-browse-spec-regex, and changedcider-browse-spec-allto use it. - #2029: Make cider-doc use cider-browse-spec functionality to print the spec part of the doc buffer
- #2151: Improve formatting of spec in
cider-docbuffer. - Remove support for CLJX.
- Fix
cider-eval-regionmaskingclojure-refactor-mapincider-repl-mode. - #2171: Update
See Alsomappings for Clojure 1.9. - #2202: Make
cider-jack-in-clojurescriptprompt from the ClojureScript REPL type to use. - #2202: Don't try to start a ClojureScript REPL before checking whether that's possible or not.
- orchard#24: Inspector now separately renders clickable keys and values when inspecting maps.
- orchard#24: Inspector now remembers the current page of each level of nesting when navigating big and nested collection.
- Require piggieback 0.3 or newer.
- Drops support for Rhino in favour of the modern Nashorn.
- #2082, cider-nrepl#440: Add specialized stacktraces for clojure.spec assertions.
- #2111: Add
cider-pprint-eval-last-sexp-to-commentandcider-pprint-eval-defun-to-comment. - Add a REPL shortcut for
cider-repl-require-repl-utils(this makes it easy to require common functions likedoc,source, etc. in REPL buffers). - #2112: Add a new interactive command
cider-find-keyword(bound toC-c C-:). - #2144: Create a Docker image to mimic the Travis CI environment.
cider-switch-to-last-clojure-bufferswitches to most recent relevant Clojure(Script) buffer instead of the last "remembered" buffer.- cider-nrepl#438: Improve startup time by deferring loading CIDER's middleware until the first usage.
- #2078: Improve startup time by bundling together sync requests during startup.
cider-rotate-default-connectionwill warn if you use it with only a single active connection.cider-format-buffertries to preserve the point position.
- #2084: Select correct REPL type (clj or cljs) in
cider-switch-to-repl-bufferconditional on the current buffer. - #2088: Fix functions defined with
defbeing font-locked as vars instead of functions. - #1651, cider-nrepl#445: Fix
cider-expected-nsreturnsnilon boot projects. - #2120: Fix Travis CI build errors for Emacs versions >25.2.
- #2117: Ensure
cider-repl-result-prefixis only inserted before the first result chunk. - #2123: Process properly the Java version in Java 9.
- #2083: New utility function
cider-add-face. - #2083: New utility function
cider-run-chained-hook. - #2083: New
cider-repl-preoutput-hookthat allows custom output processing. - #2083: Highlight clojure.spec keywords in REPL (
cider-repl-highlight-spec-keywordspre-output processor).
- #2045
*cider-scratch*buffers are no longer automatically killed on connection quit. - #2083: Jump to other window when clicking on location references in REPL.
- #2083: Improve project namespace highlighting in REPLs.
- #2083: Find locations in more cases when clicking on references in REPL.
- #2004, #2039, cider-nrepl#420: Fix namespace issues in instrumentation and debugging commands.
- Project-Only stacktrace filter: hide all other tags when viewing project-only stacktrace.
- Fix interactive evaluation in cljc buffers with only one connection.
- #2058: Don't cache ns-forms in buffers with no such forms.
- #2057: Use
cider--font-lock-ensurefor compatibility with Emacs 24.5. - cider-nrepl#436: Ensure that
*print-right-margin*is not ignored by cider-nrepl middleware. - cider-nrepl#435: Allow debugging of forms with
#?(:cljs ... :clj ..)conditionals. - cider-nrepl#432: Ensure
pprintis afterload-file.
- #2050: Use
view-modeforcider-grimoirebuffers - Make stacktraces and other location references in REPL clickable.
- Highlight root namespace in REPL stacktraces.
- Filter stacktrace to just frames from your project.
- #1918: Add new commands
cider-browse-specandcider-browse-spec-allwhich start a spec browser. - #2015: Show symbols as special forms and macros in
cider-doc - #2012: Support special forms in
cider-aproposandcider-grimoire-lookup. - #2007: Fontify code blocks from
cider-grimoireif possible. - Add support for notifications from the NREPL server.
- #1990: Add new customation variable
cider-save-files-on-cider-refreshto allow auto-saving buffers whencider-refreshis called. - Add new function
cider-load-all-files, along with menu bar update. - Add new customization variable
cider-special-mode-truncate-lines. - Add an option
cider-inspector-fill-frameto control whether the cider inspector window fills its frame. - #1893: Add negative prefix argument to
cider-refreshto inhibit invoking of cider-refresh-functions - #1776: Add new customization variable
cider-test-defining-formsallowing new test defining forms to be recognized. - #1860: Add
cider-repl-historyto browse the REPL input history and insert elements from it into the REPL buffer. - Add new customization variable
cider-font-lock-reader-conditionalswhich toggles syntax highlighting of reader conditional expressions based on the buffer connection. - Add new face
cider-reader-conditional-facewhich is used to mark unused reader conditional expressions. - #1544: Add a new defcustom
nrepl-use-ssh-fallback-for-remote-hoststo control the behavior ofnrepl-connect(and in turn that ofcider-connect) for remote hosts. - #1910: Add custom company-mode completion style to show fuzzy completions from Compliment.
- Introduce
cider-*-global-optionsfor customizing options that are not related to tasks. - #1731: Change code in order to use the new
cider.tasks/add-middlewareboot tasks. - #1943: Add interactive function to flush Compliment caches.
- #1726: Order keys in printed nrepl message objects.
- #1832: Add new customization variable
cider-eldoc-display-context-dependent-infoto control showing eldoc info for datomic query input parameters. - Make it possible to disable auto-evaluation of changed ns forms via the defcustom
cider-auto-track-ns-form-changes. - #1991: Make it possible to disable the prompt to open a ClojureScript in a browser on connect via
cider-offer-to-open-cljs-app-in-browser. - #1995: Add new customization variable
cider-doc-auto-select-bufferto control cider-doc popup buffer auto selection. - Ensure that
cider-current-connectionpicks the most recently used connection in ambiguous cases. - Ensure that
cider-switch-to-repl-bufferpicks the most recent REPL buffer if multiple connections are available. - Add new function
cider-project-connections-types.
- Handle ANSI REPL evaluation created by Puget.
- Drop support for Emacs 24.3.
- Don't try to use ssh automatically when connecting to remote hosts and a direct connection fails. See
nrepl-use-ssh-fallback-for-remote-hosts. - #1945: Start nREPL servers bound to
::by default usingcider-jack-in. - Renamed
cider-prompt-save-file-on-loadtocider-save-file-on-loadand adjust its supported values accordingly (the default now is'promptand'always-saveis now simplyt). - #2014: Unify the format for
forms-strandarglists-str. - #2027: Mark many custom variables relating to
cider-jack-inas safe. - #2023: Make popup-buffer sexp indentation optional.
- #2040: Fix fontification of conditional expressions in cljc files.
- #2018: Don't delete wrong overlays during code evaluation.
- #1699: Fix "Method code too large!" error that occurred during instrumentation for debugging.
- #1987: Fix: Update faces when disabling a theme
- #1962: Fix performance in fringe overlay placement.
- #1947: Fix error on
cider-jack-inwhenenlighten-modeis enabled. - #1588: Redirect
*err*,java.lang.System/out, andjava.lang.System/errto REPL buffer on all attached sessions. - #1707: Allow to customize line truncating in CIDER's special buffers.
- #1876: Set pretty-printing width with
cider-repl-pretty-print-width. If this variable is not set, fall back tofill-column. - #1875: Ensure that loading and evaluation in cljc buffers is performed in both clj and cljs repls.
- #1897: Bind TAB in stacktrace buffers in the terminal.
- #1895: Connect to the same host:port after
cider-restartif the connection was established withcider-connect. - #1881: Add
cider-cljs-boot-replandcider-cljs-gradle-repldefcustom and hookboot-cljs-repl. - #1997: Fix a nil error when loading a code buffer and the error buffer is visible.
- #390: Workaround for orphaned java process on windows machine after quitting the REPL.
- #1825: Display test input generated by
test.check. - #1769: Display function spec in the doc buffers.
- Add a new interactive command
cider-toggle-request-dispatch. It allows you to quickly toggle between dynamic and static request dispatch. - Add a new interactive command
nrepl-toggle-message-logging. It allows you to quickly toggle nREPL message logging on and off within the scope of your current Emacs session. - #1851: Add a command to rerun the last test ran via
cider-test-run-test. The new command is namedcider-test-rerun-testand is about toC-c C-t (C-)g. - #1748: Add new interactive command
cider-pprint-eval-last-sexp-to-repl. - #1789: Make it easy to change the connection of the cider-scratch buffer from the mode's menu.
- New interactive command
cider-toggle-buffer-connection. - #1861: New interactive commands in message log buffer
nrepl-log-expand-buttonandnrepl-log-expand-all-buttons. - #1872: Add new value
display-onlyfor optioncider-repl-pop-to-buffer-on-connectthat allows for showing the REPL buffer without focusing it.
- #1758: Disable nREPL message logging by default due to its negative impact on performance.
- Warn when running
cider-jack-inwithout a Clojure project. This behavior is controllable viacider-allow-jack-in-without-project.
- #1677: Interpret
\ras a newline. - #1819: Handle properly missing commands on
cider-jack-in. - Add option to define exclusions for injected dependencies. Fixes #1824: Can no longer jack-in to an inherited clojure version.
- #1820: Don't try to display eldoc in EDN buffers.
- #1823: Fix column location metadata set by interactive evaluation.
- #1859: Make nREPL message log much faster.
nrepl-dict-max-message-sizecustom variable was removed. - #1613: Check whether a before/after refresh function is resolvable.
- Add an option
nrepl-prompt-to-kill-server-buffer-on-quitto control whether killing nREPL server buffer and process requires a confirmation prompt. - #1672: Allow setting a preferred build tool when multiple are found via
cider-preferred-build-tool. - Ensure Clojure version meets minimum supported by CIDER (1.7.0).
- Fringe indicators highlight which sexps have been loaded. Disable it with
cider-use-fringe-indicators. - New command:
cider-inspect-last-result. cider-cljs-lein-replnow also supports figwheel.- Option
cider-jack-in-auto-inject-clojureenables the user to specify a version of Clojure for CIDER. This allows the user to override the version used in a project, particular if it is lower than minimum required for CIDER. - Allow the ns displayed by eldoc to be tailored via
cider-eldoc-ns-function. - After connecting a ClojureScript REPL, CIDER will try to figure out if it's being served on a port and will offer to open it in a browser.
- #1720: Add a command
cider-eval-sexp-at-pointto evaluate the form around point (bound toC-c C-v v). - #1564: CIDER's internal namespaces and vars are filtered from the ns-browser and apropos functions.
- #1725: Display class names in eldoc for interop forms.
- #1572: Add support for variables in eldoc.
- #1736: Show "See Also" links for functions/variables in documentation buffers.
- #1767: Add a command
cider-read-and-eval-defun-at-pointto insert the defun at point into the minibuffer for evaluation (bound toC-c C-v .). - #1646: Add an option
cider-apropos-actionsto control the list of actions to be applied on the symbol found by an apropos search. - #1783: Put eval commands onto single map bound to
C-c C-v. - #1804: Remember cursor position between
cider-inspector-*operations.
- Simpler keybindings in macroexpand buffer. Expand one step with
mand all expansions witha. Previously wasC-c C-mandC-c M-m. - Signal an error sooner if the user misconfigured
cider-known-endpoints. cider-inspect-read-and-inspectis obsolete. Usecider-inspect-expressioninstead.- Extremely long overlays are truncated and
cider-inspect-last-resultis recommended. - Signal
user-errorinstead oferroron jack-in if a project type is not supported. - Users with
boot.shinstead ofbootshould customizecider-boot-commandinstead of relying on automatic detection. - #1737: Show value of locals in debugger tooltip.
- Rebind
cider-eval-last-sexp-and-replacetoC-c C-v w. - Rebind
cider-eval-regiontoC-c C-v r. - Rebind
cider-eval-ns-formtoC-c C-v n. - #1577: Show first line of docstring in ns browser.
cider-repl-closing-return(C-<Return>) now also completes brackets ([]) and curly braces ({}) in an expression.
- #1755: Impossible completion for multiple zombie REPL buffers.
- #1712: Bad compilation issue caused when installed along with
nim-mode. - Fix arglist display for
defin the doc buffer. - Use
cider-apropos-selectinstead ofcider-aproposincider-apropos-documentation-select. - #1561: Use an appropriate font-lock-face for variables, macros and functions in the ns-browser.
- #1708: Fix
cider-popup-buffer-displaywhen another frame is used for the error buffer. - #1733: Better error handling when no boot command is found in
exec-path. - Fix orphaned nrepl-messages buffer after
cider-quit. - #1782: Disable mouse-over tooltips when
help-at-pt-display-when-idleis non-nil. - #1811: Handle properly jack-in commands with spaces in them.
- Option
cider-use-tooltipscontrols the display of mouse-over tooltips. fkey reruns failed tests on the test-report buffer.gkey reruns test at point on the test-report buffer.- Debugger now supports step-in.
- Improve CIDER's menu-bar menu:
- Thoroughly reorganize it and split it into 3 separate menus;
- Add custom-written
:helpstrings to some items, and automatically add help strings to the rest; - Add a few commands;
- Grey-out commands that rely on connections while there is no connection.
- Var docstrings are automatically displayed in mouse-over tooltips.
- #1636: New minor-mode
cider-auto-test-modefor test-driven-development. When activated, tests are rerun after every load-file. - Javadoc commands take into account the variable
clojure.java.javadoc/*remote-javadocs*. - Javadoc also works on classes of the AmazonAWS Java SDK.
- Apropos commands now accept lists of space-separated words as arguments, in addition to regular expressions (similar to Emacs's own apropos commands).
- #1541: New commands
cider-apropos-select(bound toC-c C-d C-s) andcider-apropos-documentation-select(bound toC-c C-d c-e). - New function
cider-expected-nsis likeclojure-expected-ns, but uses classpath for better results. See clojure-mode#372. - A double prefix argument (
C-u C-u) forcider-eval-defun-at-pointdebugs the sexp at point instead of the entire defun, and offers to create a conditional breakpoint. - New command
cider-load-all-project-nsallows you to load all project namespaces. - Display eldoc for keywords used to get map keys.
- Display eldoc for
Classname.. - Display namespace in eldoc.
- cider-nrepl#313: Selectively suppress user-specified categories of middleware errors from foregrounding stacktrace buffers via the
cider-stacktrace-suppressed-errorsvariable.
- Doc buffer splits arglists into several lines.
- Changed the face of the words “Macro” and “Special form” in the doc buffer to be easier to see.
- Display multi-line eval overlays at the start of the following line. It looked weird that these overlays started on the middle of a line, but then folded onto the start of following lines.
- #1627: Align the terminology used by
cider-testwith the one used by lein and boot (use the termsassertionandtest). - Remove the warning about missing nREPl ops.
- #1420: Show stacktrace buffers for sync requests errors.
- cider-nrepl#329: Fix error instrumenting functions that call clojure.tools.logging.
- #1643: Running tests no longer deletes unrelated overlays.
- #1632: Redefining a function correctly updates eldoc.
- #1630: The debugger no longer gets confused inside
@redefs. - #1599: Don't error when test makes 0 assertions.
- #1563: Handle invalid regular expressions in apropos.
- #1625: Display a more meaningful message when running
an individual test using
C-c C-t t. - Fix buffer closing in
cider-close-ancillary-buffers. - Dynamic font-locking is also refreshed when a file's namespace depends on a namespace that was changed, so the traced-face should be immediately updated even on functions from another namespace.
- #1656: Apply ansi colors to output when doing eval and print.
- #1545: New feature: Enlighten. See the new Readme section for more information.
- #1169: New command
cider-eval-defun-to-comment. - Change default value of
cider-overlays-use-font-locktot. Unlike before, a value oft, causescider-result-overlay-faceis to be prepended to the font-lock faces (instead of just not being used). cider-result-overlay-facedefault value changed to a background and a box, so it can be prepended to other faces without overriding the foreground.- #1518: Add
cider-dynamic-indentationdefcustom, to disable dynamic indent functionality. - Font-lock traced vars.
- New defcustom,
cider-pprint-fn, allows you to set the function to use when pretty-printing evaluation results. - #1432: Show explicit error messages when invoking commands with no ClojureScript support.
- #1463: Assume that
cider-connectis invoked from within a project, and try to associate the created connection with this project automatically. - Typing
sin a debug session shows the current stack. - Typing
h(as in here) skips all sexps until the current point position. - #1507: Add the ability to control the REPL's scroll on output functionality via
cider-repl-scroll-on-output. - #1543: Add some getting started instructions to the welcome banner.
- New command
cider-drink-a-sip. Use in case you're thirsty for knowledge. - Make the connection message configurable via
cider-connection-message-fn. This means now you can have any function (e.g.cider-random-tip) provide the second part of the message. - New command
cider-repl-clear-banners. - New command
cider-repl-clear-help-banner.
- #1531
cider-jack-innow injects its own dependencies using CLI. Both leiningen and boot are supported. Setcider-inject-dependencies-at-jack-into nil to opt out. Extension point for other tools to inject their own dependencies iscider-add-repl-dependencies. cider-inspectnow operates by default on the last sexp. Its behavior can be altered via prefix arguments.- Requires Clojure(Script) 1.7 or newer.
- Requires Java 7 or newer.
- Improve stacktrace presentation of compiler errors (readability, DWIM point positioning).
- #1458: Separate nREPL messages by connections instead of by sessions.
- #1226: Enable running of all loaded and all project tests.
- Give test commands their own keybinding prefix (
C-c C-t). Use both single-key andControl+ letter mnemonics for these commands (as for the documentation commands). cider-testcommands now have keybindings incider-repl-mode. The keybindings are exactly the same as those incider-mode.- Changed the binding of
cider-apropos-documentationtoC-c C-d fandC-c C-d C-f(it wasC-c C-d A). - #1584: Don't enable
eldoc-modeautomatically incider-repl-mode. - #1585: Show the eval command in the debugger's prompt.
- #1578: nrepl-server-filter called with dead process buffer in Windows.
- #1441: Don't popup a buffer that's already displayed.
- #1557: When a sibling REPL is started by hasn't yet turned into a cljs REPL, it won't hijack clj requests.
- #1562: Actually disable cider-mode when it gets disabled.
- #1540: Fix cider-complete-at-point.
- cider-nrepl#294: Handle errors in the
complete-docnREPL op. - #1493: Support special forms in eldoc.
- #1529: Close nREPL message buffer when you quit its matching connection.
- #707: Better support clojure.test/with-test.
- Fix namespace navigation in the namespace browser.
- #1565: Fix font-locking in apropos buffers.
- #1570: Handle properly rest params in eldoc.
cider-current-connectionactually, really considers major mode beforecider-repl-type.
- #1521: Don't assume the REPL buffer is in the current frame in
cider-repl--show-maximum-output.
- Suppress eldoc when the current sexp seems to be too large.
- #1500: Improve the performance of REPL buffers by using text properties instead of overlays for ANSI coloring.
cider-current-connectionconsiders major mode beforecider-repl-type.
- #1450: Fix an error in
cider-restartcaused by a reference to a killed buffer. - #1456: Don't font-lock buffer if font-lock-mode is OFF.
- #1459: Add support for dynamic dispatch in scratch buffers.
- #1466: Correctly font-lock pretty-printed results in the REPL.
- #1475: Fix
args-out-of-rangeerror incider--get-symbol-indent. - #1479: Make paredit and
cider-repl-modeplay nice. - #1452: Fix wrong ANSI coloring in the REPL buffer.
- #1486: Complete a partial fix in stacktrace font-locking.
- #1482: Clear nREPL sessions when a connection is closed.
- #1435: Improve error display in cider-test.
- #1379: Fix test highlighting at start of line.
- #1490: Don't display the inspector buffer when evaluation fails.
- #1406: When running tests, report test ns in minibuffer messages.
- #1402: When tests pass after previously failing, update the test-report buffer to show success.
- #1373: Add gradle support for
cider-jack-in. - Indentation of macros (and functions) can be specified in the var's metadata, via indent specs.
- Abbreviated printing for functions multimethods. Instead of seeing
#object[clojure.core$_PLUS_ 0x4e648e99 "clojure.core$_PLUS_@4e648e99"]you'll see#function[clojure.core/+]. - #1376: Anything printed to
*out*outside an eval scope is also forwarded to all nREPL sessions connected from CIDER. Normally it would only be sent to the server'sout. - #1371: Font-lock deprecated vars with a background color.
- #1232: Add
cider-load-buffer-and-switch-to-repl-buffer. - #1325: Jump to error location when clicking on the error message in the stack-trace pop-up.
- #1301: CIDER can do dynamic font-locking of defined variables, functions, and macros. This is controlled by the
cider-font-lock-dynamicallycustom option. - #1271: New possible value (
always-save) forcider-prompt-save-file-on-load. - #1197: Display some indication that we're waiting for a result for long-running evaluations.
- #1127: Make it possible to associate a buffer with a connection (via
cider-assoc-buffer-with-connection). - #1217: Add new command
cider-assoc-project-with-connectionto associate a project directory with a connection. - #1248: Add TAB and RET keys to the test-report buffer.
- #1245: New variable,
cider-overlays-use-font-lockcontrols whether results overlay should be font-locked or just use a single face. - #1235: Add support for syntax-quoted forms to the debugger.
- #1212: Add pagination of long collections to inspector.
- #1237: Add two functions for use with
cider-repl-prompt-function,cider-repl-prompt-lastnameandrepl-prompt-abbreviated. - #1201: Integrate overlays with interactive evaluation.
cider-use-overlayscan be used to turn this on or off. - #1195: CIDER can create cljs REPLs.
- #1191: New custom variables
cider-debug-print-levelandcider-debug-print-length. - #1188: New debugging tool-bar.
- #1187: The list of keys displayed by the debugger can be configured with
cider-debug-prompt. - #1187: While debugging, there is a menu on the menu-bar listing available commands.
- #1184: When the user kills the REPL buffer, CIDER will offer to kill the nrepl buffer and process too. Also, when the client (repl) process dies, the server (nrepl) process is killed too.
- #1182: New command
cider-browse-instrumented-defs, displays a buffer listing all definitions currently instrumented by the debugger. - #1182: Definitions currently instrumented by the debugger are marked with a red box in the source buffer.
- #1174: New command
cider-run, runs the project's-mainfunction. - #1176: While debugging, cider's usual eval commands will evaluate code in the current lexical context. Additionally, the l key now inspects local variables.
- #1149: Two new ways to debug code, the
#breakand#dbgreader macros. - #1219: The output of
cider-refreshis now sent to a dedicated*cider-refresh-log*buffer. - #1219: New custom variables
cider-refresh-before-fnandcider-refresh-after-fn. - #1220: Treat keywords as symbols in lookup commands like
cider-find-var. - #1241: Passing a double prefix argument to
cider-refreshwill now clear the state of the namespace tracker used by the refresh middleware. This is useful for recovering from errors that a normal reload would not otherwise recover from, but may cause stale code in any deleted files to not be completely unloaded. - New defcustom
cider-result-use-clojure-font-lockallows you disable the use of Clojure font-locking for interactive results. - #1239: New defcustom
cider-refresh-show-log-buffer, controls the behavior of the*cider-refresh-log*buffer when callingcider-refresh. When set to nil (the default), the log buffer will still be written to, but not displayed automatically. Instead, the most relevant information will be displayed in the echo area. When set to non-nil, the log buffer will be displayed every timecider-refreshis called. - #1328: Auto-scroll the
*nrepl-server*buffer on new output. - #1300: Add the ability to replicate an existing connection with
cider-replicate-connection. - #1330: Leverage nREPL 0.2.11's source-tracking feature.
- #1392: Track definitions made in the REPL.
- #1337: Added a command to switch between the Clojure and ClojureScript REPLs in the same project (bound to C-c M-o in
cider-repl-mode).
- #1299 C-c C-k and C-c C-l now dispatch to both the Clojure and ClojureScript REPL (in the same project) when called from a
.cljcor.cljxfile. - #1397 C-c M-n now changes the ns of both the Clojure and ClojureScript REPL (in the same project) when called from a cljc or cljx file.
- #1348: Drop the dash dependency.
- The usage of the default connection has been reduced significantly. Now evaluations & related commands will be routed via the connection matching the current project automatically unless there's some ambiguity when determining the connection (like multiple or no matching connections). Simply put you'll no longer have to mess around much with connecting-setting commands (e.g.
nrepl-connection-browser,cider-rotate-default-connection). - #732:
cider-quitandcider-restartnow operate on the current connection only. With a prefix argument they operate on all connections. nrepl-log-messagesis now set totby default.- Renamed
cider-repl-output-facetocider-repl-stdout-faceandcider-repl-err-output-facetocider-repl-stderr-face. - Clearing the REPL buffer is now bound to
C-u C-C C-o. - #1422: Don't display mismatching parens error on incomplete expressions in REPL buffers.
- #1412: nREPL messages for separate sessions are tracked in separate buffers.
- Removed
cider-switch-to-repl-command. - Renamed
cider-default-repl-commandtocider-jack-in-default.
- #1384: Match windows file names in
cider-compilation-regexp. - #1252
cider-repl-clear-bufferstops working in certain circumstances. - #1164: Fix an error in
cider-browse-ns--doc-at-point. - #1189: Don't show result from automatic ns form evaluation.
- #1079: Don't try to font-lock very long results. The maximum font-lockable result length is controlled by
cider-font-lock-max-length.
- #1155: The debugger displays overlays highlighting the current sexp and its return value.
- #1142: Don't retrieve nrepl ports when
cider-known-endpointsentry already contains the port. - #1153: Fix behavior of
cider-switch-to-current-repl-buffer. - #1139: Fix evaluation of ns forms and of forms with unevaluated namespaces.
- Replace
assertwithcl-assert(we don't use anything fromclnow). - #1135: Fix a corner case with locals display in the debugger.
- #1129: Fix occasional
(wrong-type-argument stringp nil)on clojure-android. - #1122: Run client initialization in new client buffer.
- #1143: Handle tests without location metadata.
- #1109: New defcustom
cider-auto-mode. On by default, whennildon't automatically enablecider-modein all Clojure buffers. - #1061: New command
cider-find-ns, bound to C-c C-., which prompts for an ns and jumps to the corresponding source file. - #1019: New file, cider-debug.el.
Provides a new command,
cider-debug-defun-at-point, bound to C-u C-M-x. Interactively debug top-level clojure forms. - New defcustom,
cider-auto-select-test-report-buffer(boolean). Controls whether the test report buffer is selected after running a test. Defaults to true. - Trigger Grimoire doc lookup from doc buffers by pressing g (in Emacs) and G (in browser).
- #903: Isolate
nrepl-clientconnection logic from CIDER. New hookscider-connected-hookandcider-disconnected-hook. - #920: Support
cider-jack-infor boot-based projects. - #949: New custom var:
cider-default-repl-command. - New code formatting commands -
cider-format-buffer,cider-format-regionandcider-format-defun. - New data formatting commands -
cider-format-edn-bufferandcider-format-edn-region. - New insert region in REPL command -
cider-insert-region-in-repl. - Pretty printing functionality moved to middleware, adding support for ClojureScript.
- New command to eval and pprint result:
cider-interactive-pprint-eval. cider-format-pprint-evalhas been removed.
- New command to eval and pprint result:
- Warn when used with incompatible nREPL server.
- Allow the prompt to be tailored by adding
cider-repl-prompt-functionandcider-repl-default-prompt. - Support for middleware-annotated completion candidates.
cider-annotate-completion-functioncontrols how the annotations are formatted.cider-completion-annotations-alistcontrols the abbreviations used in annotations.cider-completion-annotations-include-nscontrols when to include the candidate namespace in annotations.
- Inspector middleware now relies on
evalmiddleware, adding support for ClojureScript. - Better printing of large amounts of exception cause data in the error buffer.
- New defcustom,
cider-stacktrace-print-length(boolean).
- New defcustom,
- #958: Reuse existing repl buffers with dead processes. Users are now informed about existing zombie repl buffers and are offered the choice to reuse those for new connections.
- New defcustom,
cider-prompt-for-symbol. Controls whether to prompt for symbol when interactive commands require one. Defaults to t, which always prompts. Currently applies to all documentation and source lookup commands. - #1032: New functions,
cider-find-dwimandcider-find-dwim-other-window. These functions combine the functionality ofcider-jump-to-varandcider-jump-to-resource. Which are now renamed tocider-find-varandcider-find-resourcerespectively. - #1014: A prefix of - causes
cider-find-varandcider-find-resourceto show results in other window. Additionally, a double prefix argument C-u C-u inverts the meaning ofcider-prompt-for-symboland shows the results in other window. - #1062: Added completion candidates to
cider-find-resource. - Middleware support for Piggieback 0.2.x.
- In the namespace browser,
dandsare now bound to show the documentation or the source respectively for the symbol at point. - #1090: New defcustom,
cider-macroexpansion-print-metadata(boolean). Controls whether metadata of forms is included in macroexpansion results. Defaults to nil.
- Display the current connection instead of the current namespace in
cider-mode's modeline. - #1078: Removed
cider-load-fn-into-repl-buffer, previously bound toC-c M-fin the REPL. - #1019:
C-u C-M-x no longer does
eval-defun+print-result. Instead it debugs the form at point. - #854: Error navigation now
favors line information reported by the stacktrace, being more detailed than
the info reported by
infomiddleware. - #854: Add
nrepl-dictconstructor. - #934: Remove
cider-turn-on-eldoc-modein favor of simply usingeldoc-mode. - #953: Use
sshxinstead ofsshincider-select-endpoint. - #956: Eval full ns form only when needed.
- Enable annotated completion candidates by default.
- #1031: Interactive functions prompt with symbol at point as a default value.
- Remapped
cider-grimoireto C-c C-d r & C-c C-d C-r to avoid conflicts with C-g. - #1088: Kill the source-tracking evaluation hack as it wasn't compatible with ClojureScript.
- Removed
clojure-enable-ciderandclojure-disable-cider.
- #921: Fixed
non-functioning
cider-test-jumpfrom test reports. - #962: On error don't auto-jump to tooling files.
- #909: Fixed
cider-repl-set-ns's behavior for ClojureScript. - #950: Eval
nsform in theusernamespace when usingcider-interactive-eval. - #954: Detect properly a project's root when in buffer that's not visiting a file (e.g. a REPL buffer).
- #977:
cider-format-regionnow respects indentation of the region start position. - #979: Fixed the inspector buffer popping up needlessly.
- #981: Updated
cider-find-fileto usefind-buffer-visitinginstead ofget-file-buffer. - #1004:
:repl-envkey is now filtered from exception causes, as it contains unprintably large strings of compiled javascript when using ClojureScript. - Tunneled ssh connection now deals correctly with the ssh password request.
- #1033: Removed erroneous underlining from stacktrace frames and disabled frame filters in the error buffer.
- The error buffer no longer pops up when there is no error to display.
cider-find-resourcenow correctly throws an error when no path is provided.- #946:
cider-stacktrace-modeis now enabled before the error buffer is displayed. - #1077: Respect
cider-repl-display-in-current-windowincider-switch-to-last-clojure-buffer.
- #867: Update Grimoire URL to fix (cider-grimoire-lookup) regression due to HTTP 301 (Moved Permanently).
- #883: Encode properly the javadoc url.
- #824: Fix REPL font-locking.
- #888: Handle comments in
cider-repl-mode. - #830: Stop using
load-filefor most interactive evaluation commands. - #885: Translate nREPL-delivered map keys to symbols before adding as text properties.
- Fix tab completion in
cider-read-from-minibuffer. - #894: Make it possible to enter any symbol with
cider-read-symbol-name. - Report Clojure's version including its qualifier (e.g.
alpha4) if present. - Use the
fieldtext property to make move-beginning-of-line respect the REPL prompt instead of writing our own beginning-of-line commands.
- Fixed version mismatch warning on CIDER startup (the actual bug was in
cider-nrepl).
cider-auto-jump-to-erroraccepts new option'errors-onlycider-connectnow asks for remote hosts defined in machine-widesshconfiguration files and automatically detects running instances of lein server, both on local and remote machines.- New defcustom
cider-stacktrace-print-level. Controls the*print-level*used when pretty printing an exception cause's data. Defaults to 50. - New interactive command
cider-undef. - New interactive command
cider-clear-compilation-highlights. - First pass at a CIDER quick reference card.
completion-at-pointnow annotates functions, macros and special forms, thus making it simpler to gain understanding of what you're using (disabled by default).- When invoked with a prefix argument
cider-quitdoesn't ask for confirmation. - Enhance stacktrace to definition navigation to work for interactively defined vars.
- New vars:
cider-to-nrepl-filename-functionandcider-from-nrepl-filename-functionare used to translate filenames from/to the nREPL server (default Cygwin implementation provided). - Java classpath browser (
M-x cider-classpath). - Clojure namespace browser (
M-x cider-browse-nsandM-x cider-browse-ns-all). - Added the ability to jump to a definition from a docview buffer.
- New interactive command
cider-close-nrepl-session. - New interactive command
cider-describe-nrepl-session. - New interactive command
cider-toggle-trace-ns(mapped to C-c M-t n) - New interactive command
cider-repl-require-repl-utils. - #784: Make it possible to run tests in
the current ns with
C-u C-c ,.
-
bencode decoder was rewritten:
- nREPL dicts are now plists and accessor api is given by
nrepl-dict-p,nrepl-dict-getandnrepl-dict-put. - nested stack is used for decoded messages to avoid re-parsing of incomplete messages
- queues are used for incoming strings from the server and for the decoded responses
- nREPL dicts are now plists and accessor api is given by
-
REPL buffers are now connection buffers for REPL client connections.
-
Server and client cranking were isolated into
nrepl-start-server-processandnrepl-start-client-process. -
nrepl-client.el refactoring:
-
nrepl-send-request-syncwas renamed intonrepl-send-sync-requestto comply -
with the names of other 'sync' variables.
-
nREPL requests are now named with
nrepl-request:OPwhere "OP" stands for the type of the request (eval, clone etc.). The following functions were renamed:nrepl-send-string->nrepl-request:evalnrepl-send-string-sync->nrepl-sync-request:evalnrepl-send-interrupt->nrepl-request:interruptnrepl-send-stdin->nrepl-request:stdinnrepl-describe-session->nrepl-request:describenrepl-create-client-session->nrepl-request:clone
-
-
Renamed
cider-macroexpansion-suppress-namespacestocider-macroexpansion-display-namespaces. -
#652: Suppress eldoc when an error message is displayed in the minibuffer.
-
#719 The customization variable
cider-test-show-report-on-successcontrols now, whether to show the*cider-test-report*buffer on passing tests. The default is to not show the buffer. -
Renamed
cider-toggle-tracetocider-toggle-trace-varand remapped it to C-c M-t v.
- #705: Fixed macroexpansion
bug for
tidynamespace display. - Font-lock properly error messages in the REPL resulting from interactive evaluation.
- #671: Remove problematic code that was
setting the REPL's initial ns based on lein's
:init-nsoption. - #695: Keep point at original position when clearing or highlighting test results.
- #744: Fix the ability to customize the
lein command invoked by
cider-jack-in. - #752: Don't assume
clojure.core/letis always available aslet. - #772: Don't try to read Clojure results as Emacs Lisp code.
- #631: Set
fileandlinemetadata when doing interactive evaluation. - nREPL sessions are now closed on
cider-quit. - Fix minibuffer history for
cider-read-and-eval.
- New
cider-auto-jump-to-errorcontrol variable for auto jumping to error location. - #537: New support for Java symbol lookup from cider-nrepl's info middleware.
- #570: Enable toggling of the 'all' filter on stacktraces.
- #588: New
doc-modefor presenting fontified documentation, including Javadoc. - New interactive command
cider-toggle-trace. cider-selectcan now switch to the*cider-error*buffer (bound tox).- #613: New
clojure.testintegration. - #22: New command
cider-jump-to-resource(bound to C-c M-.). - #664: New apropos support: search function/var names (bound to C-c C-d a) or documentation (bound to C-c C-d A).
- You can view Grimoire's entry for a particular Clojure (built-in) symbol in
Emacs with
cider-grimoire(C-c C-d g) or your default browser withcider-grimoire-web(C-c C-d h). cider-modenow displays the namespace of the current buffer in the mode-line (as SLIME does).
- #597: Don't process nREPL messages unless the whole message has been received.
- #603: New variable
cider-show-error-bufferto control the behavior of the error buffer. Obsoletescider-popup-on-error,cider-popup-stacktracesandcider-repl-popup-stacktraces. cider-nreplis now required. Without it pretty much nothing will work.- Removed redundant command
cider-src. - Renamed
nrepl-log-eventsvariable tonrepl-log-messages. - Renamed
nrepl-log-eventscommand tonrepl-log-messages. - Remove redundant
cider-srccommand. - #582: Enable efficient loading of jar/zip resources.
- #589: Don't prefer local paths over tramp by default.
- #554:
cider-auto-select-error-bufferis set totby default. - #610: Present error and stacktrace info for all exception causes.
- Removed
cider-repl-print-lengthconfig option andcider-repl-toggle-print-length-limitingcommand. - Remapped
cider-docto C-c C-d d. - Remapped
cider-javadocto C-c C-d j - cider's scratch is now more consistent with an Emacs Lisp scratch buffer.
- #577: Fix bencode decoding of negative integers.
- #607: Respect
*print-length*incider-pprint-eval-defun-at-pointandcider-pprint-eval-last-sexp.
- New interactive command
cider-change-buffers-designation. - Cider command uses
cider-known-endpoints. - #490: Dedicated
support for
company-modeincider-complete-at-point. - #489: Enable cider-jack-in on tramp source buffers.
- #460: Support for cider-nrepl's complete middleware for CLJ/CLJS autocomplete.
- #465: Support for cider-nrepl's info middleware for jump-to-definition.
- #469: Add option
cider-prompt-save-file-on-load. - New interactive command
cider-insert-defun-in-repl. - New interactive command
cider-insert-ns-form-in-repl. - New inspector inspired by SLIME's inspector
- STDERR output is now font-locked with
cider-repl-err-output-faceto make it visually distinctive fromcider-repl-output-face(used for STDOUT output). - New interactive command
cider-scratch. - #521: New interactive stacktrace filtering/navigation using cider-nrepl's stacktrace middleware.
- #513:
Remove hardcoded use of IDO mode and use
completing-read. - Required Emacs version is now 24.1.
- #486: Improve
support for tramp, so tramp paths do not get used in compiled debug
information.
cider-jumpstill uses tramp filenames to find definitions if used in a buffer associated with a tramp file. - Renamed
cidercommand tocider-connect.
- #515: Fix inconsistent prompt used for load symbol functions.
- #501: Fix nil appearing in nrepl-server buffer name when no project directory.
- #493 Fix rotate connection to handle no nREPL connection.
- #468: Fix
pretty-printing of evaluation results so that
*1is set properly. - #439: Fix
race condition bug in
cider-restart. - #441: Fix timing bug in
cider-jack-in. - #482: Fix jump-to-def for cljx dependency jars.
- C-c M-f Select a function from the current namespace using IDO and insert into the REPL buffer.
cider-read-and-evalnow supports completion and keeps history.- Added ability to limit the number of objects printed in collections
by managing
*print-length*.cider-repl-print-lengthcan be used to set a limit, andcider-repl-toggle-print-length-limitingcan be used to toggle the enforcement of the limit. - New config
cider-eval-result-prefixcontrols the prefix displayed before results from interactive evaluation displayed in the minibuffer. - New config
cider-repl-result-prefixcontrols the prefix displayed before results in the REPL. - Font-lock interactive evaluation results as Clojure code.
- Added the ability to font-lock input and results in the REPL as Clojure code. This is controlled via
the option
cider-repl-use-clojure-font-lock. - Added
cider-pprint-eval-defun-at-point, a companion tocider-pprint-eval-last-sexpwhich works on the top-level form. - The REPL buffer name uses host if no project directory available;
*cider-repl*will appear as*cider-repl <host>*.
- #316: Honor the
:init-nsnamespace on startup. - #436: Fix an infinite loop when evaluating ns forms.
- #435: Fix trampling of
cider-switch-to-repl-bufferbycider-switch-to-relevant-repl-buffer.
- Added new interactive command
cider-read-and-eval(bound toC-c M-:incider-mode). - Added new interactive command
cider-eval-last-sexp-to-repl(C-c M-e). The command will output the result of the evaluated code to the REPL buffer, so you can easily play with the output there afterwards. - Added new interactive command
cider-insert-last-sexp-in-repl(C-c M-p). - Added new interactive command
cider-eval-last-expression-and-replace(C-c C-w). - Implemented REPL shortcuts, triggered by pressing
,at the start of a REPL input line (similar to the ones in SLIME). - Added new interactive command
cider-pingto check connectivity with the server.
- Renamed
cider-history-sizetocider-repl-history-size. - Renamed
cider-history-filetocider-repl-history-file. - Renamed
cider-wrap-historytocider-repl-wrap-history. - Renamed
cider-eval-expression-at-pointtocider-eval-defun-at-point. - Changed
last-expressiontolast-sexpin a number of functions.
- #315: Removed spurious newlines in output.
- #237: Don't swallow output from futures.
- Create non-existing namespaces, when evaluating code in Clojure buffers.
- Fix REPL init
- The variable
cider-repl-display-in-current-windowcontrols whether the REPL should be displayed in the current window when switched to. cider-repl-set-nscan now be invoked in the REPL.- The content of
.nrepl-port, if present, will be used as the default port for M-x nrepl. This is in addition totarget/repl-port. - Applies ANSI color to all output in the REPL buffer.
- Renamed package to CIDER.
- Split package into several files.
- Renamed
cider-interaction-modetocider-mode.
- #393 - Error when evaluating strings with a namespace declaration in them.
- C-c M-d will display default nREPL connection details.
- C-c M-r will rotate and display the default nREPL connection.
- Setting the variable
nrepl-buffer-name-show-portwill display the port on which the nREPL server is running. - The REPL buffer name uses project directory name;
*nrepl*will appear as*nrepl project-directory-name*. - The nREPL connection buffer name uses project directory name;
*nrepl-connection*will appear as*nrepl-connection project-directory-name*. - nREPL server buffer name uses project directory name;
*nrepl-server*will appear as*nrepl-server project-directory-name*. - C-c C-Z will select the nrepl buffer based on the current namespace.
- C-u C-c C-Z will select the nrepl buffer based on a user project directory prompt.
- Bind C-c C-q to
nrepl-quit - Added an option to auto-select error popups (
nrepl-auto-select-error-buffer) - Made the display of the REPL buffer on connect optional
- Renamed
nrepl-modetonrepl-repl-mode
- C-c M-s (
nrepl-selector) was bound to non-existing symbol. - Fix indentation in REPL buffers.
- Fix
nrepl-docon Clojure 1.5
- Evaluate all namespace forms
(ns ...)in the user namespace. - Add highlighting of compilation warnings in addition to existing highlighting of errors
- Add support for selecting last Clojure source buffer with keybinding
C-c C-z (the same as
nrepl-switch-to-repl-buffer). - The content of
target/repl-port, if present, will be used as the default port for M-x nrepl - Added an extendable slime-style selector command and binding C-c M-s
- M-. (
nrepl-jump) on remote nrepl connection (across OS hosts) has been fixed.
-
Add support for multiple nrepl sessions. A single session is closed with
M-x nrepl-close. A REPL session is made default withM-x nrepl-make-repl-connection-default. -
Added support for pretty-printing in the REPL buffer.
-
Added a check for the presence of an existing
*nrepl*buffer before creating a new one withnrepl-jack-inornrepl. -
M-.learned about namespaces. -
Added new customization variable
nrepl-popup-stacktraces-in-repl. -
Added some convenience keybindings to
clojure-mode-nrepl-jack-inis now bound to C-c M-j andnreplis bound to C-c M-c. -
Added
nrepl-hide-special-bufferssetting to control the display of special buffers like*nrepl-server*and*nrepl-connection*. -
Apply ANSI color codes to output sent to nrepl buffers.
-
Add a connection browser
nrepl-connection-browserto allow control of multiple connections. -
Add macroexpand key bindings to
nrepl-mode-map. -
Don't suppress namespaces in macroexpansion.
-
Add explicit require of expected namespaces in the REPL buffer.
-
Add command
nrepl-pprint-eval-last-expression. -
Add an event buffer for debugging.
-
Allow connections without REPL buffers.
-
Add hook
nrepl-file-loaded-hookwhich runs on load-file completion. -
Expand ido-completion to include "used" variables in addition to "interned" variables.
- More accurate matching of filenames in stacktraces.
- Fix #290 - Macroexpand buffer truncates long expansions
- Ported SLIME macroexpansion mode (see README for full documentation)
- Updated macroexpansion to use pprint with code-dispatch
- Eldoc argument highlighting
- Simplify popup buffer quit/restore using `quit-window'.
- Add nrepl-disconnected-hook and disable nrepl when disconnected.
- Get key bindings documentation into the minor mode descriptions (Ivan Necas)
- made the TAB command in the nrepl-mode buffers configurable (Bozhidar Batsov)
- Added convenience function to report the version of nREPL in use. (fogus)
- Shift-Home and Shift-Ctrl-a in repl, which select just the user input when on the input line. (Ivan Kozik)
- Emit server log output at bottom of
*nrepl-server*buffer. (Brian Rowe) - Reset nrepl-buffer-ns on nrepl-restart. Fixes issue #187.
- Implement nrepl-mode as a derived mode. (Bozhidar Batsov)
- fix #194 - stacktrace buffer was not respecting nrepl-popup-stacktraces (Bozhidar Batsov)
- Fix message formatting for results containing "%" (fixes issue #195).
- Fix NPE in nrepl-jump (issue #124). (cola-zero)
- Fix nrepl to work with fish shell (issue #192). (Dario Bertini)
- Adjusted the javadoc keybinding and mentioned it in the README. (Bozhidar Batsov)
- Fix issue #163 - exclude ns from nrepl-load-file.
- Ignore "killed" and "hangup" events in sentinel (Chris Bilson)
- Clear the correct region when replacing the input line. (Ivan Kozik)
- Fix issue #146. Include "@" in nrepl-input-complete-p.
- Handle stdout messages that arrive after status "done"
- Support for describe op to determine which server ops are available at startup
- Support for the following server ops (if available): load-file, complete, and javadoc (available in ritz)
- Added nrepl-host and nrepl-port custom variables M-x nrepl default hostname/port
- Ported over the following REPL buffer functions from slime: History regexp filtering - M-s nrepl-next-matching-input, M-r nrepl-previous-matching-input C-c C-u nrepl-kill-input C-c C-n nrepl-next-prompt/C-c C-p nrepl-previous-prompt
- Added nrepl-quit and nrepl-restart commands
- Added menus for nrepl-mode and nrepl-interaction-mode
- Add nrepl-eval-print-last-expression
- Ensure nrepl-eval-sync waits for :done when response is chunked
- Improvements and simplifications for completion (Tassilo Horn)
- Documentation additions and fixes (Ryan Fowler, Nikita Beloglazov, Bozhidar Batsov, Juha Syrjl, Philipp Meier)
- Make completion back-end and error handler configurable (Hugo Duncan)
- Accept host as well as port on connect (Ken Restivo)
- Enable nrepl-interaction-mode in clojurescript-mode (Nelson Morris)
- Emit stdout from interactive evaluations into the REPL buffer
- Fix paredit .. don't make clojure-mode-map parent of nrepl-interaction-mode-map (Tassilo Horn)
- Fixes for ECB interop (Matthew Willson)
- Namespace qualify tooling calls (Justin Kramer)
- Eldoc fixes (Jack Moffitt)
- Fix path quoting in load file for Windows (Philipp Meier)
- Fix nREPL / Emacs error "Unable to resolve symbol: if-let"
- eldoc support for displaying arglists in the minibuffer (Stefan Kamphausen)
- persistent REPL history (Stefan Kamphausen)
- fix for jumbled stacktraces (Ryan Fowler)
- add a doc keybinding for the REPL buffer (Ken Restivo)
- plumbing to support ac-nrepl [https://github.com/purcell/ac-nrepl] (Steve Purcell)
- stdin support (which also provides support for debug-repl [https://github.com/GeorgeJahad/debug-repl] and limit-break [https://github.com/technomancy/limit-break])
- convert nrepl-interaction-mode into a major mode
- display stacktrace on eval-error
- change lein command to
lein - add fn to eval current buffer's ns
- handle filter messages spanning multiple chunks of output
- Let nrepl-jack-in accept project dir when given a prefix arg.
- C-c C-b nrepl-interrupt
- client session management
- added words of inspiration + version at startup
- Add M-n and M-p to nrepl-mode-map.
- Implement M-.: nrepl-jump-to-def.
- Implement basic completion.
- Implement nrepl-doc.
- Prevent M-p at top of history from pushing position one step further.
- M-n after end of history should blank out input.
- Add M-n and M-p to nrepl-mode-map.
- Implement M-.: nrepl-jump-to-def.
- Initial version