Skip to content

Releases: clojure-emacs/cider

CIDER 1.9.0 ("Barcelona")

24 Oct 20:30
Compare
Choose a tag to compare

New features

  • #3529: CIDER inspector: introduce cider-inspector-previous-sibling, cider-inspector-next-sibling commands (doc).
  • #3548: CIDER inspector: introduce cider-inspector-tap-current-val command (doc).

Changes

  • #3546: Inspector: render Java items using java-mode syntax coloring.
  • #3521: Expand cider-clojure-compilation-regexp to 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')
  • #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-function customization option.
  • #3528: Bump the injected cider-nrepl to 0.41.0.
    • Updates Orchard, providing misc presentational improvements for the CIDER Inspector.

Bugs fixed

  • Inspector: avoid Symbol's value as variable is void: text-scale-mode-amount under certain Emacs clients.

CIDER 1.8.3

18 Oct 16:17
Compare
Choose a tag to compare

Changes

  • #3521: Expand cider-clojure-compilation-regexp to 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')
  • #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-function customization option.
  • #2903: Avoid No comment syntax is defined prompts.
  • Bump the clojure-mode required version to 5.18.0

Bugs fixed

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

CIDER 1.8.2

15 Oct 16:08
Compare
Choose a tag to compare

Changes

  • Bump the injected cider-nrepl to 0.40.0.
    • Improves the :style/indent, :arglist and other key metadata propagation for ClojureScript macros.

CIDER 1.8 ("Geneva")

13 Oct 14:31
e9936f5
Compare
Choose a tag to compare

New features

  • #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 -test counterpart for a given defn (following cider-test-infer-test-ns logic).
    • This also makes obsolete the cider-test-defining-forms customization variable.
  • cider-test: add timing information.
  • cider-test: fail-fast by default, as controlled by the new cider-test-fail-fast defcustom and cider-test-toggle-fail-fast keybinding.
  • #3352: Introduce cider-eval-dwim.
  • Add new customization variable cider-clojurec-eval-destination to allow specifying which REPL .cljc evals are sent to.
  • #3354: Add new customization variable cider-reuse-dead-repls to control how dead REPL buffers are reused on new connections.

Bugs fixed

  • #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-mode disabling itself after a disconnect when cider-auto-mode is set to nil.
  • #3362: Fix sesman-restart regression issue.
  • #3236: cider-repl-set-ns no longer changes the repl session type from cljs:shadow to clj.
  • #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-references backend to return correct filenames.
  • #3393: recompute namespace info on each shadow-cljs recompilation or evaluation.
  • #3402: Fix cider-format-connection-params edge case for Emacs 29.
  • 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 failing cider-jack-in.
  • #3456: Restore xref-based jump-to-definition in Babashka (and any nREPL clients not having cider-nrepl).
  • #3466: Restore usual cider--connected-handler performance for JVM Clojure repls.
  • #3503: Make cider-repl-set-ns more reliable on Piggieback connections.
  • Fix the xref-find-definitions CIDER backend to return correct filenames.
  • Fix the cider-xref-fn-deps buttons to direct to the right file.
  • Fix the cider-find-keyword overall reliability and correctness, particularly for ClojureScript.
  • Make TRAMP functionality work when using non-standard ports.
  • Fix the cider-insert-commands-map variable initialization.

Changes

  • Ensure that cider completion 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-completion is now deprecated in favor of cider-enable-flex-completion.
  • Improve support for multiple forms in the same line by replacing beginning-of-defun fn.
  • #3390: Enhance cider-connect to 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-window defcustom.
  • Preserve the :cljs-repl-type more reliably.
  • Improve the presentation of xref data.
  • #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-val now can suggest a var name (default none), which can be customized via cider-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.
  • Ensure there's a leading : when using cider-clojure-cli-aliases.
  • Improve nrepl-dict error reporting.
  • Bump the injected piggieback to 0.5.3.
  • Bump the clojure-mode required version to 5.17.1, and use clojure-find-ns more safely, which fixes issues such as #2849.
  • Bump the parseedn require version, and wrap its usage with a more informative user-error.
  • Bump the injected cider-nrepl to 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.
    • Updates Compliment
      • Improves type hint propagation.
      • Supports better completions for doto, ->, ->>, some->, and some->>.
      • 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 the tooling category.
    • Updates Suitable
      • avoiding side-effecting -> evaluation for pure-ClojureScript chains.

CIDER 1.7 ("Côte d'Azur")

23 Mar 07:11
Compare
Choose a tag to compare

New features

  • #3314: Detect nrepl+unix sockets (say via lein nrepl :headless :socket nrepl.sock).
  • #3262: Add navigation functionality to n/p/f/b keys 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-universal to support jacking-in without a project from a set of pre-configured Clojure project tools.

Changes

  • Allow using npx nbb as cider-nbb-command.
  • #3281: Replace newline chars with actual newlines in *cider-test-report* buffer, for prettier error messages.
  • Bump the injected cider-nrepl to 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-boundaries to t.

CIDER 1.6 ("Buenos Aires")

21 Dec 09:30
Compare
Choose a tag to compare

New features

  • #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-point and cider-stacktrace-analyze-in-region commands to view printed exceptions in the stacktrace inspector.

Changes

  • Bump the injected nREPL version to 1.0.
  • #3061: Allow to use cider-connect-clj for self-hosted cljs repls (e.g. nbb).
  • #3291: Remove the 'cljs-pending repl-type. It is replaced by cider-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.

Bugs fixed

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

CIDER 1.5 ("Strasbourg")

24 Aug 06:57
Compare
Choose a tag to compare

CIDER 1.5 is dedicated once again to the brave people of Ukraine, who celebrate their Independence Day today, and to their European future. Слава Україні!

New features

  • #3226: Populate completions metadata, making it possible to change the style of completion via completion-category-override or completion-category-defaults.
  • #2946: Add custom var cider-merge-sessions to allow combining sessions in two different ways: Setting cider-merge-sessions to 'host will merge all sessions associated with the same host within a project. Setting it to 'project will combine all sessions of a project irrespective of their host.
  • Support Gradle jack-in via the Gradle wrapper (gradlew), instead of just a globally installed gradle on the PATH.
  • 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).

Changes

  • Upgrade clojure-mode to 5.15.1.
  • Upgrade injected cider-nrepl to 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-command to ./gradlew to use the Gradle wrapper.
  • Changed default cider-gradle-global-options to "" (empty, formerly --no-daemon).
  • #3234: Autocomplete multiple available ports on nREPL connect.

Bugs fixed

  • #3235: Check name is a TRAMP file in cider--client-tramp-filename via tramp-tramp-file-p.

CIDER 1.4.1

26 May 05:25
Compare
Choose a tag to compare

1.4.1 (2022-05-25)

Changes

  • Upgrade cider-nrepl to 0.28.4.

Bugs fixed

  • #3195: Revert the change that resulted in (error "Cyclic keymap inheritance") on cider-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 with C-u prefix.
    • Fix extraction of namespace name.

CIDER 1.4 ("Kyiv")

02 May 09:06
Compare
Choose a tag to compare

New features

  • #3188: Add support for undef-all op, for removing stale vars and conflicting aliases.
    • Add new command cider-undef-all.
    • Existing commands cider-load-buffer, cider-load-file, and cider-eval-ns-form can be called with C-u prefix to execute undef-all before reloading the ns.
  • #3185: Add feature to cider-eval-in-context for automatically extracting parent let bindings when called with C-u prefix 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-register to automatically store the last interactive eval result into the specified register.
    • Add interactive command cider-kill-last-result to manually save the last eval result into kill ring.

Changes

  • #3177: Apply ANSI colorization to test assertion output.
  • Use clojure-mode 5.14.0.

Bugs fixed

  • #3170: Skip ensure repl available checks on xref functions. (this improves the interop with clojure-lsp)
  • #3173: Locally remove cider-complete-at-point from completion-at-point-functions instead of killing it as a local variable.
  • #3172: Restore the long-lost (but critical) inspirational message on connect.
  • #3186: An assortment of small fixes.

CIDER 1.3 ("Ukraine")

07 Mar 07:31
Compare
Choose a tag to compare

This release is dedicated to the people of Ukraine, with whom I share a very deep bond. Please, consider supporting them in their time of need.

New features

  • #3148: Display error messages in multiline comment eval results, and in result overlays when cider-show-error-buffer is set to nil.
  • #3149: Add option 'change to cider-eval-result-duration, allowing multiple eval result overlays to persist until the next change to the buffer.

Changes

  • #3127: Strip all exec-opts flags (-A -M -T -X) if they exist in cider-clojure-cli-aliases. Also addresses a duplicate : in the generated clj command.
  • cider-jack-in-lein-plugins no longer affects non-Leiningen projects.
    • Third-party packages should rely on cider-jack-in-dependencies instead.
  • Upgrade cider-nrepl to 0.28.3.
  • Remove cider-jdk-src-paths defcustom since enrich-classpath makes it redundant.
  • Remove cider-resolve-java-class function since enrich-classpath makes it redundant.

Bugs fixed

  • 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-classpath to t.
    • 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).
  • #3145: Allow fallback to other xref backends 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.