Releases: clojure-emacs/cider
Releases · clojure-emacs/cider
CIDER 1.9.0 ("Barcelona")
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')
- 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-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
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')
- 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-function
customization option. - #2903: Avoid
No comment syntax is defined
prompts. - Bump the
clojure-mode
required version to 5.18.0
Bugs fixed
CIDER 1.8.2
Changes
- Bump the injected
cider-nrepl
to 0.40.0.- Improves the
:style/indent
,:arglist
and other key metadata propagation for ClojureScript macros.
- Improves the
CIDER 1.8 ("Geneva")
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 (followingcider-test-infer-test-ns
logic).- This also makes obsolete the
cider-test-defining-forms
customization variable.
- This also makes obsolete the
cider-test
: add timing information.cider-test
: fail-fast by default, as controlled by the newcider-test-fail-fast
defcustom andcider-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 whencider-auto-mode
is set to nil. - #3362: Fix
sesman-restart
regression issue. - #3236:
cider-repl-set-ns
no longer changes the repl session type fromcljs:shadow
toclj
. - #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-file
s from failingcider-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 ofcider-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 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-dict
error reporting. - Bump the injected
piggieback
to 0.5.3. - Bump the
clojure-mode
required version to 5.17.1, and useclojure-find-ns
more safely, which fixes issues such as #2849. - Bump the
parseedn
require version, and wrap its usage with a more informativeuser-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.
- 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 thetooling
category.
- Now, in
- Updates Suitable
- avoiding side-effecting
->
evaluation for pure-ClojureScript chains.
- avoiding side-effecting
CIDER 1.7 ("Côte d'Azur")
New features
- #3314: Detect
nrepl+unix
sockets (say vialein 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
ascider-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
tot
.
CIDER 1.6 ("Buenos Aires")
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
andcider-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 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.
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")
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
orcompletion-category-defaults
. - #2946: Add custom var
cider-merge-sessions
to allow combining sessions in two different ways: Settingcider-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 installedgradle
on 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
).
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 incider--client-tramp-filename
viatramp-tramp-file-p
.
CIDER 1.4.1
CIDER 1.4 ("Kyiv")
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
, andcider-eval-ns-form
can be called withC-u
prefix to executeundef-all
before reloading the ns.
- Add new command
- #3185: Add feature to
cider-eval-in-context
for automatically extracting parent let bindings when called withC-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.
- Add new customization variable
Changes
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
fromcompletion-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")
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 tonil
. - #3149: Add option
'change
tocider-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 incider-clojure-cli-aliases
. Also addresses a duplicate:
in the generatedclj
command. cider-jack-in-lein-plugins
no longer affects non-Leiningen projects.- Third-party packages should rely on
cider-jack-in-dependencies
instead.
- Third-party packages should rely on
- 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
tot
. - 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
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.