Skip to content

0.2.0

Choose a tag to compare

@bbatsov bbatsov released this 29 Jun 11:44

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/sayid coordinates. The old com.billpiel/sayid coordinates 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-argument error when pressing g (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 to g).
  • #68: Fix automatic dependency injection at cider-jack-in time 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.reader and tools.namespace dependencies.
  • 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 sayid plugin version from the version of the Emacs client (see sayid-injected-plugin-version).
  • sayid-trace-ns-by-pattern accepts interactive argument.