Releases: clojure-emacs/cider
Releases · clojure-emacs/cider
CIDER 0.21 (New York)
New features
- The
cider-test-run-*
andcider-ns-refresh-*
commands are now interruptible by thecider-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 anyset!
-able vars in place). Replacescider-print-length
andcider-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 tonil
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 variablescroll-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
andcider-pprint-options
are now obsolete, replaced bycider-print-fn
andcider-print-options
.cider-debug-print-options
,cider-stacktrace-print-options
, andcider-repl-pretty-print-width
are now all obsolete, replaced bycider-print-options
.- #2546: New defcustom
cider-ns-save-files-on-refresh-modes
to control for which bufferscider-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
andcider-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.
CIDER 0.20 (Oslo)
New features
- 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
CompilationException
dynamic source location discovery.
Changes
- #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.
Bug fixes
CIDER 0.19 (Raleigh)
0.19.0 (2019-01-01)
New features
- #2430:
cider-find-var
opens 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
continue
debug command into "continue till next breakpoint" (c
) and "continue non stop" (C
) commands.
Bug fixes
- #2474: Fix incorrect detection of output and out-of-order printing.
- #2514: Don't auto-jump to warnings when
cider-auto-jump-to-error
is 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
continue
debugger 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-x
keys without loading cider first (autoloadcider-start-map
). - #2440: Make
cider-check-cljs-repl-requirements
take effect again. - #2439: Remove mentions of
cider-toggle-connection-buffer
from 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
.
Changes
- #2482: Don't bind nREPL server started by
cider-jack-in
to::
(uselocalhost
instead). - #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-ports
to control whether we use tramp/ssh to infer remote ports. Now defaulting tonil
(previously it always tried to infer).
CIDER 0.18 (Saigon)
New features
- #2375: Move
cider-eval-toplevel-inside-comment-form
into clojure-mode asclojure-toplevel-inside-comment-form
sobeginning-of-defun
is aware of comment forms. - Add new
cider-session-name-template
variable for flexible customization of cider session and REPL buffer names. - Bind
C-c M-r
tocider-restart
. - Add new
cider-start-map
keymap (C-c C-x
) for jack-in and connection commands. - Add new
cider-ns-map
keymap (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 CLJS REPL type.
- #2314: Add
cider-ns-reload
andcider-ns-reload-all
interactive commands.
Bugs fixed
- #2317: The stdin prompt can now be cancelled.
- #2328: Added
cider-eval-sexp-to-point
. - #2310:
cider-format-edn-last-sexp
will 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-tooltips
custom variable works as expected. - #2424: Fallback to
lein
as the default jack-in command whenclojure
is not present.
Changes
- (Breaking) Move
cider-repl-set-ns
, previously onC-c M-n
, onC-c M-n (M-)n
in thecider-ns-map
. - (Breaking) Move
cider-ns-refresh
, previously onC-c C-x
, onC-c M-n (M-)r
in 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-separator
andnrepl-buffer-name-show-port
. Seecider-session-name-template
andcider-format-connection-params
for how to customize CIDER buffer names. - Rename
cider-eval-defun-to-point
tocider-eval-defun-up-to-point
. - Add support for printing to the current buffer to
cider-eval-defun-up-to-point
. - Remove
cider-ping
command. - Remove
cider-visit-error-buffer
in favour of usingcider-selector
. - Rename
cider-refresh
tocider-ns-refresh
(and all the related defcustoms). - (Breaking) Rewrote connection management (see http://docs.cider.mx/en/latest/managing_connections/ for details).
- (Breaking)
cider-jack-in-clojurescript
now creates only a ClojureScript REPL (usecider-jack-in-clj&cljs
to 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-sexp
toC-c C-v (C-)f (C-)e
in thecider-eval-commands-map
. - Map
cider-pprint-eval-defun-at-point
toC-c C-v (C-)f (C-)d
in 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-version
to track it.
CIDER 0.17 (Andalucía)
New features
- #2248:
cider-repl
can 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-point
which 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-level
andcider-repl-print-length
). - New interactive command
cider-cheatsheet
allows you to browse the Clojure Cheatsheet with an Emacs interface. - #2191: Add support for jacking-in just with the
clojure
command-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-ediff
diff 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-plugins
andcider-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
).
Bugs Fixed
- #1913: Fix
cider-toggle-buffer-connection
to allow cycling of connection and restoring all connections in cljc buffers. - #2148: Fix
jump to definition
working properly when remotecider-jack-in
andcider-connect
. - Font-lock failed assertions even in tests that were evaluated interactively.
- #2102: Make
cider-format-buffer
handle mismatched parens gracefully.
Changes
- #2163: Add
cider-browse-spec-regex
, and changedcider-browse-spec-all
to 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-doc
buffer. - Remove support for CLJX.
- Fix
cider-eval-region
maskingclojure-refactor-map
incider-repl-mode
. - #2171: Update
See Also
mappings for Clojure 1.9. - #2202: Make
cider-jack-in-clojurescript
prompt 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.
CIDER 0.16 (Riga)
New Features
- #2082, cider-nrepl#440: Add specialized stacktraces for clojure.spec assertions.
- #2111: Add
cider-pprint-eval-last-sexp-to-comment
andcider-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.
Changes
cider-switch-to-last-clojure-buffer
switches 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-connection
will warn if you use it with only a single active connection.cider-format-buffer
tries to preserve the point position.
Bugs Fixed
- #2084: Select correct REPL type (clj or cljs) in
cider-switch-to-repl-buffer
conditional on the current buffer. - #2088: Fix functions defined with
def
being font-locked as vars instead of functions. - #1651, cider-nrepl#445: Fix
cider-expected-ns
returnsnil
on boot projects. - #2120: Fix Travis CI build errors for Emacs versions >25.2.
- #2117: Ensure
cider-repl-result-prefix
is only inserted before the first result chunk. - #2123: Process properly the Java version in Java 9.
CIDER 0.15.1
New Features
- #2083: New utility function
cider-add-face
. - #2083: New utility function
cider-run-chained-hook
. - #2083: New
cider-repl-preoutput-hook
that allows custom output processing. - #2083: Highlight clojure.spec keywords in REPL (
cider-repl-highlight-spec-keywords
pre-output processor).
Changes
- #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.
Bugs Fixed
- #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-ensure
for 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
pprint
is afterload-file
.
CIDER 0.15 (London)
New Features
- #2050 Use
view-mode
forcider-grimoire
buffers - 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-spec
andcider-browse-spec-all
which start a spec browser. - #2015: Show symbols as special forms and macros in
cider-doc
- #2012: Support special forms in
cider-apropos
andcider-grimoire-lookup
. - #2007: Fontify code blocks from
cider-grimoire
if possible. - Add support for notifications from the NREPL server.
- #1990: Add new customation variable
cider-save-files-on-cider-refresh
to allow auto-saving buffers whencider-refresh
is 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-frame
to control whether the cider inspector window fills its frame. - #1893: Add negative prefix argument to
cider-refresh
to inhibit invoking of cider-refresh-functions - #1776: Add new customization variable
cider-test-defining-forms
allowing new test defining forms to be recognized. - #1860: Add
cider-repl-history
to browse the REPL input history and insert elements from it into the REPL buffer. - Add new customization variable
cider-font-lock-reader-conditionals
which toggles syntax highlighting of reader conditional expressions based on the buffer connection. - Add new face
cider-reader-conditional-face
which is used to mark unused reader conditional expressions. - #1544: Add a new defcustom
nrepl-use-ssh-fallback-for-remote-hosts
to 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-options
for customizing options that are not related to tasks. - #1731: Change code in order to use the new
cider.tasks/add-middleware
boot 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-info
to 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-buffer
to control cider-doc popup buffer auto selection. - Ensure that
cider-current-connection
picks the most recently used connection in ambiguous cases. - Ensure that
cider-switch-to-repl-buffer
picks the most recent repl buffer if multiple connections are available. - Add new function
cider-project-connections-types
.
Changes
- 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-load
tocider-save-file-on-load
and adjust its supported values accordingly (the default now is'prompt
and'always-save
is now simplyt
). - #2014: Unify the format for
forms-str
andarglists-str
. - #2027: Mark many custom variables relating to
cider-jack-in
as safe. - #2023: Make popup-buffer sexp indentation optional.
Bugs Fixed
- #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-in
whenenlighten-mode
is enabled. - #1588: Redirect
*err*
,java.lang.System/out
, andjava.lang.System/err
to 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-restart
if the connection was established withcider-connect
. - #1881: Add
cider-cljs-boot-repl
andcider-cljs-gradle-repl
defcustom 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.
CIDER 0.14 (Berlin)
New Features
- #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-test
and 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-button
andnrepl-log-expand-all-buttons
.
Changes
- #1758: Disable nREPL message logging by default due to its negative impact on performance.
- Warn when running
cider-jack-in
without a Clojure project. This behaviour is controllable viacider-allow-jack-in-without-project
.
Bugs Fixed
- #1677: Interpret
\r
as a newline. - #1819: Handle properly missing commands on
cider-jack-in
. - Add option to define exclusions for injected dependecies. 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-size
custom variable was removed. - #1613: Check whether a before/after refresh function is resolvable.
CIDER 0.13 (California)
New Features
- Add an option
nrepl-prompt-to-kill-server-buffer-on-quit
to 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-repl
now also supports figwheel.- Option
cider-jack-in-auto-inject-clojure
enables 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-point
to 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-point
to insert the defun at point into the minibuffer for evaluation (bound toC-c C-v .
). - #1646: Add an option
cider-apropos-actions
to 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.
Changes
- Simpler keybindings in macroexpand buffer. Expand one step with
m
and all expansions witha
. Previously wasC-c C-m
andC-c M-m
. - Signal an error sooner if the user misconfigured
cider-known-endpoints
. cider-inspect-read-and-inspect
is obsolete. Usecider-inspect-expression
instead.- Extremely long overlays are truncated and
cider-inspect-last-result
is recommended. - Signal
user-error
instead oferror
on jack-in if a project type is not supported. - Users with
boot.sh
instead ofboot
should customizecider-boot-command
instead of relying on automatic detection. - #1737: Show value of locals in debugger tooltip.
- Rebind
cider-eval-last-sexp-and-replace
toC-c C-v w
. - Rebind
cider-eval-region
toC-c C-v r
. - Rebind
cider-eval-ns-form
toC-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.
Bugs fixed
- #1755: Impossible completion for multiple zombie REPL buffers.
- #1712: Bad compilation issue caused when installed along with
nim-mode
. - Fix arglist display for
def
in the doc buffer. - Use
cider-apropos-select
instead ofcider-apropos
incider-apropos-documentation-select
. - #1561: Use an appropriate font-lock-face for variables, macros and functions in
the ns-browser. - #1708: Fix
cider-popup-buffer-display
when 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-idle
is non-nil. - #1811: Handle properly jack-in commands with spaces in them.