Version 0.3.0 of package Clojure-Ts-Mode has just been released in NonGNU ELPA. You can now find it in M-x list-packages RET.
Clojure-Ts-Mode describes itself as: =========================== Major mode for Clojure code =========================== More at https://elpa.nongnu.org/nongnu/clojure-ts-mode.html ## Summary: [![NonGNU ELPA][nongnu-elpa-badge]][nongnu-elpa-package] [![MELPA Stable][melpa-stable-badge]][melpa-stable-package] [![MELPA][melpa-badge]][melpa-package] [![License GPL 3][badge-license]][copying] [](https://github.com/clojure-emacs/clojure-ts-mode/actions/workflows/lint-emacs.yml) # Clojure Tree-Sitter Mode `clojure-ts-mode` is an Emacs major mode that provides font-lock (syntax highlighting), indentation, and navigation support for the [Clojure(Script) programming language](http://clojure.org), powered by the [tree-sitter-clojure](https://github.com/sogaiu/tree-sitter-clojure) [tree-sitter](https://tree-sitter.github.io/tree-sitter/) grammar. ## Rationale ## Recent NEWS: # Changelog ## main (unreleased) ## 0.3.0 (2025-04-15) - [#62](https://github.com/clojure-emacs/clojure-ts-mode/issues/62): Define `list` "thing" to improve navigation in Emacs 31. - [#64](https://github.com/clojure-emacs/clojure-ts-mode/pull/64): Add defcustom `clojure-ts-auto-remap` to control remapping of `clojure-mode` buffers. - [#66](https://github.com/clojure-emacs/clojure-ts-mode/pull/66): Improve syntax highlighting: - Highlight metadata with single keyword with `clojure-ts-keyword-face`. - Only highlight built-ins from `clojure.core` namespace. - Highlight named lambda functions properly. - Fix syntax highlighting for functions and vars with metadata on the previous line. - [#67](https://github.com/clojure-emacs/clojure-ts-mode/pull/67): Improve semantic indentation rules to be more consistent with cljfmt. - [#67](https://github.com/clojure-emacs/clojure-ts-mode/pull/67): Introduce `clojure-ts-semantic-indent-rules` customization option. - [#61](https://github.com/clojure-emacs/clojure-ts-mode/issues/61): Fix issue with indentation of collection items with metadata. - [#68](https://github.com/clojure-emacs/clojure-ts-mode/pull/68): Proper syntax highlighting for expressions with metadata. - [#69](https://github.com/clojure-emacs/clojure-ts-mode/pull/69): Add basic support for dynamic indentation via `clojure-ts-get-indent-function`. - [#70](https://github.com/clojure-emacs/clojure-ts-mode/pull/70): Add support for nested indentation rules. - [#71](https://github.com/clojure-emacs/clojure-ts-mode/pull/71): Properly highlight function name in `letfn` form. - [#72](https://github.com/clojure-emacs/clojure-ts-mode/pull/72): Pass fully qualified symbol to `clojure-ts-get-indent-function`. - [#76](https://github.com/clojure-emacs/clojure-ts-mode/pull/76): Improve performance of semantic indentation by caching rules. - [#74](https://github.com/clojure-emacs/clojure-ts-mode/issues/74): Add imenu support for keywords definitions. - [#77](https://github.com/clojure-emacs/clojure-ts-mode/issues/77): Update grammars to the latest versions. - [#79](https://github.com/clojure-emacs/clojure-ts-mode/pull/79): Improve markdown highlighting in the docstrings. - [#60](https://github.com/clojure-emacs/clojure-ts-mode/issues/60): Fix issue with incorrect fontification, when `markdown-inline` is enabled. ## 0.2.3 (2025-03-04) - [#38]: Add support for `in-ns` forms in `clojure-ts-find-ns`. - [#46]: Fix missing `comment-add` variable in `clojure-ts-mode-variables` mentioned in [#26] - Add imenu support for `deftest` definitions. - [#53]: Let `clojure-ts-mode` derive from `clojure-mode` for Emacs 30+. - [#42]: Fix imenu support for definitions with metadata. - [#42]: Fix font locking of definitions with metadata. - [#42]: Fix indentation of definitions with metadata. - [#49]: Fix semantic indentation of quoted functions. - [#58]: Add custom `fill-paragraph-function` which respects docstrings similar to `clojure-mode`. - [#59]: Add customization option to disable markdown syntax highlighting in the docstrings. ## 0.2.2 (2024-02-16) - [#37]: Fix derived modes broken with [#36]. ## 0.2.1 (2024-02-14) - [#36]: Rename all derived mode vars to match the package prefix. - `clojurescript-ts-mode` -> `clojure-ts-clojurescript-mode` - `clojurec-ts-mode` -> `clojure-ts-clojurec-mode` - `clojure-dart-ts-mode` -> `clojure-ts-clojuredart-mode` - `clojure-jank-ts-mode` -> `clojure-ts-jank-mode` - [#30]: Add custom option `clojure-ts-toplevel-inside-comment-form` as an equivalent to `clojure-toplevel-inside-comment-form` in `clojure-mode`. - [#32]: Change behavior of `beginning-of-defun` and `end-of-defun` to consider all Clojure sexps as defuns. ## 0.2.0 - Pin grammar revision in treesit-language-source-alist - [bd61a7fb281b7b0b1d2e20d19ab5d46cbcdc6c1e](https://github.com/clojure-emacs/clojure-ts-mode/commit/bd61a7fb281b7b0b1d2e20d19ab5d46cbcdc6c1e) - Make font lock feature list more conforming with recommendations ... ...