- 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 hookscider-connected-hook
andcider-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
andcider-format-defun
. - New data formatting commands -
cider-format-edn-buffer
andcider-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.
- New command to eval and pprint result:
- Warn when used with incompatible nREPL server.
- Allow the prompt to be tailored by adding
cider-repl-prompt-function
andcider-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.
- #934: Remove
cider-turn-on-eldoc-mode
in favor of simply usingeldoc-mode
. - #953 Use
sshx
instead ofssh
incider-select-endpoint
- Enable annotated completion candidates by default.
- #921: Fixed
non-functioning
cider-test-jump
from test reports. - #909: Fixed
cider-repl-set-ns
's behavior for ClojureScript. - #950: Eval
ns
form in theuser
namespace when usingcider-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 usefind-buffer-visiting
instead ofget-file-buffer
.
- #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. - Use the
field
text property to make move-beginning-of-line respect the repl prompt instead of writing our own beginning-of-line commands.
- Fixed version mismatch warning on CIDER startup (the actual bug was in
cider-nrepl
).
cider-auto-jump-to-error
accepts new option'errors-only
cider-connect
now asks for remote hosts defined in machine-widessh
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
andcider-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
andM-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 ,
.
-
bencode decoder was rewritten:
- nREPL dicts are now plists and accessor api is given by
nrepl-dict-p
,nrepl-dict-get
andnrepl-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
- nREPL dicts are now plists and accessor api is given by
-
REPL buffers are now connection buffers for REPL client connections.
-
Server and client cranking were isolated into
nrepl-start-server-process
andnrepl-start-client-process
. -
nrepl-client.el refactoring:
-
nrepl-send-request-sync
was renamed intonrepl-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
tocider-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
tocider-toggle-trace-var
and remapped it to C-c M-t v.
- #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 aslet
. - #772: Don't try to read Clojure results as Emacs Lisp code.
- #631: Set
file
andline
metadata when doing interactive evaluation. - nREPL sessions are now closed on
cider-quit
. - Fix minibuffer history for
cider-read-and-eval
.
- 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 tox
).- #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 withcider-grimoire-web
(C-c C-d h). cider-mode
now displays the namespace of the current buffer in the mode-line (as SLIME does).
- #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. Obsoletescider-popup-on-error
,cider-popup-stacktraces
andcider-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 tonrepl-log-messages
. - Renamed
nrepl-log-events
command tonrepl-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 tot
by default. - #610: Present error and stacktrace info for all exception causes.
- Removed
cider-repl-print-length
config option andcider-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.
- #577: Fix bencode decoding of negative integers.
- #607: Respect
*print-length*
incider-pprint-eval-defun-at-point
andcider-pprint-eval-last-sexp
.
- New interactive command
cider-change-buffers-designation
. - Cider command uses
cider-known-endpoints
. - #490: Dedicated
support for
company-mode
incider-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 fromcider-repl-output-face
(used for STDOUT output). - New interactive command
cider-scratch
. - #521: New interactive stacktrace filtering/navigation using cider-nrepl's stacktrace middleware.
- #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 tocider-connect
.
- #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.
- C-c M-f Select a function from the current namespace using IDO and insert into the REPL buffer.
cider-read-and-eval
now supports completion and keeps history.- Added ability to limit the number of objects printed in collections
by managing
*print-length*
.cider-repl-print-length
can be used to set a limit, andcider-repl-toggle-print-length-limiting
can be used to toggle the enforcement of the limit. - New config
cider-interactive-eval-result-prefix
controls the prefix displayed before results from interactive evaluation displayed in the minibuffer. - New config
cider-repl-result-prefix
controls the prefix displayed before results in the REPL. - Font-lock interactive evaluation results as Clojure code.
- Added the ability to font-lock input and results in the REPL as Clojure code. This is controlled via
the option
cider-repl-use-clojure-font-lock
. - Added
cider-pprint-eval-defun-at-point
, a companion tocider-pprint-eval-last-sexp
which works on the top-level form. - The REPL buffer name uses host if no project directory available;
*cider-repl*
will appear as*cider-repl <host>*
.
- #316: Honor the
:init-ns
namespace on startup. - #436: Fix an infinite loop when evaluating ns forms.
- #435: Fix trampling of
cider-switch-to-repl-buffer
bycider-switch-to-relevant-repl-buffer
.
- Added new interactive command
cider-read-and-eval
(bound toC-c M-:
incider-mode
). - Added new interactive command
cider-eval-last-sexp-to-repl
(C-c M-e
). The command will output the result of the evaluated code to the REPL buffer, so you can easily play with the output there afterwords. - Added new interactive command
cider-insert-last-sexp-in-repl
(C-c M-p
). - Added new interactive command
cider-eval-last-expression-and-replace
(C-c C-w
). - Implemented REPL shortcuts, triggered by pressing
,
at the start of a REPL input line (similar to the ones in SLIME). - Added new interactive command
cider-ping
to check connectivity with the server.
- Renamed
cider-history-size
tocider-repl-history-size
. - Renamed
cider-history-file
tocider-repl-history-file
. - Renamed
cider-wrap-history
tocider-repl-wrap-history
. - Renamed
cider-eval-expression-at-point
tocider-eval-defun-at-point
. - Changed
last-expression
tolast-sexp
in a number of functions.
- #315: Removed spurious newlines in output.
- #237: Don't swallow output from futures.
- Create non-existing namespaces, when evaluating code in Clojure buffers.
- Fix REPL init
- The variable
cider-repl-display-in-current-window
controls whether the REPL should be displayed in the current window when switched to. cider-repl-set-ns
can now be invoked in the REPL.- The content of
.nrepl-port
, if present, will be used as the default port for M-x nrepl. This is in addition totarget/repl-port
. - Applies ANSI color to all output in the REPL buffer.
- Renamed package to CIDER.
- Split package into several files.
- Renamed
cider-interaction-mode
tocider-mode
.
- #393 - Error when evaluating strings with a namespace declaration in them.
- C-c M-d will display current nREPL connection details.
- C-c M-r will rotate and display the current nREPL connection.
- Setting the variable
nrepl-buffer-name-show-port
will display the port on which the nREPL server is running. - The REPL buffer name uses project directory name;
*nrepl*
will appear as*nrepl project-directory-name*
. - The nREPL connection buffer name uses project directory name;
*nrepl-connection*
will appear as*nrepl-connection project-directory-name*
. - nREPL server buffer name uses project directory name;
*nrepl-server*
will appear as*nrepl-server project-directory-name*
. - C-c C-Z will select the nrepl buffer based on the current namespace.
- C-u C-c C-Z will select the nrepl buffer based on a user project directory prompt.
- Bind C-c C-q to
nrepl-quit
- Added an option to auto-select error popups (
nrepl-auto-select-error-buffer
) - Made the display of the REPL buffer on connect optional
- Renamed
nrepl-mode
tonrepl-repl-mode
- C-c M-s (
nrepl-selector
) was bound to non-existing symbol. - Fix indentation in REPL buffers.
- Fix
nrepl-doc
on Clojure 1.5
- Evaluate all namespace forms
(ns ...)
in the user namespace. - Add highlighting of compilation warnings in addition to existing highlighting of errors
- Add support for selecting last Clojure source buffer with keybinding
C-c C-z (the same as
nrepl-switch-to-repl-buffer
). - The content of
target/repl-port
, if present, will be used as the default port for M-x nrepl - Added an extendable slime-style selector command and binding C-c M-s
- M-. (
nrepl-jump
) on remote nrepl connection (across OS hosts) has been fixed.
-
Add support for multiple nrepl sessions. A single session is closed with
M-x nrepl-close
. A repl session is made default withM-x nrepl-make-repl-connection-default
. -
Added support for pretty-printing in the REPL buffer.
-
Added a check for the presence of an existing
*nrepl*
buffer before creating a new one withnrepl-jack-in
ornrepl
. -
M-.
learned about namespaces. -
Added new customization variable
nrepl-popup-stacktraces-in-repl
. -
Added some convenience keybindings to
clojure-mode
-nrepl-jack-in
is now bound to C-c M-j andnrepl
is bound to C-c M-c. -
Added
nrepl-hide-special-buffers
setting to control the display of special buffers like*nrepl-server*
and*nrepl-connection*
. -
Apply ANSI color codes to output sent to nrepl buffers.
-
Add a connection browser
nrepl-connection-browser
to allow control of multiple connections. -
Add macroexpand key bindings to
nrepl-mode-map
. -
Don't suppress namespaces in macroexpansion.
-
Add explicit require of expected namespaces in the repl buffer.
-
Add command
nrepl-pprint-eval-last-expression
. -
Add an event buffer for debugging.
-
Allow connections without repl buffers.
-
Add hook
nrepl-file-loaded-hook
which runs on load-file completion. -
Expand ido-completion to include "used" variables in addition to "interned" variables.
- More accurate matching of filenames in stacktraces.
- Fix #290 - Macroexpand buffer truncates long expansions
- Ported SLIME macroexpansion mode (see README for full documentation)
- Updated macroexpansion to use pprint with code-dispatch
- Eldoc argument highlighting
- Simplify popup buffer quit/restore using `quit-window'.
- Add nrepl-disconnected-hook and disable nrepl when disconnected.
- Get key bindings documentation into the minor mode descriptions (Ivan Necas)
- made the TAB command in the nrepl-mode buffers configurable (Bozhidar Batsov)
- Added convenience function to report the version of nREPL in use. (fogus)
- Shift-Home and Shift-Ctrl-a in repl, which select just the user input when on the input line. (Ivan Kozik)
- Emit server log output at bottom of
*nrepl-server*
buffer. (Brian Rowe) - Reset nrepl-buffer-ns on nrepl-restart. Fixes issue #187.
- Implement nrepl-mode as a derived mode. (Bozhidar Batsov)
- fix #194 - stacktrace buffer was not respecting nrepl-popup-stacktraces (Bozhidar Batsov)
- Fix message formatting for results containing "%" (fixes issue #195).
- Fix NPE in nrepl-jump (issue #124). (cola-zero)
- Fix nrepl to work with fish shell (issue #192). (Dario Bertini)
- Adjusted the javadoc keybinding and mentioned it in the README. (Bozhidar Batsov)
- Fix issue #163 - exclude ns from nrepl-load-file.
- Ignore "killed" and "hangup" events in sentinel (Chris Bilson)
- Clear the correct region when replacing the input line. (Ivan Kozik)
- Fix issue #146. Include "@" in nrepl-input-complete-p.
- Handle stdout messages that arrive after status "done"
- Support for describe op to determine which server ops are available at startup
- Support for the following server ops (if available): load-file, complete, and javadoc (available in ritz)
- Added nrepl-host and nrepl-port custom variables M-x nrepl default hostname/port
- Ported over the following repl buffer functions from slime: History regexp filtering - M-s nrepl-next-matching-input, M-r nrepl-previous-matching-input C-c C-u nrepl-kill-input C-c C-n nrepl-next-prompt/C-c C-p nrepl-previous-prompt
- Added nrepl-quit and nrepl-restart commands
- Added menus for nrepl-mode and nrepl-interaction-mode
- Add nrepl-eval-print-last-expression
- Ensure nrepl-eval-sync waits for :done when response is chunked
- Improvements and simplifications for completion (Tassilo Horn)
- Documentation additions and fixes (Ryan Fowler, Nikita Beloglazov, Bozhidar Batsov, Juha Syrjl, Philipp Meier)
- Make completion back-end and error handler configurable (Hugo Duncan)
- Accept host as well as port on connect (Ken Restivo)
- Enable nrepl-interaction-mode in clojurescript-mode (Nelson Morris)
- Emit stdout from interactive evaluations into the repl buffer
- Fix paredit .. don't make clojure-mode-map parent of nrepl-interaction-mode-map (Tassilo Horn)
- Fixes for ECB interop (Matthew Willson)
- Namespace qualify tooling calls (Justin Kramer)
- Eldoc fixes (Jack Moffitt)
- Fix path quoting in load file for Windows (Philipp Meier)
- Fix nREPL / Emacs error "Unable to resolve symbol: if-let"
- eldoc support for displaying arglists in the minibuffer (Stefan Kamphausen)
- persistent repl history (Stefan Kamphausen)
- fix for jumbled stacktraces (Ryan Fowler)
- add a doc keybinding for the repl buffer (Ken Restivo)
- plumbing to support ac-nrepl [https://github.com/purcell/ac-nrepl] (Steve Purcell)
- stdin support (which also provides support for debug-repl [https://github.com/GeorgeJahad/debug-repl] and limit-break [https://github.com/technomancy/limit-break])
- convert nrepl-interaction-mode into a major mode
- display stacktrace on eval-error
- change lein command to
lein
- add fn to eval current buffer's ns
- handle filter messages spanning multiple chunks of output
- Let nrepl-jack-in accept project dir when given a prefix arg.
- C-c C-b nrepl-interrupt
- client session management
- added words of inspiration + version at startup
- Add M-n and M-p to nrepl-mode-map.
- Implement M-.: nrepl-jump-to-def.
- Implement basic completion.
- Implement nrepl-doc.
- Prevent M-p at top of history from pushing position one step further.
- M-n after end of history should blank out input.
- Add M-n and M-p to nrepl-mode-map.
- Implement M-.: nrepl-jump-to-def.
- Initial version