Skip to content

Releases: clojure-emacs/cider

CIDER 0.17 (Andalucía)

07 May 19:31
Compare
Choose a tag to compare

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 to C-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 to C-c C-v (C-)c) and cider-eval-sexp-at-point-in-context (bound to C-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 and cider-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 and tools.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 and cider-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 remote cider-jack-in and cider-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 changed cider-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 masking clojure-refactor-map in cider-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)

28 Dec 18:53
Compare
Choose a tag to compare

New Features

  • #2082, cider-nrepl#440: Add specialized stacktraces for clojure.spec assertions.
  • #2111: Add cider-pprint-eval-last-sexp-to-comment and cider-pprint-eval-defun-to-comment.
  • Add a REPL shortcut for cider-repl-require-repl-utils (this makes it easy to require common functions like doc, source, etc. in REPL buffers).
  • #2112: Add a new interactive command cider-find-keyword (bound to C-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 returns nil 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

13 Sep 11:40
Compare
Choose a tag to compare

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 after load-file.

CIDER 0.15 (London)

20 Jul 09:51
Compare
Choose a tag to compare

New Features

  • #2050 Use view-mode for cider-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 and cider-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 and cider-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 when cider-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 of nrepl-connect (and in turn that of cider-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 using cider-jack-in.
  • Renamed cider-prompt-save-file-on-load to cider-save-file-on-load and adjust its supported values accordingly (the default now is 'prompt and 'always-save is now simply t).
  • #2014: Unify the format for forms-str and arglists-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 when enlighten-mode is enabled.
  • #1588: Redirect *err*, java.lang.System/out, and java.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 to fill-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 with cider-connect.
  • #1881: Add cider-cljs-boot-repl and cider-cljs-gradle-repl defcustom and hook boot-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)

13 Oct 14:46
Compare
Choose a tag to compare

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 named cider-test-rerun-test and is about to C-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 and nrepl-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 via cider-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)

25 Jul 08:40
Compare
Choose a tag to compare

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 to C-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 to C-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 with a. Previously was C-c C-m and C-c M-m.
  • Signal an error sooner if the user misconfigured cider-known-endpoints.
  • cider-inspect-read-and-inspect is obsolete. Use cider-inspect-expression instead.
  • Extremely long overlays are truncated and cider-inspect-last-result is recommended.
  • Signal user-error instead of error on jack-in if a project type is not supported.
  • Users with boot.sh instead of boot should customize cider-boot-command instead of relying on automatic detection.
  • #1737: Show value of locals in debugger tooltip.
  • Rebind cider-eval-last-sexp-and-replace to C-c C-v w.
  • Rebind cider-eval-region to C-c C-v r.
  • Rebind cider-eval-ns-form to C-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 of cider-apropos in cider-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)

17 Apr 02:47
Compare
Choose a tag to compare

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 to C-c C-d C-s) and cider-apropos-documentation-select (bound to C-c C-d c-e).
  • New function cider-expected-ns is like clojure-expected-ns, but uses classpath for better results. See clojure-mode#372.
  • A double prefix argument (C-u C-u) for cider-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 terms assertion and test).
  • 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 using C-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)

03 Mar 05:33
Compare
Choose a tag to compare

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 to t. Unlike before, a value of t, causes cider-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. Set cider-inject-dependencies-at-jack-in to nil to opt out. Extension point for other tools to inject their own dependencies is cider-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 in cider-repl-mode. The keybindings are exactly the same as those in cider-mode.
  • Changed the binding of cider-apropos-documentation to C-c C-d f and C-c C-d C-f (it was C-c C-d A).
  • #1584: Don't enable eldoc-mode automatically in cider-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

01 Feb 06:07
Compare
Choose a tag to compare

Changes

  • cider-current-connection actually, really considers major mode before cider-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

05 Jan 14:59
Compare
Choose a tag to compare

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 before cider-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 in cider--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.