Releases: clojure-emacs/cider
CIDER 0.9.1
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
withcl-assert
(we don't use anything fromcl
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
New features
- #1109 New defcustom
cider-auto-mode
.
On by default, whennil
don't automatically enablecider-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 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. - Better printing of large amounts of exception cause data in the error buffer.
- New defcustom,
cider-stacktrace-print-length
(boolean).
- New defcustom,
- #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 ofcider-jump-to-var
and
cider-jump-to-resource
. Which are now renamed tocider-find-var
andcider-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 ofcider-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
ands
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 toC-c M-f
in the REPL. - #1019:
C-u C-M-x no longer doeseval-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 byinfo
middleware. - #854: Add
nrepl-dict
constructor. - #934: Remove
cider-turn-on-eldoc-mode
in favor of simply usingeldoc-mode
. - #953: Use
sshx
instead ofssh
incider-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
andclojure-disable-cider
.
Bugs fixed
- #921: Fixed
non-functioningcider-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 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
. - #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
incider-switch-to-last-clojure-buffer
.
CIDER 0.8.2
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
New features
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 withC-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
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
and
nrepl-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
variablecider-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.
Bugs fixed
- #705: Fixed macroexpansion
bug fortidy
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 bycider-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
.
CIDER 0.7.0
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 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 withcider-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 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 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
CIDER 0.6.0
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 forcompany-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.
Changes
- #513
Remove hardcoded use of IDO mode and usecompleting-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
.
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 incider-restart
. - #441 Fix timing bug in
cider-jack-in
. - #482 Fix jump-to-def for cljx dependency jars.