Releases: clojure-emacs/cider
Releases · clojure-emacs/cider
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.
CIDER 0.12 (Seattle)
New Features
- Option
cider-use-tooltips
controls the display of mouse-over tooltips. f
key reruns failed tests on the test-report buffer.g
key reruns test at point on the test-report buffer.- Debugger now supports step-in.
- Improve CIDER's menu-bar menu:
- Thoroughly reorganize it and split it into 3 separate menus;
- Add custom-written
:help
strings to some items, and automatically add help strings to the rest; - Add a few commands;
- Grey-out commands that rely on connections while there is no connection.
- Var docstrings are automatically displayed in mouse-over tooltips.
- #1636: New minor-mode
cider-auto-test-mode
for test-driven-development. When activated, tests are rerun after every load-file. - Javadoc commands take into account the variable
clojure.java.javadoc/*remote-javadocs*
. - Javadoc also works on classes of the AmazonAWS Java SDK.
- Apropos commands now accept lists of space-separated words as arguments, in addition to regular expressions (similar to Emacs's own apropos commands).
- #1541: New commands
cider-apropos-select
(bound toC-c C-d C-s
) andcider-apropos-documentation-select
(bound toC-c C-d c-e
). - New function
cider-expected-ns
is likeclojure-expected-ns
, but uses classpath for better results. See clojure-mode#372. - A double prefix argument (
C-u C-u
) forcider-eval-defun-at-point
debugs the sexp at point instead of the entire defun, and offers to create a conditional breakpoint. - New command
cider-load-all-project-ns
allows you to load all project namespaces. - Display eldoc for keywords used to get map keys.
- Display eldoc for
Classname.
. - Display namespace in eldoc.
- cider-nrepl#313: Selectively suppress user-specified categories of middleware errors from foregrounding stacktrace buffers via the
cider-stacktrace-suppressed-errors
variable.
Changes
- Doc buffer splits arglists into several lines.
- Changed the face of the words “Macro” and “Special form” in the doc buffer to be easier to see.
- Display multi-line eval overlays at the start of the following line. It looked weird that these overlays started on the middle of a line, but then folded onto the start of following lines.
- #1627: Align the terminology used by
cider-test
with the one used by lein and boot (use the termsassertion
andtest
). - Remove the warning about missing nREPl ops.
- #1420: Show stacktrace buffers for sync requests errors.
Bugs fixed
- cider-nrepl#329: Fix error instrumenting functions that call clojure.tools.logging.
- #1643: Running tests no longer deletes unrelated overlays.
- #1632: Redefining a function correctly updates eldoc.
- #1630: The debugger no longer gets confused inside
@
redefs. - #1599: Don't error when test makes 0 assertions.
- #1563: Handle invalid regular expressions in apropos.
- #1625: Display a more meaningful message when running
an individual test usingC-c C-t t
. - Fix buffer closing in
cider-close-ancillary-buffers
. - Dynamic font-locking is also refreshed when a file's namespace depends on a namespace that was changed, so the traced-face should be immediately updated even on functions from another namespace.
- #1656: Apply ansi colors to output when doing eval and print.
CIDER 0.11.0 (Bulgaria)
Today Bulgarians celebrate Liberation Day and the rest of the world
will celebrate the release of CIDER 0.11! :-)
New features
- #1545: New feature: Enlighten. See the new Readme section for more information.
- #1169: New command
cider-eval-defun-to-comment
. - Change default value of
cider-overlays-use-font-lock
tot
. Unlike before, a value oft
, causescider-result-overlay-face
is to be prepended to the font-lock faces (instead of just not being used). cider-result-overlay-face
default value changed to a background and a box, so it can be prepended to other faces without overriding the foreground.- #1518: Add
cider-dynamic-indentation
defcustom, to disable dynamic indent functionality. - Font-lock traced vars.
- New defcustom,
cider-pprint-fn
, allows you to set the function to use when pretty-printing evaluation results. - #1432: Show explicit error messages when invoking commands with no ClojureScript support.
- #1463: Assume that
cider-connect
is invoked from within a project,
and try to associate the created connection with this project automatically. - Typing
s
in a debug session shows the current stack. - Typing
h
(as in _h_ere) skips all sexps until the current point position. - #1507: Add the ability to control the REPL's scroll on output functionality via
cider-repl-scroll-on-output
. - #1543: Add some getting started instructions to the welcome banner.
- New command
cider-drink-a-sip
. Use in case you're thirsty for knowledge. - Make the connection message configurable via
cider-connection-message-fn
. This means now you can have any function (e.g.cider-random-tip
) provide the second part of the message. - New command
cider-repl-clear-banners
. - New command
cider-repl-clear-help-banner
.
Changes
- #1531
cider-jack-in
now injects its own dependencies using CLI. Both leiningen and boot are supported. Setcider-inject-dependencies-at-jack-in
to nil to opt out. Extension point for other tools to inject their own dependencies iscider-add-repl-dependencies
. cider-inspect
now operates by default on the last sexp. Its behavior can be altered via prefix arguments.- Requires Clojure(Script) 1.7 or newer.
- Requires Java 7 or newer.
- Improve stacktrace presentation of compiler errors (readability, DWIM point positioning).
- #1458: Separate nREPL messages by connections instead of by sessions.
- #1226: Enable running of all loaded and all project tests.
- Give test commands their own keybinding prefix (
C-c C-t
). Use both single-key and
Control
+ letter mnemonics for these commands (as for the documentation
commands). cider-test
commands now have keybindings incider-repl-mode
. The keybindings are exactly the same as those incider-mode
.- Changed the binding of
cider-apropos-documentation
toC-c C-d f
andC-c C-d C-f
(it wasC-c C-d A
). - #1584: Don't enable
eldoc-mode
automatically incider-repl-mode
. - #1585: Show the eval command in the debugger's prompt.
Bugs fixed
- #1578: nrepl-server-filter called with dead process buffer in Windows.
- #1441: Don't popup a buffer that's already displayed.
- #1557: When a sibling REPL is started by hasn't yet turned into a cljs REPL, it won't hijack clj requests.
- #1562: Actually disable cider-mode when it gets disabled.
- #1540: Fix cider-complete-at-point.
- cider-nrepl#294: Handle errors in the
complete-doc
nREPL op. - #1493: Support special forms in eldoc.
- #1529: Close nREPL message buffer when you quit its matching connection.
- #707: Better support clojure.test/with-test.
- Fix namespace navigation in the namespace browser.
- #1565: Fix font-locking in apropos buffers.
- #1570: Handle properly rest params in eldoc.
CIDER 0.10.2
Changes
cider-current-connection
actually, really considers major mode beforecider-repl-type
.
Bugs fixed
- #1521: Don't assume the repl buffer is in the current frame in
cider-repl--show-maximum-output
.
CIDER 0.10.1
Changes
- Suppress eldoc when the current sexp seems to be too large.
- #1500: Improve the performance of REPL buffers by using text properties instead of overlays for ANSI coloring.
cider-current-connection
considers major mode beforecider-repl-type
.
Bugs fixed
- #1450: Fix an error in
cider-restart
caused by a reference to a killed buffer. - #1459: Add support for dynamic dispatch in scratch buffers.
- #1466: Correctly font-lock pretty-printed results in the REPL.
- #1475: Fix
args-out-of-range
error incider--get-symbol-indent
. - #1479: Make paredit and
cider-repl-mode
play nice. - #1452: Fix wrong ANSI coloring in the REPL buffer.
- #1486: Complete a partial fix in stacktrace font-locking.
- #1482: Clear nREPL sessions when a connection is closed.
- #1435: Improve error display in cider-test.
- #1379: Fix test highlighting at start of line.
- #1490: Don't display the inspector buffer when evaluation fails.