# Changelog

<!-- Entries are one line per item and section headings repeat for every release,
     so the line-length and duplicate-heading rules don't fit this file. -->
<!-- markdownlint-disable MD013 MD024 -->

## master (unreleased)

### New features

- [#4179](https://github.com/clojure-emacs/cider/pull/4179): Add `cider-flash-evaluated-region` (off by default), which briefly flashes the region an evaluation command sent, so you can see which form it picked.
- [#4176](https://github.com/clojure-emacs/cider/pull/4176): Add `cider-inspect-menu` (`C-c C-i`), listing every way to start an inspection (last sexp, sexp at point, defun, last result, or an expression you type), so they're no longer reachable only by counting prefix arguments to `cider-inspect`.
- [#4173](https://github.com/clojure-emacs/cider/pull/4173): Give the rest of the form commands an "at point" variant, as evaluation and tap already had: `cider-inspect-sexp-at-point`, `cider-pprint-eval-sexp-at-point`, `cider-macroexpand-1-at-point`, `cider-macroexpand-all-at-point`, `cider-format-edn-sexp-at-point` and `cider-insert-sexp-at-point-in-repl`, so you no longer have to move point after a form to act on it.
- [#4164](https://github.com/clojure-emacs/cider/pull/4164): Resolve container-published nREPL ports: `cider-connect` suggestions from a `/docker:`/`/podman:` buffer are translated to the host ports they're published on, and jack-in over tramp-container connects back through the published port instead of failing on the unreachable container name.
- [#4142](https://github.com/clojure-emacs/cider/pull/4142): Bring CIDER's dynamic font-locking (highlighting REPL-defined macros, functions, vars and deprecated/instrumented/traced symbols) to `clojure-ts-mode` buffers via tree-sitter; previously it only worked under `clojure-mode`.
- [#4145](https://github.com/clojure-emacs/cider/pull/4145): Add `cider-preferred-clojure-mode` (default `auto`) controlling which Clojure major mode CIDER uses to font-lock the code it renders (REPL input/results, doc examples, overlays, xref labels, etc.); when set to (or auto-detecting) `clojure-ts-mode`, those snippets get tree-sitter highlighting instead of `clojure-mode`'s.
- [#4146](https://github.com/clojure-emacs/cider/pull/4146): Have CIDER's own Clojure display buffers (macroexpansion, evaluation results, tracing) honor `cider-preferred-clojure-mode` too, so they open in `clojure-ts-mode` when that's your preference instead of always `clojure-mode`.
- [#4143](https://github.com/clojure-emacs/cider/pull/4143): Highlight the `#break`/`#dbg`/`#light` debugging reader tags in `clojure-ts-mode` buffers too.
- [#4117](https://github.com/clojure-emacs/cider/pull/4117): Add `cider-use-completing-read-for-symbol` (off by default): when enabled, symbol prompts (e.g. `cider-doc`, `cider-find-var`) read through `completing-read` over a lazy, runtime-backed collection, so they work with `completing-read` UIs (Vertico, Ivy, Helm) and annotate candidates with their type and namespace.
- [#4129](https://github.com/clojure-emacs/cider/pull/4129): Render completion annotations as an aligned type/namespace column (via an `affixation-function`) in UIs that support it, such as the built-in `*Completions*`, Corfu and Vertico.

### Changes

- [#4177](https://github.com/clojure-emacs/cider/pull/4177): Rename `cider-format-defun` to `cider-format-defun-at-point` and `cider-send-to-comment` to `cider-send-defun-to-comment`, so they name the form they operate on like the rest of the form commands; the old names remain as obsolete aliases.
- [#4175](https://github.com/clojure-emacs/cider/pull/4175): Have the "at point" commands (`cider-eval-sexp-at-point` and friends) fall back to the form preceding point when there's nothing at point, instead of erroring, so they can stand in for their `last-sexp` counterparts.
- [#4166](https://github.com/clojure-emacs/cider/pull/4166): Treat the contents of a `comment` form as top level in the whole defun command family (pretty-printing, eval-to-comment, inspect, format, debug, etc.), not just `cider-eval-defun-at-point` and `cider-eval-dwim`; CIDER's commands no longer depend on `clojure-toplevel-inside-comment-form`.
...
...
