Version 5.22.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.22.0 (2026-03-03)

### New features

* [#687](https://github.com/clojure-emacs/clojure-mode/issues/687): Add 
`clojure-preferred-build-tool` to control project root detection when multiple 
build tool files exist. When unset, prefer directories containing `.git` as a 
tiebreaker.
* [#688](https://github.com/clojure-emacs/clojure-mode/issues/688): Add 
`clojure-discard-face` for `#_` reader discard forms, allowing them to be 
styled differently from comments. Inherits from `font-lock-comment-face` by 
default.
* Add project root detection for ClojureCLR (`deps-clr.edn`).
* Give `edn-mode` its own keymap with data-appropriate bindings, excluding 
code-oriented refactoring commands.

### Changes

* Update font-locking of built-in dynamic vars for Clojure 1.12.
* Update `clojure-mode-extra-font-locking` for Clojure 1.10-1.12 (new functions 
in `clojure.core` and other bundled namespaces).
* Add `clojure.repl` section to `clojure-mode-extra-font-locking`.
* Remove non-existent entries from `clojure-mode-extra-font-locking` 
(`specify`, `specify!`, `special-form-anchor`, `syntax-symbol-anchor`, 
`stream?`).
* Extend `clojure--check-wrong-major-mode` to cover all derived modes (`.cljd`, 
`.jank`, `.joke`, `.edn`).
* Remove dead `.cljd` entry from `clojure-mode` `auto-mode-alist`.

### Bugs fixed

* [#402](https://github.com/clojure-emacs/clojure-mode/issues/402): Font-lock 
protocol method docstrings with `font-lock-doc-face`.
* [#649](https://github.com/clojure-emacs/clojure-mode/issues/649): Fix 
`clojure-add-arity` severing arglist metadata (`^String`, `^:keyword`, 
`^{...}`) when converting single-arity to multi-arity.
* [#600](https://github.com/clojure-emacs/clojure-mode/issues/600): Fix 
`clojure--valid-put-clojure-indent-call-p` rejecting valid indent specs with 
nested lists (e.g. `letfn`'s `(1 ((:defn)) nil)`).
* [#365](https://github.com/clojure-emacs/clojure-mode/issues/365): Font-lock 
function names in `letfn` bindings with `font-lock-function-name-face`.
* [#527](https://github.com/clojure-emacs/clojure-mode/issues/527): Fix 
`clojure-sort-ns` mangling `:gen-class` and other non-sortable ns forms.
* [#619](https://github.com/clojure-emacs/clojure-mode/issues/619): Fix 
`clojure-thread-last-all` breaking forms containing line comments by absorbing 
closing parens into comments.
* [#610](https://github.com/clojure-emacs/clojure-mode/issues/610): Fix 
`edn-mode` indentation to treat all paren lists as data rather than function 
calls.
* Fix `clojure-update-ns` broken by the removal of 
`clojure-namespace-name-regex`.
* Fix typos in `clojure-mode-extra-font-locking`: `halt-when?` -> `halt-when`, 
`simple-indent?` -> `simple-ident?`.
* Fix `doc` and `find-doc` misplaced under `clojure.core` instead of 
`clojure.repl` in extra font-locking.

## 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)
...
...

Reply via email to