0.2.0
The revival release: a big modernization pass plus a move to the mx.cider/sayid coordinates.
Install with [mx.cider/sayid "0.2.0"] (the legacy com.billpiel/sayid coordinates also receive this release). The nREPL middleware API is now documented in doc/nrepl-api.md.
Changes
- Publish under the
mx.cider/sayidcoordinates. The oldcom.billpiel/sayidcoordinates are deprecated but still receive the same releases for now, so existing dependencies keep working. - #13: Document the nREPL middleware API (see doc/nrepl-api.md).
- Rewrite the README's demo walkthrough around a small, self-contained example with current keybindings.
- Consolidate the trace-management nREPL ops into four
action-parametrized ops (sayid-trace-fn,sayid-trace-fn-at-point,sayid-trace-ns,sayid-all-traces), trimming the middleware from 37 ops to 26. (Breaking for any third-party nREPL client; the bundled Emacs client is updated in lockstep.) - Rename the buffer-oriented nREPL ops to client-agnostic names:
sayid-buf-query-id-w-mod->sayid-query-by-id,sayid-buf-query-fn-w-mod->sayid-query-by-fn,sayid-buf-def-at-point->sayid-def-value,sayid-buf-pprint-at-point->sayid-pprint-value. - #29: Fix the
wrong-type-argumenterror when pressingg(and similar commands) by no longer re-reading nREPL response values, which already arrive decoded on nREPL 1.0+. - #14: Fix inner tracing of functions that use
letfn. - #31: Keep the generated reproduction expression in the kill ring and report clearly when the source file can't be located (
sayid-gen-instance-expr, bound tog). - #68: Fix automatic dependency injection at
cider-jack-intime for non-Leiningen projects. - Bump the minimum requirements to Clojure 1.10, nREPL 1.0, CIDER 1.0 and Emacs 28.
- Bump the bundled
tools.readerandtools.namespacedependencies. - Fix the broken Clojure version matrix that prevented the test suite from running on recent Leiningen.
- Modernize CI: run against a JDK/Clojure matrix, lint the Clojure sources with clj-kondo, and byte-compile/lint the Emacs Lisp client.
- Enable lexical binding in the Emacs Lisp client and tidy up its docstrings.
- Modernize the Emacs client's nREPL usage: route all requests through CIDER's sender and drop the obsolete
cider-current-connection. - Sync the in-Emacs help buffers and the README keybinding tables with the actual keybindings (drop entries for commands that no longer exist, add the missing ones).
- Eliminate reflection warnings in the Clojure namespaces.
- Report nREPL op failures with a CIDER-renderable error status instead of printing to the server console, and stop intercepting errors raised by other middleware.
- #61: Remove version extraction logic.
- Decouple the injected
sayidplugin version from the version of the Emacs client (seesayid-injected-plugin-version). sayid-trace-ns-by-patternaccepts interactive argument.