Version 5.21.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.21.0 (2026-02-18) ### New features * [#650](https://github.com/clojure-emacs/clojure-mode/issues/650): Add `edn-mode`, a lightweight mode derived from `clojure-mode` with data-appropriate indentation for `.edn` files. * [#439](https://github.com/clojure-emacs/clojure-mode/issues/439): Add `interpreter-mode-alist` entries for `clojure`, `clj`, `planck`, `joker`, and `jank`, so that scripts with shebang lines are recognized automatically. ### Bugs fixed * [#658](https://github.com/clojure-emacs/clojure-mode/issues/658): Fix `clojure-mode-version` returning `nil`. * [#686](https://github.com/clojure-emacs/clojure-mode/issues/686): Fix `clojure-find-def` failing when comments appear between the `def` form and the symbol name. * [#637](https://github.com/clojure-emacs/clojure-mode/issues/637): Fix `clojure-find-def` failing on symbols containing special characters (e.g. `defn+`). ### Changes * [#482](https://github.com/clojure-emacs/clojure-mode/issues/482): Bind `clojure-align` to `C-c C-a` (following Emacs keybinding conventions). The old `C-c SPC` binding is deprecated and will be removed in a future release. * Bump the minimum required Emacs version to 27.1. ## 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`). ... ...
