Skip to content

Releases: clojure-emacs/cider

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.

CIDER 0.10 (a.k.a. CIDERX)

03 Dec 16:26
Compare
Choose a tag to compare

New features

  • #1406: When running tests, report test ns in minibuffer messages.
  • #1402: When tests pass after previously failing, update the test-report buffer to show success.
  • #1373: Add gradle support for cider-jack-in.
  • Indentation of macros (and functions) can be specified in the var's metadata, via indent specs.
  • Abbreviated printing for functions multimethods. Instead of seeing #object[clojure.core$_PLUS_ 0x4e648e99 "clojure.core$_PLUS_@4e648e99"] you'll see #function[clojure.core/+].
  • #1376: Anything printed to *out* outside an eval scope is also forwarded to all nREPL sessions connected from CIDER. Normally it would only be sent to the server's out.
  • #1371: Font-lock deprecated vars with a background color.
  • #1232: Add cider-load-buffer-and-switch-to-repl-buffer.
  • #1325: Jump to error location when clicking on the error message in the stack-trace pop-up.
  • #1301: CIDER can do dynamic font-locking of defined variables, functions, and macros. This is controlled by the cider-font-lock-dynamically custom option.
  • #1271: New possible value (always-save) for cider-prompt-save-file-on-load.
  • #1197: Display some indication that we're waiting for a result for long-running evaluations.
  • #1127: Make it possible to associate a buffer with a connection (via cider-assoc-buffer-with-connection).
  • #1217: Add new command cider-assoc-project-with-connection to associate a project directory with a connection.
  • #1248: Add TAB and RET keys to the test-report buffer.
  • #1245: New variable, cider-overlays-use-font-lock controls whether results overlay should be font-locked or just use a single face.
  • #1235: Add support for syntax-quoted forms to the debugger.
  • #1212: Add pagination of long collections to inspector.
  • #1237: Add two functions for use with cider-repl-prompt-function, cider-repl-prompt-lastname and repl-prompt-abbreviated.
  • #1201: Integrate overlays with interactive evaluation. cider-use-overlays can be used to turn this on or off.
  • #1195: CIDER can create cljs REPLs.
  • #1191: New custom variables cider-debug-print-level and cider-debug-print-length.
  • #1188: New debugging tool-bar.
  • #1187: The list of keys displayed by the debugger can be configured with cider-debug-prompt.
  • #1187: While debugging, there is a menu on the menu-bar listing available commands.
  • #1184: When the user kills the repl buffer, CIDER will offer to kill the nrepl buffer and process too. Also, when the client (repl) process dies, the server (nrepl) process is killed too.
  • #1182: New command cider-browse-instrumented-defs, displays a buffer listing all defitions currently instrumented by the debugger.
  • #1182: Definitions currently instrumented by the debugger are marked with a red box in the source buffer.
  • #1174: New command cider-run, runs the project's -main function.
  • #1176: While debugging, cider's usual eval commands will evaluate code in the current lexical context. Additionally, the l key now inspects local variables.
  • #1149: Two new ways to debug code, the #break and #dbg reader macros.
  • #1219: The output of cider-refresh is now sent to a dedicated *cider-refresh-log* buffer.
  • #1219: New custom variables cider-refresh-before-fn and cider-refresh-after-fn.
  • #1220: Treat keywords as symbols in lookup commands like cider-find-var.
  • #1241: Passing a double prefix argument to cider-refresh will now clear the state of the namespace tracker used by the refresh middleware. This is useful for recovering from errors that a normal reload would not otherwise recover from, but may cause stale code in any deleted files to not be completely unloaded.
  • New defcustom cider-result-use-clojure-font-lock allows you disable the use of Clojure font-locking for interactive results.
  • #1239: New defcustom cider-refresh-show-log-buffer, controls the behaviour of the *cider-refresh-log* buffer when calling cider-refresh. When set to nil (the default), the log buffer will still be written to, but not displayed automatically. Instead, the most relevant information will be displayed in the echo area. When set to non-nil, the log buffer will be displayed every time cider-refresh is called.
  • #1328: Auto-scroll the *nrepl-server* buffer on new output.
  • #1300: Add the ability to replicate an existing connection with cider-replicate-connection.
  • #1330: Leverage nREPL 0.2.11's source-tracking feature.
  • #1392: Track definitions made in the REPL.
  • #1337: Added a command to switch between the Clojure and ClojureScript REPLs in the same project (bound to C-c M-o in cider-repl-mode).

Changes

  • #1299 C-c C-k and C-c C-l now dispatch to both the Clojure and ClojureScript REPL (in the same project) when called from a .cljc or .cljx file.
  • #1397 C-c M-n now changes the ns of both the Clojure and ClojureScript REPL (in the same project) when called from a cljc or cljx file.
  • #1348: Drop the dash dependency.
  • The usage of the default connection has been reduced significantly. Now evaluations & related commands will be routed via the connection matching the current project automatically unless there's some ambiguity when determining the connection (like multiple or no matching connections). Simply put you'll no longer have to mess around much with connecting-setting commands (e.g. nrepl-connection-browser, cider-rotate-default-connection).
  • #732: cider-quit and cider-restart now operate on the current connection only. With a prefix argument they operate on all connections.
  • nrepl-log-messages is now set to t by default.
  • Renamed cider-repl-output-face to cider-repl-stdout-face and cider-repl-err-output-face to cider-repl-stderr-face.
  • Clearing the REPL buffer is now bound to C-u C-C C-o.
  • #1422: Don't display mismatching parens error on incomplete expressions in REPL buffers.
  • #1412: nREPL messages for separate sessions are tracked in separate buffers.
  • Removed cider-switch-to-repl-command.

Bugs fixed

  • #1384: Match windows file names in cider-compilation-regexp.
  • #1252 cider-repl-clear-buffer stops working in certain circumstances.
  • #1164: Fix an error in cider-browse-ns--doc-at-point.
  • #1189: Don't show result from automatic ns form evaluation.
  • #1079: Don't try to font-lock very long results. The maximum font-lockable result length is controlled by cider-font-lock-max-length.

CIDER 0.9.1

24 Jun 13:38
Compare
Choose a tag to compare

New features

  • #1155: The debugger displays overlays highlighting the current sexp and its return value.

Bugs fixed

  • #1142: Don't retrive nrepl ports when cider-known-endpoints entry already contains the port.
  • #1153: Fix behavior of cider-switch-to-current-repl-buffer.
  • #1139: Fix evaluation of ns forms and of forms with unevaluated namespaces.
  • Replace assert with cl-assert (we don't use anything from cl now).
  • #1135: Fix a corner case with locals display in the debugger.
  • #1129: Fix occasional (wrong-type-argument stringp nil) on clojure-android.
  • #1122: Run client initialization in new client buffer.
  • #1143: Handle tests without location metadata.

CIDER 0.9

16 Jun 14:07
Compare
Choose a tag to compare

New features

  • #1109 New defcustom cider-auto-mode.
    On by default, when nil don't automatically enable cider-mode in all Clojure buffers.
  • #1061 New command cider-find-ns, bound to C-c C-., which prompts for an ns and jumps to the corresponding source file.
  • #1019: New file, cider-debug.el.
    Provides a new command, cider-debug-defun-at-point, bound to C-u C-M-x.
    Interactively debug top-level clojure forms.
  • New defcustom, cider-auto-select-test-report-buffer (boolean).
    Controls whether the test report buffer is selected after running a test. Defaults to true.
  • Trigger Grimoire doc lookup from doc buffers by pressing g (in Emacs) and G (in browser).
  • #903: Isolate
    nrepl-client connection logic from CIDER. New hooks cider-connected-hook
    and cider-disconnected-hook.
  • #920: Support cider-jack-in for boot-based projects.
  • #949: New custom var: cider-default-repl-command.
  • New code formatting commands - cider-format-buffer, cider-format-region and cider-format-defun.
  • New data formatting commands - cider-format-edn-buffer and cider-format-edn-region.
  • New insert region in REPL command - cider-insert-region-in-repl.
  • Pretty printing functionality moved to middleware, adding support for ClojureScript.
    • New command to eval and pprint result: cider-interactive-pprint-eval.
    • cider-format-pprint-eval has been removed.
  • Warn when used with incompatible nREPL server.
  • Allow the prompt to be tailored by adding cider-repl-prompt-function and cider-repl-default-prompt.
  • Support for middleware-annotated completion candidates.
    • cider-annotate-completion-function controls how the annotations are formatted.
    • cider-completion-annotations-alist controls the abbreviations used in annotations.
    • cider-completion-annotations-include-ns controls when to include the candidate namespace in annotations.
  • Inspector middleware now relies on eval middleware, adding support for ClojureScript.
  • Better printing of large amounts of exception cause data in the error buffer.
    • New defcustom, cider-stacktrace-print-length (boolean).
  • #958: Reuse existing repl
    buffers with dead processes. Users are now informed about existing zombie repl
    buffers and are offered the choice to reuse those for new connections.
  • New defcustom, cider-prompt-for-symbol. Controls whether to prompt for
    symbol when interactive commands require one. Defaults to t, which always
    prompts. Currently applies to all documentation and source lookup commands.
  • #1032: New functions, cider-find-dwim and
    cider-find-dwim-other-window. These functions combine the functionality of cider-jump-to-var and
    cider-jump-to-resource. Which are now renamed to cider-find-var and cider-find-resource respectively.
  • #1014: A prefix of - causes cider-find-var and
    cider-find-resource to show results in other window. Additionally, a double prefix argument C-u C-u
    inverts the meaning of cider-prompt-for-symbol and shows the results in other window.
  • #1062: Added completion candidates to cider-find-resource.
  • Middleware support for Piggieback 0.2.x.
  • In the namespace browser, d and s are now bound to show the documentation
    or the source respectively for the symbol at point.
  • #1090: New defcustom,
    cider-macroexpansion-print-metadata (boolean). Controls whether metadata of
    forms is included in macroexpansion results. Defaults to nil.

Changes

  • Display the current connection instead of the current namespace in cider-mode's modeline.
  • #1078: Removed
    cider-load-fn-into-repl-buffer, previously bound to C-c M-f in the REPL.
  • #1019:
    C-u C-M-x no longer does eval-defun+print-result. Instead it debugs the form at point.
  • #854: Error navigation now
    favors line information reported by the stacktrace, being more detailed than
    the info reported by info middleware.
  • #854: Add nrepl-dict constructor.
  • #934: Remove
    cider-turn-on-eldoc-mode in favor of simply using eldoc-mode.
  • #953: Use sshx instead of ssh in cider-select-endpoint.
  • #956: Eval full ns form only when needed.
  • Enable annotated completion candidates by default.
  • #1031: Interactive functions prompt with
    symbol at point as a default value.
  • Remapped cider-grimoire to C-c C-d r & C-c C-d C-r
    to avoid conflicts with C-g.
  • #1088: Kill the
    source-tracking evaluation hack as it wasn't compatible with ClojureScript.
  • Removed clojure-enable-cider and clojure-disable-cider.

Bugs fixed

  • #921: Fixed
    non-functioning cider-test-jump from test reports.
  • #962: On error don't auto-jump to tooling files.
  • #909: Fixed
    cider-repl-set-ns's behavior for ClojureScript.
  • #950: Eval ns form in the
    user namespace when using cider-interactive-eval.
  • #954: Detect properly a project's root
    when in buffer that's not visiting a file (e.g. a REPL buffer).
  • #977: cider-format-region now respects indentation of the region start position.
  • #979: Fixed the inspector buffer popping up needlessly.
  • #981: Updated cider-find-file to use find-buffer-visiting instead of get-file-buffer.
  • #1004: :repl-env key is now filtered from exception causes, as it contains unprintably large strings of compiled javascript when using ClojureScript.
  • Tunneled ssh connection now deals correctly with the ssh password request.
  • #1026: The full (ns ...) form for the current buffer is now sent with all source-tracking eval requests, to fix ClojureScript compatibility.
  • #1033: Removed erroneous underlining from stacktrace frames and disabled frame filters in the error buffer.
  • The error buffer no longer pops up when there is no error to display.
  • cider-find-resource now correctly throws an error when no path is provided.
  • #946: cider-stacktrace-mode is now enabled before the error buffer is displayed.
  • #1077: Respect cider-repl-display-in-current-window in cider-switch-to-last-clojure-buffer.

CIDER 0.8.2

21 Dec 10:34
Compare
Choose a tag to compare

Bugs fixed

  • #867: Update Grimoire URL to fix (cider-grimoire-lookup) regression due to HTTP 301 (Moved Permanently).
  • #883: Encode properly the javadoc url.
  • #824: Fix REPL font-locking.
  • #888: Handle comments in cider-repl-mode.
  • #830: Stop using load-file for most interactive evaluation commands.
  • #885: Translate nREPL-delivered map keys to symbols before adding as text properties.
  • Fix tab completion in cider-read-from-minibuffer.
  • #894: Make it possible to enter any symbol with cider-read-symbol-name.
  • Report Clojure's version including its qualifier (e.g. alpha4) if present.

CIDER 0.8

20 Nov 21:53
Compare
Choose a tag to compare

New features

  • cider-auto-jump-to-error accepts new option 'errors-only
  • cider-connect now asks for remote hosts defined in machine-wide ssh
    configuration files and automatically detects running instances of lein
    server, both on local and remote machines.
  • New defcustom cider-stacktrace-print-level. Controls the *print-level* used when
    pretty printing an exception cause's data. Defaults to 50.
  • New interactive command cider-undef.
  • New interactive command cider-clear-compilation-highlights.
  • First pass at a CIDER quick reference card.
  • completion-at-point now annotates functions, macros and special forms, thus making it
    simpler to gain understanding of what you're using (disabled by default).
  • When invoked with a prefix argument cider-quit doesn't ask for confirmation.
  • Enhance stacktrace to definition navigation to work for interactively defined vars.
  • New vars: cider-to-nrepl-filename-function and cider-from-nrepl-filename-function
    are used to translate filenames from/to the nREPL server (default Cygwin implementation provided).
  • Java classpath browser (M-x cider-classpath).
  • Clojure namespace browser (M-x cider-browse-ns and M-x cider-browse-ns-all).
  • Added the ability to jump to a definition from a docview buffer.
  • New interactive command cider-close-nrepl-session.
  • New interactive command cider-describe-nrepl-session.
  • New interactive command cider-toggle-trace-ns (mapped to C-c M-t n)
  • New interactive command cider-repl-require-repl-utils.
  • #784: Make it possible to run tests in
    the current ns with C-u C-c ,.

Changes

  • bencode decoder was rewritten:
    • nREPL dicts are now plists and accessor api is given by nrepl-dict-p,
      nrepl-dict-get and nrepl-dict-put.
    • nested stack is used for decoded messages to avoid re-parsing of incomplete messages
    • queues are used for incoming strings from the server and for the decoded responses
  • REPL buffers are now connection buffers for REPL client connections.
  • Server and client cranking were isolated into nrepl-start-server-process and
    nrepl-start-client-process.
  • nrepl-client.el refactoring:
    • nrepl-send-request-sync was renamed into nrepl-send-sync-request to comply

    • with the names of other 'sync' variables.

    • nREPL requests are now named with nrepl-request:OP where "OP" stands for
      the type of the request (eval, clone etc.). The following functions
      were renamed:

      nrepl-send-string -> nrepl-request:eval
      nrepl-send-string-sync -> nrepl-sync-request:eval
      nrepl-send-interrupt -> nrepl-request:interrupt
      nrepl-send-stdin -> nrepl-request:stdin
      nrepl-describe-session -> nrepl-request:describe
      nrepl-create-client-session -> nrepl-request:clone

  • Renamed cider-macroexpansion-suppress-namespaces to cider-macroexpansion-display-namespaces.
  • #652: Suppress eldoc when
    an error message is displayed in the minibuffer.
  • #719 The customization
    variable cider-test-show-report-on-success controls now, whether to show the
    *cider-test-report* buffer on passing tests. The default is to not show the
    buffer.
  • Renamed cider-toggle-trace to cider-toggle-trace-var and remapped it to C-c M-t v.

Bugs fixed

  • #705: Fixed macroexpansion
    bug for tidy namespace display.
  • Font-lock properly error messages in the REPL resulting from interactive evaluation.
  • #671: Remove problematic code that was
    setting the REPL's initial ns based on lein's :init-ns option.
  • #695: Keep point at
    original position when clearing or highlighting test results.
  • #744: Fix the ability to customize the
    lein command invoked by cider-jack-in.
  • #752: Don't assume
    clojure.core/let is always available as let.
  • #772: Don't try to read Clojure results as
    Emacs Lisp code.
  • #631: Set file and line metadata when
    doing interactive evaluation.
  • nREPL sessions are now closed on cider-quit.
  • Fix minibuffer history for cider-read-and-eval.

CIDER 0.7.0

20 Aug 13:01
Compare
Choose a tag to compare

New features

  • New cider-auto-jump-to-error control variable for auto jumping to error
    location.
  • #537: New support for
    Java symbol lookup from cider-nrepl's info middleware.
  • #570: Enable toggling
    of the 'all' filter on stacktraces.
  • #588: New doc-mode
    for presenting fontified documentation, including Javadoc.
  • New interactive command cider-toggle-trace.
  • cider-select can now switch to the *cider-error* buffer (bound to x).
  • #613: New clojure.test
    integration.
  • #22: New command
    cider-jump-to-resource (bound to C-c M-.).
  • #664: New apropos support:
    search function/var names (bound to C-c C-d a) or documentation
    (bound to C-c C-d A).
  • You can view Grimoire's entry for a particular Clojure (built-in) symbol in
    Emacs with cider-grimoire (C-c C-d g) or your default browser with
    cider-grimoire-web (C-c C-d h).
  • cider-mode now displays the namespace of the current buffer in the mode-line
    (as SLIME does).

Changes

  • #597: Don't process nREPL
    messages unless the whole message has been received.
  • #603: New variable
    cider-show-error-buffer to control the behavior of the error buffer. Obsoletes
    cider-popup-on-error, cider-popup-stacktraces and
    cider-repl-popup-stacktraces.
  • cider-nrepl is now required. Without it pretty much nothing will work.
  • Removed redundant command cider-src.
  • Renamed nrepl-log-events variable to nrepl-log-messages.
  • Renamed nrepl-log-events command to nrepl-log-messages.
  • Remove redundant cider-src command.
  • #582: Enable efficient
    loading of jar/zip resources.
  • #589: Don't prefer local
    paths over tramp by default.
  • #554: cider-auto-select-error-buffer is set to t by default.
  • #610: Present error and
    stacktrace info for all exception causes.
  • Removed cider-repl-print-length config option and
    cider-repl-toggle-print-length-limiting command.
  • Remapped cider-doc to C-c C-d d.
  • Remapped cider-javadoc to C-c C-d j
  • cider's scratch is now more consistent with an Emacs Lisp scratch buffer.

Bugs fixed

  • #577: Fix bencode decoding
    of negative integers.
  • #607: Respect
    *print-length* in cider-pprint-eval-defun-at-point and
    cider-pprint-eval-last-sexp.

CIDER 0.6.0

24 Apr 18:51
Compare
Choose a tag to compare

CIDER 0.6 is probably the biggest release in the history of the project. It comes with many new features and improvements - most notably proper ClojureScript support via the cider-nrepl middleware. It also brings much improved completion logic and stacktrace display (also via cider-nrepl) + a brand new inspector.

CIDER 0.6 signifies both the maturing of the project and the end of an era. It will be the very last release that will work without the cider-nrepl middleware. Inlining Clojure code is problematic on many levels and I decided that I'm done with it. I'd rather us offload as much logic as we can into middleware. So in CIDER 0.7 cider-nrepl will be a hard dependency, which makes installation a bit more complex, but the extra benefits are well worth a slight inconvenience.

One last thing - support for Emacs 23 was officially dropped and all the source code now uses the lexical scoping introduced in Emacs 24.1. I guess this will affect pretty few users, but it has to be mentioned.

Below are all the gory details. Enjoy!

P.S. I'm having problems uploading the package to Marmalade for the millionth time. Not sure when (if ever) CIDER 0.6 will land there.

New features

  • New interactive command cider-change-buffers-designation.
  • Cider command uses cider-known-endpoints.
  • #490 Dedicated
    support for company-mode in cider-complete-at-point.
  • #489 Enable
    cider-jack-in on tramp source buffers.
  • #460 Support for
    cider-nrepl's complete middleware for CLJ/CLJS autocomplete.
  • #465 Support for
    cider-nrepl's info middleware for jump-to-definition.
  • #469 Add option
    cider-prompt-save-file-on-load.
  • New interactive command cider-insert-defun-in-repl.
  • New interactive command cider-insert-ns-form-in-repl.
  • New inspector inspired by SLIME's inspector
  • STDERR ouput is now font-locked with cider-repl-err-output-face to make it
    visually distinctive from cider-repl-output-face (used for STDOUT output).
  • New interactive command cider-scratch.
  • #521 New interactive
    stacktrace filtering/navigation using cider-nrepl's stacktrace middleware.

Changes

  • #513
    Remove hardcoded use of IDO mode and use completing-read.
  • Required Emacs version is now 24.1.
  • #486 Improve
    support for tramp, so tramp paths do not get used in compiled debug
    information. cider-jump still uses tramp filenames to find
    definitions if used in a buffer associated with a tramp file.
  • Renamed cider command to cider-connect.

Bugs fixed

  • #515 Fix
    inconsistent prompt used for load symbol functions.
  • #501 Fix
    nil appearing in nrepl-server buffer name when no project directory.
  • #493 Fix rotate connection to handle no
    nREPL connection.
  • #468 Fix
    pretty-printing of evaluation results so that *1 is set properly.
  • #439 Fix
    race condition bug in cider-restart.
  • #441 Fix timing bug in cider-jack-in.
  • #482 Fix jump-to-def for cljx dependency jars.