Skip to content

Releases: clojure-emacs/cider

CIDER 1.2 ("Nice")

22 Dec 14:24
Compare
Choose a tag to compare

New features

  • 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 xref integration, configured with customizable variables cider-use-xref and cider-xref-fn-depth.
  • #3017: Annotate company completion kinds.
  • #3040: Support invoking cider-clojuredocs within the *clojuredocs* buffer.
  • Make it possible to specify the version of cider-nrepl to use with cider-jack-in. See cider-injected-middleware-version.
  • Make it possible to specify the version of nREPL to use with cider-jack-in. See cider-injected-nrepl-version.
  • Upgrade cider-nrepl, Orchard and clj-suitable for pulling their latest bugfixes.
  • Add support for babaska projects to cider-jack-in.
  • Introduce cider-jack-in-lein-middlewares defcustom.
  • #3093: Make see-alsos clickable in ClojureDocs buffers.
  • #3044: Dynamically upgrade nREPL connection. See cider-upgrade-nrepl-connection.

Bugs fixed

  • #3022: Handle empty stacktraces, pointing users to docs about the OmitStackTraceInFastThrow JVM optimization.
  • #3020: Fix session linking on Windows, e.g. when jumping into a library on the classpath.
  • #3031: Fix cider-eval-defun-up-to-point failing 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 xref instead of etags to push point to marker stack.
  • #3074: Recognize pwsh as a powershell executable.

CIDER 1.1 ("Plovdiv")

22 Apr 08:04
Compare
Choose a tag to compare

New features

  • #2930: Add new customization variable cider-test-default-include-selectors and cider-test-default-exclude-selectors for specifying default test selectors when running commands such as cider-test-run-ns-tests.
  • #2907: Add new customization variable cider-format-code-options to specify options used by cljfmt to format code when running commands cider-format-buffer, cider-format-region and cider-format-defun.
  • #3002: [Inspector] Make collection member truncation limits configurable.

Bugs fixed

  • #2871: Restore the dynamic code completion (the actual fixes are in clj-suitable and cider-nrepl).
  • #2993: Fix bug where calling cider-repl-set-ns for a cljs ns when cider-repl-require-ns-on-set is t would 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-completion and 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-nrepl 0.25.6)
  • #3004: Use appropriate coding system when unzipping jars.
  • #2934: Enable eldoc-mode in existing clojure buffers.

Changes

  • Removed cider-clojure-cli-parameters due to clojure-cli jack-in changes.
  • Changed the behaviour of cider-last-sexp so it returns only the sexp, excluding all whitespace and/or the first newline after.

CIDER 1.0 ("Sofia")

28 Dec 08:48
Compare
Choose a tag to compare

2020 brought us a lot of pain and misery. Time to turn things around!

New features

  • #2909: Add new customization variable cider-inspector-auto-select-buffer to 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.

Bugs fixed

  • 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.

Changes

  • Bump the injected nREPL version to 0.8.3.
  • Bump the injected cider-nrepl version 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-symbol to nil by default.

CIDER 0.26.1

17 Oct 09:18
Compare
Choose a tag to compare

Bugs fixed

  • #2886: Don't check for node's presence before starting a browser REPL.
  • #2889: Fix a typo in cider-info-form.

Changes

  • Bump the injected piggieback version to 0.5.1.

CIDER 0.26 (Nesebar)

03 Aug 08:32
Compare
Choose a tag to compare

New features

  • Add first class support for Babashka (no more warnings when you connect to babashka.nrepl).
  • Add support for nREPL 0.8's lookup op.
  • Add support for nREPL 0.7's sideloading functionality (experimental).
  • Add support for nREPL 0.8's ls-middleware op.
  • #2861: Add support for the Krell REPL.
  • #2881: Add command to evaluate list around point (cider-eval-list-at-point).

Changes

  • #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 just var and fn and 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).

Bugs fixed

  • Handle properly missing file metadata in cider-doc buffers, when you eval fallback to obtain var metadata.
  • Show eldoc for . and ...
  • #2860: Don't send blank strings in eldoc requests.
  • #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.

CIDER 0.25 (Bergamo)

04 Jun 09:15
Compare
Choose a tag to compare

My (Bozhidar's) work on this release was sponsored by Clojurists Together. They deserve a very special thanks for their continued support of CIDER and its Orchard!

New features

  • #2482: Improvements to CIDER Inspector.
    • New defcustom cider-inspector-skip-uninteresting to control whether to skip over nils, numbers and keywords when navigating between values in the inspector buffer.
    • New defcustom cider-auto-inspect-after-eval to control whether a visible inspector buffer is updated with the last evaluated result.
  • #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 completions op. It's used if cider-nrepl is not available.
  • Add browser to 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.

Changes

  • #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-types to re-enable it)
  • #2850: Ensure you're in the middle of a window after commands like cider-find-var.

Bugs fixed

  • #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.

CIDER 0.24 (India)

15 Feb 08:43
Compare
Choose a tag to compare

New features

  • #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 P to inspect an arbitrary expression, it was previously bound to p which now inspects the current value.
  • #2729: New cider inspector command cider-inspector-def-current-val lets you define a var with the current inspector value.

Changes

  • #2781: Extend cider-doc-xref-regexp to 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.

Bugs fixed

  • #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 user ns.
  • #2614: Fix error highlighting in source buffers for Clojure 1.10.
  • #2733: Restore compatibility with Emacs 25.3.

CIDER 0.23 (Lima)

08 Oct 11:48
Compare
Choose a tag to compare

New features

  • New configuration variable cider-result-overlay-position determining where debugger and inline eval result overlays should be displayed. Current options are 'at-eol and 'at-point.
  • #2606: Defcustom cider-path-translations for 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.

Changes

  • #2711: cider-selector has 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-p to nil.

Bugs fixed

  • #2715: Fix the shadow-cljs presence 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 suitable used by cider-nrepl).
  • Remove a misplaced error message when doing clojuredocs-lookup.
  • #2721: Handle properly symbols ending in . (e.g. SomeRecord.).

CIDER 0.22 (São Paulo)

04 Sep 21:06
Compare
Choose a tag to compare

New features

  • #2656: Base64 encode clojure command and arguments on jack-in when cider-clojure-cli-command is "powershell" to avoid escaping issues. If no clojure command is found on Windows cider-clojure-cli-command defaults to "powershell".
  • Allow editing of jack in command with prefix or when cider-edit-jack-in-command is truthy.
  • New defcustom cider-repl-require-ns-on-set: Set it to make cider require the namespace before setting it, when calling cider-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.

Changes

  • cider-use-tooltips now also controls whether help-echo is used.
  • cider-print-options is now supported by the pr option for cider-print-fn. The options will now be also used by interactive eval commands that do not use pretty-printing.
  • spec-list and spec-form requests send the current namespace for alias resolution.
  • C-c , C-g and C-c C-t C-g cancel the key chord instead of rerunning the last test. The respective command has been moved to C-c , C-a, C-c , a, C-c C-t C-a and C-c C-t a.
  • #2643: (Breaking) Stop using the cider.tasks/nrepl-server custom task for cider-jack-in with Boot.
  • #2647 cider-repl-require-repl-utils now loads cljs specific repl utils in cljs buffers.
  • #2689 cider-load-buffer now takes an optional callback that will override the default cider-load-file-handler.
  • #2689 cider-load-file-handler now takes an optional done-handler lambda that is run once load is complete.

Bug fixes

  • #2685: Send exclude-regexps in apropos under correct key
  • Stop cursor moving when initialising the CIDER REPL, when cider-repl-pop-to-buffer-on-connect is 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 a require instead to check if some library is present or not.
  • #2541: Hook properly CIDER's code completion machinery.
  • #2659: Handle #shadow/env reader tags in cider--shadow-get-builds.
  • #2676: Widen before cider--file-string, to allow cider-load-buffer to work on narrowed buffers.
  • Don't disable cider-mode until all CIDER sessions have been closed.

CIDER 0.21 (New York)

19 Feb 12:38
v0.21.0
200c88a
Compare
Choose a tag to compare

New features

  • The cider-test-run-* and cider-ns-refresh-* commands are now interruptible by the cider-interrupt command.
  • 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 any set!-able vars in place). Replaces cider-print-length and cider-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 to nil if no limit is desired.

Changes

  • (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-output is now obsolete, and the default REPL behaviour has changed to not recenter the window. The built-in variable scroll-conservatively can be set to 101 (either globally or locally in the REPL buffer) to restore the old behaviour. This change has a dramatic positive effect on REPL performance.
  • cider-pprint-fn and cider-pprint-options are now obsolete, replaced by cider-print-fn and cider-print-options.
  • cider-debug-print-options, cider-stacktrace-print-options, and cider-repl-pretty-print-width are now all obsolete, replaced by cider-print-options.
  • #2546: New defcustom cider-ns-save-files-on-refresh-modes to control for which buffers cider-ns-refresh should save before refreshing.

Bug fixes

  • Fix values for cider-preferred-build-tool variable.
  • Fix value and safe property for cider-allow-jack-in-without-project variable.
  • cider-ns-save-files-on-refresh will now save any modified buffers visiting files on the classpath, rather than just in the current project.
  • cider-expected-ns no 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-comment and cider-pprint-eval-defun-to-comment to not insert anything.
  • cider-find-var now correctly uses a new window when passed a prefix of - or a double prefix argument.