This update contains changes from 2020-08-13 to 2025-05-27. Here is a compiled
overview about them:
* Add `clojuredart-mode`, `joker-mode` and `jank-mode`, derived from `clojure-mode`.
* Improve regexp for `clojure-find-def` to recognize more complex metadata on vars.
* Restore `outline-regexp` pattern to permit outline handling of top-level forms.
* Improve regexp for `clojure-find-def` to recognize `defn-` and other declarations on the form `def...-`.
* Fix `clojure-align` when called from `clojure-ts-mode` major mode buffers.
* Syntax highlighting for digits after the first in `%` args. (e.g. `%10`)
* Change syntax class of ASCII control characters to punctuation, fixing situations where carriage returns were being interpreted as symbols.
* Add `.lpy` to the list of known Clojure file extensions.
* Don't highlight vars with colons as keywords.
* Avoid `No comment syntax is defined` prompts.
* Declare indentation for the `async` ClojureScript macro.
* Improve support for multiple forms in the same line by replacing `beginning-of-defun` fn.
* Fix `clojure-find-ns` when ns form is preceded by other forms.
* Fix `clojure-find-ns` when ns form is preceded by whitespace or inside comment form.
* `clojure-find-ns`: add an option to never raise errors, returning `nil` instead on unparseable ns forms.
* Font-lock Lein's `defproject` as a keyword.
* Fix infinite loop when sorting a ns with comments in the end.
* Fix infinite loop when opening file containing `comment` with `clojure-toplevel-inside-comment-form` set to `t`.
* Recognize nbb projects (identified by the presence of `nbb.edn`).
* Set `add-log-current-defun-function` to new function `clojure-current-defun-name` (this is used by `which-function-mode` and `easy-kill`).
* Fix font locking not working for keywords starting with a number.
* Fix everything starting with the prefix `def` being highlighted as a definition form. Now definition forms are enumerated explicitly in the font-locking code, like all other forms.
* Fix `imenu` with Clojure code in string or comment.
* Fix metadata being displayed in `imenu` instead of var name.
* Add font locking for missing `clojure.core` macros.
* Support clojure-dart files.
* Fix buffer freezing when typing metadata for a definition.
* Allow additional directories, beyond the default `clj[sc]`, to be correctly formulated by `clojure-expected-ns` via new `defcustom` entitled `clojure-directory-prefixes`
* Recognize babashka projects (identified by the presence of `bb.edn`).
* Add new command `clojure-promote-fn-literal` for converting `#()` function literals to `fn` form.
* Add `bb` (babashka) to `interpreter-mode-alist`.
* Fix alignment issue involving margin comments at the end of nested forms.
* Extend `clojure-rename-ns-alias` to work on selected regions.
* Add new commands `clojure-toggle-ignore`, `clojure-toggle-ignore-surrounding-form`, and `clojure-toggle-defun` for inserting/deleting `#_` ignore forms.
* Add `clojure-special-arg-indent-factor` to control special argument indentation.
* Fix font-lock for character literals.
* Stop `clojure-sort-ns` from calling `redisplay`.
* Improve font-locking performance on strings with escaped characters.
* Remove `project.el` integration.
* Remove `clojure-view-grimoire` command.
* Align to recent `pcase` changes on Emacs master.
* `clojure-rename-ns-alias` picks up existing aliases for minibuffer completion.
* Fix extra spaces being inserted after quote in paredit-mode.
* Fix docstring detection when string contains backslash.
* Fix font-lock regex for character literals for uppercase chars and other symbols.
* Fix renaming of ns aliases containing regex characters.
* Fix ns detection for ns forms with complex metadata.
* Fix `outline-regexp` so `outline-insert-heading` behaves correctly.
* Indent `clojure-align` region before aligning.
* Fix allow `clojure-align-cond-forms` to recognize qualified forms.
* Fix syntax highlighting for multiple consecutive comment reader macros (`#_#_`).
* Inline definition of `clojure-mode-syntax-table` and support `'` quotes in symbols.
* Enhance add arity refactoring to support a `defn` inside a reader conditional.
* Enhance add arity refactoring to support new forms: `letfn`, `fn`, `defmacro`, `defmethod`, `defprotocol`, `reify` and `proxy`.
You can see a diff of the Changelog here:
* https://github.com/clojure-emacs/clojure-mode/compare/5.11.0...v5.20.0#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4ed
Sponsored by: OTTRIA GmbH