Skip to content

Releases: clojure-emacs/cider

CIDER 0.22 (São Paulo)

04 Sep 21:06
Compare
Choose a tag to compare

New features

  • #2656: Base64 encode clojure command and arguments on jack-in when cider-clojure-cli-command is "powershell" to avoid escaping issues. If no clojure command is found on Windows cider-clojure-cli-command defaults to "powershell".
  • Allow editing of jack in command with prefix or when cider-edit-jack-in-command is truthy.
  • New defcustom cider-repl-require-ns-on-set: Set it to make cider require the namespace before setting it, when calling cider-repl-set-ns.
  • #2611: Add eval-based classpath lookup fallback. It's used when cider-nrepl is not present.
  • #2611: Add eval-based var info lookup fallback. It's used when cider-nrepl is not present.
  • #1840: Add a command to find runtime function references (cider-xref-fn-refs).
  • Add a command to find runtime function dependencies (cider-xref-fn-deps).
  • Add a menu to the inspector.
  • Add completion of shadow-cljs build names in the minibuffer when connecting or jacking in.

Changes

  • cider-use-tooltips now also controls whether help-echo is used.
  • cider-print-options is now supported by the pr option for cider-print-fn. The options will now be also used by interactive eval commands that do not use pretty-printing.
  • spec-list and spec-form requests send the current namespace for alias resolution.
  • C-c , C-g and C-c C-t C-g cancel the key chord instead of rerunning the last test. The respective command has been moved to C-c , C-a, C-c , a, C-c C-t C-a and C-c C-t a.
  • #2643: (Breaking) Stop using the cider.tasks/nrepl-server custom task for cider-jack-in with Boot.
  • #2647 cider-repl-require-repl-utils now loads cljs specific repl utils in cljs buffers.
  • #2689 cider-load-buffer now takes an optional callback that will override the default cider-load-file-handler.
  • #2689 cider-load-file-handler now takes an optional done-handler lambda that is run once load is complete.

Bug fixes

  • #2685: Send exclude-regexps in apropos under correct key
  • Stop cursor moving when initialising the CIDER REPL, when cider-repl-pop-to-buffer-on-connect is nil. This fixes a bug introduced by commit e0aca78b.
  • #2577: Ensure user friendly error messages if a repl connection is expected but none was found in certain situations.
  • #2593: The REPL's initial namespace is now set correctly if configured in another tool (e.g. Leiningen's :init-ns).
  • #2607: Use markers for specifying insertion point for cider-eval-*-to-commentcommands. This fixes a bug where editing the buffer during a pending evaluation resulted in comments appearing in unintended locations.
  • #2308: Don't rely on the classpath in cider-library-present-p. Now it does a require instead to check if some library is present or not.
  • #2541: Hook properly CIDER's code completion machinery.
  • #2659: Handle #shadow/env reader tags in cider--shadow-get-builds.
  • #2676: Widen before cider--file-string, to allow cider-load-buffer to work on narrowed buffers.
  • Don't disable cider-mode until all CIDER sessions have been closed.

CIDER 0.21 (New York)

19 Feb 12:38
v0.21.0
200c88a
Compare
Choose a tag to compare

New features

  • The cider-test-run-* and cider-ns-refresh-* commands are now interruptible by the cider-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 any set!-able vars in place). Replaces cider-print-length and cider-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 to nil 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 variable scroll-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 and cider-pprint-options are now obsolete, replaced by cider-print-fn and cider-print-options.
  • cider-debug-print-options, cider-stacktrace-print-options, and cider-repl-pretty-print-width are now all obsolete, replaced by cider-print-options.
  • #2546: New defcustom cider-ns-save-files-on-refresh-modes to control for which buffers cider-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 and cider-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)

14 Jan 18:03
Compare
Choose a tag to compare

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

  • #2532: Fix re-display hangs while dynamically recovering source locations under mouse pointer.
  • #2560: Detect REPL type for completion, eldoc and info ops.

CIDER 0.19 (Raleigh)

01 Jan 10:13
Compare
Choose a tag to compare

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 (autoload cider-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 :: (use localhost 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 to nil (previously it always tried to infer).

CIDER 0.18 (Saigon)

02 Sep 16:40
Compare
Choose a tag to compare

New features

  • #2375: Move cider-eval-toplevel-inside-comment-form into clojure-mode as clojure-toplevel-inside-comment-form so beginning-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 to cider-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 and cider-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 when clojure is not present.

Changes

  • (Breaking) Move cider-repl-set-ns, previously on C-c M-n, on C-c M-n (M-)n in the cider-ns-map.
  • (Breaking) Move cider-ns-refresh, previously on C-c C-x, on C-c M-n (M-)r in the cider-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 and nrepl-buffer-name-show-port. See cider-session-name-template and cider-format-connection-params for how to customize CIDER buffer names.
  • Rename cider-eval-defun-to-point to cider-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 using cider-selector.
  • Rename cider-refresh to cider-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 (use cider-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 to C-c C-v (C-)f (C-)e in the cider-eval-commands-map.
  • Map cider-pprint-eval-defun-at-point to C-c C-v (C-)f (C-)d in the cider-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)

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.