Version 5.20.0 of package Clojure-Mode has just been released in NonGNU ELPA. You can now find it in M-x list-packages RET.
Clojure-Mode describes itself as: =========================== Major mode for Clojure code =========================== More at https://elpa.nongnu.org/nongnu/clojure-mode.html ## Summary: Provides font-lock, indentation, navigation and basic refactoring for the Clojure programming language (https://clojure.org). Using clojure-mode with paredit or smartparens is highly recommended. Here are some example configurations: ;; require or autoload paredit-mode (add-hook 'clojure-mode-hook #'paredit-mode) ;; require or autoload smartparens (add-hook 'clojure-mode-hook #'smartparens-strict-mode) See inf-clojure (https://github.com/clojure-emacs/inf-clojure) for basic interaction with Clojure subprocesses. See CIDER (https://github.com/clojure-emacs/cider) for better interaction with subprocesses via nREPL. ## Recent NEWS: # Changelog ## master (unreleased) ## 5.20.0 (2025-05-27) ### New features * Add `clojuredart-mode`, `joker-mode` and `jank-mode`, derived from `clojure-mode`. ### Bugs fixed * [cider#3758](https://github.com/clojure-emacs/cider/issues/3758): Improve regexp for `clojure-find-def` to recognize more complex metadata on vars. * [#684](https://github.com/clojure-emacs/clojure-mode/issues/684): 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...-`. ## 5.19.0 (2024-05-26) ### Bugs fixed * Fix `clojure-align` when called from `clojure-ts-mode` major mode buffers. * [#671](https://github.com/clojure-emacs/clojure-mode/issues/671): Syntax highlighting for digits after the first in `%` args. (e.g. `%10`) * [#680](https://github.com/clojure-emacs/clojure-mode/issues/680): Change syntax class of ASCII control characters to punctuation, fixing situations where carriage returns were being interpreted as symbols. # Changes * [#675](https://github.com/clojure-emacs/clojure-mode/issues/675): Add `.lpy` to the list of known Clojure file extensions. ## 5.18.1 (2023-11-24) ### Bugs fixed * [#653](https://github.com/clojure-emacs/clojure-mode/issues/653): Don't highlight vars with colons as keywords. ## 5.18.0 (2023-10-18) ### Changes * [cider#2903](https://github.com/clojure-emacs/cider/issues/2903): Avoid `No comment syntax is defined` prompts. ## 5.17.1 (2023-09-12) ### Changes * Declare indentation for the `async` ClojureScript macro. ## 5.17.0 (2023-09-11) ### Changes * Improve support for multiple forms in the same line by replacing `beginning-of-defun` fn. ### Bugs fixed * [#656](https://github.com/clojure-emacs/clojure-mode/issues/656): Fix `clojure-find-ns` when ns form is preceded by other forms. * [#593](https://github.com/clojure-emacs/clojure-mode/issues/593): Fix `clojure-find-ns` when ns form is preceded by whitespace or inside comment form. ## 5.16.2 (2023-08-23) ### Changes * `clojure-find-ns`: add an option to never raise errors, returning `nil` instead on unparseable ns forms. ## 5.16.1 (2023-06-26) ### Changes * Font-lock Lein's `defproject` as a keyword. ### Bugs fixed * [#645](https://github.com/clojure-emacs/clojure-mode/issues/645): Fix infinite loop when sorting a ns with comments in the end. * [#586](https://github.com/clojure-emacs/clojure-mode/issues/586): Fix infinite loop when opening file containing `comment` with `clojure-toplevel-inside-comment-form` set to `t`. ## 5.16.0 (2022-12-14) ### Changes * [#641](https://github.com/clojure-emacs/clojure-mode/issues/641): Recognize nbb projects (identified by the presence of `nbb.edn`). * [#629](https://github.com/clojure-emacs/clojure-mode/pull/629): Set `add-log-current-defun-function` to new function `clojure-current-defun-name` (this is used by `which-function-mode` and `easy-kill`). ### Bugs fixed * [#581](https://github.com/clojure-emacs/clojure-mode/issues/581): Fix font locking not working for keywords starting with a number. * [#377](https://github.com/clojure-emacs/clojure-mode/issues/377): 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. * [#638](https://github.com/clojure-emacs/clojure-mode/pull/638): Fix `imenu` with Clojure code in string or comment. ## 5.15.1 (2022-07-30) ### Bugs fixed * [#625](https://github.com/clojure-emacs/clojure-mode/issues/625): Fix metadata being displayed in `imenu` instead of var name. ## 5.15.0 (2022-07-19) ### Changes * [#622](https://github.com/clojure-emacs/clojure-mode/issues/622): Add font locking for missing `clojure.core` macros. * [#615](https://github.com/clojure-emacs/clojure-mode/issues/615): Support clojure-dart files. ### Bugs fixed * [#595](https://github.com/clojure-emacs/clojure-mode/issues/595), [#612](https://github.com/clojure-emacs/clojure-mode/issues/612): Fix buffer freezing when typing metadata for a definition. ... ...