lang/clojure-mode.el: Update from 5.11.0 to 5.20.0
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