Skip to content

CIDER 1.8 ("Geneva")

Compare
Choose a tag to compare
@vemv vemv released this 13 Oct 14:31
· 152 commits to master since this release
e9936f5

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.