# Changelog

<!-- Entries are one line per item, so the line-length rule doesn't fit this file. -->
<!-- markdownlint-disable MD013 -->

## main (unreleased)

- Fix indentation of namespaced maps in `fixed` indentation style.
- Add project root detection for ClojureCLR project.
- Add missing `defstruct` semantic indentation rule.
- Fix font-lock issues: duplicate query, missing `definline` metadata docstring.
- Fix missing builtin symbols in font-lock regexp.
- Improve performance for imenu, font-lock and indentation.
- Improve performance for `clojure-ts-align` by caching indentation rules.
- [#161](https://github.com/clojure-emacs/clojure-ts-mode/pull/161): Fix `clojure-ts-clojurescript-mode` asking to install the jsdoc grammar on Emacs 31, and failing to start without it.
- [#161](https://github.com/clojure-emacs/clojure-ts-mode/pull/161): Stop running the hooks of `js-ts-mode` and `c++-ts-mode` (and `prog-mode-hook`) in a hidden buffer when `clojure-ts-clojurescript-mode` or `clojure-ts-jank-mode` starts.
- [#147](https://github.com/clojure-emacs/clojure-ts-mode/issues/147): Fix `clojure-ts-align-forms-automatically` having no effect in `clojure-ts-clojurescript-mode` and `clojure-ts-jank-mode`.
- [#161](https://github.com/clojure-emacs/clojure-ts-mode/pull/161): Make `M-q` (`prog-fill-reindent-defun`) reindent the whole top-level form again on Emacs 31, instead of just the innermost one.
- [#161](https://github.com/clojure-emacs/clojure-ts-mode/pull/161): Fix `clojure-ts-update-ns` replacing unrelated text instead of the ns name when `clojure-ts-cache-ns` is enabled.
- [#161](https://github.com/clojure-emacs/clojure-ts-mode/pull/161): Fix `clojure-ts-cycle-privacy` changing the next definition, or a name that merely starts with `def`, when point isn't in a definition.
- [#161](https://github.com/clojure-emacs/clojure-ts-mode/pull/161): Fix `clojure-ts-cycle-conditional` mangling namespace-qualified forms, swapping the wrong parts of an `if` with discarded forms, metadata or no else branch, and not working in function literals.
- [#161](https://github.com/clojure-emacs/clojure-ts-mode/pull/161): Fix `clojure-ts-cycle-not` around metadata: it dropped the metadata of the form it unwrapped, left a new `not` inside it, garbled forms whose head symbol has metadata, and could signal `args-out-of-range`.
- [#161](https://github.com/clojure-emacs/clojure-ts-mode/pull/161): Make the threading and unwinding commands refuse to work around metadata, `#_` forms and reader conditionals, which they used to garble.
- [#161](https://github.com/clojure-emacs/clojure-ts-mode/pull/161): Fix `clojure-ts-add-arity` wrapping the dispatch value of a `defmethod` when it's a vector.
- [#161](https://github.com/clojure-emacs/clojure-ts-mode/pull/161): Stop the refactoring commands from changing a nearby form when point is on a blank line before, between or after forms.
- [#161](https://github.com/clojure-emacs/clojure-ts-mode/pull/161): Fix converting collections with metadata: a quoted list with metadata after the quote (`'^:foo (1 2)`) failed to convert, and converting to a quoted list put the quote after the metadata.

## 0.6.0 (2025-12-02)

- Add a dedicated mode for editing Joker code. (`clojure-ts-joker-mode`).
- [#113](https://github.com/clojure-emacs/clojure-ts-mode/pull/113): Fix non-working refactoring commands for Emacs-30.
- [#114](https://github.com/clojure-emacs/clojure-ts-mode/pull/114): Extend built-in completion to complete keywords and local bindings in `for` and `doseq` forms.
- [#116](https://github.com/clojure-emacs/clojure-ts-mode/pull/116): Extend built-in completion to complete all imported symbols from an `ns` form.
- Add documentation and bug reporting commands from `clojure-mode`.
- [#118](https://github.com/clojure-emacs/clojure-ts-mode/pull/118): Add some ns manipulation functions from `clojure-mode`.
- Fix a bug in `clojure-ts-add-arity` when body has more than one expression.
- [#120](https://github.com/clojure-emacs/clojure-ts-mode/issues/120): Fix a bug when symbols with metadata were not listed in imenu.
...
...
