Clojure Mode Versions Save

Emacs support for the Clojure(Script) programming language

v5.16.0

1 year ago

Changes

  • #641: Recognize nbb projects (identified by the presence of nbb.edn).
  • #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: Fix font locking not working for keywords starting with a number.
  • #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: Fix imenu with Clojure code in string or comment.

v5.15.0

1 year ago

Changes

  • #622: Add font locking for missing clojure.core macros.
  • #615: Support clojure-dart files.

Bugs fixed

  • #595, #612: Fix buffer freezing when typing metadata for a definition.

v5.14.0

1 year ago

New features

  • Allow additional directories, beyond the default clj[sc], to be correctly formulated by clojure-expected-ns via new defcustom entitled clojure-directory-prefixes
  • Recognize babashka projects (identified by the presence of bb.edn).
  • #601: Add new command clojure-promote-fn-literal for converting #() function literals to fn form

Changes

  • #604: Add bb (babashka) to interpreter-mode-alist.

Bugs fixed

  • #608 Fix alignment issue involving margin comments at the end of nested forms.

5.13.0

2 years ago

New features

  • #590: Extend clojure-rename-ns-alias to work on selected regions.
  • #567: Add new commands clojure-toggle-ignore, clojure-toggle-ignore-surrounding-form, and clojure-toggle-defun for inserting/deleting #_ ignore forms.
  • #582: Add clojure-special-arg-indent-factor to control special argument indentation.

Bugs fixed

  • #588: Fix font-lock for character literals.
  • Stop clojure-sort-ns from calling redisplay.

Changes

  • #589: Improve font-locking performance on strings with escaped characters.
  • #571: Remove project.el integration.
  • #574: Remove clojure-view-grimoire command.
  • #584: Align to recent pcase changes on Emacs master.

5.12.0

3 years ago

New features

  • #556: clojure-rename-ns-alias picks up existing aliases for minibuffer completion.

Bugs fixed

  • #565: Fix extra spaces being inserted after quote in paredit-mode.
  • #544: Fix docstring detection when string contains backslash.
  • #547: Fix font-lock regex for character literals for uppercase chars and other symbols.
  • #556: Fix renaming of ns aliases containing regex characters.
  • #555: Fix ns detection for ns forms with complex metadata.
  • #550: Fix outline-regexp so outline-insert-heading behaves correctly.
  • #551: Indent clojure-align region before aligning.
  • #520: Fix allow clojure-align-cond-forms to recognize qualified forms.
  • #404/#528: Fix syntax highlighting for multiple consecutive comment reader macros (#_#_).

Changes

  • Inline definition of clojure-mode-syntax-table and support ' quotes in symbols.
  • Enhance add arity refactoring to support a defn inside a reader conditional.
  • Enhance add arity refactoring to support new forms: letfn, fn, defmacro, defmethod, defprotocol, reify and proxy.

5.11.0

4 years ago

New features

  • #496: Highlight [[wikilinks]] in comments.
  • #366: Add support for renaming ns aliases (clojure-rename-ns-alias, default binding C-c C-r n r).
  • #410: Add support for adding an arity to a function (clojure-add-arity, default binding C-c C-r a).

Bugs fixed

  • Dynamic vars whose names contain non-alphanumeric characters are now font-locked correctly.
  • #445 (comment): Proper font-locking for namespaced keywords like for example (s/def ::keyword).
  • #508: Fix font-locking for namespaces with metadata.
  • #506: clojure-mode-display-version correctly displays the package's version.
  • #445, #405, #469: Correct font-locking on string definitions with docstrings, e.g: (def foo "doc" "value"). Correct indentation as well.
  • #518: Fix clojure-find-ns when there's an ns form inside a string.
  • #530: Prevent electric indentation within inlined docstrings.

Changes

  • #524: Add proper indentation rule for delay (same as for future).
  • #538: Refactor clojure-unwind to take numeric prefix argument for unwinding N steps, and universal argument for unwinding completely. The dedicated C-c C-r a binding for clojure-unwind-allis now removed and replaced with the universal arg convention C-u C-c C-r u.

5.10.0

5 years ago

New features

  • Recognize Gradle projects using the new Kotlin DSL (build.gradle.kts).
  • #481: Support vertical alignment even in the presence of blank lines, with the new clojure-align-separator user option.
  • #483: Support alignment for reader conditionals, with the new clojure-align-reader-conditionals user option.
  • #497: Indent "let", "when" and "while" as function form if not at start of a symbol.

Bugs fixed

  • #489: Inserting parens before comment form doesn't move point.
  • #500: Fix project.el integration.

Changes

  • Change the accepted values of clojure-indent-style from keywords to symbols.

5.5.0

5 years ago

New features

  • Port cycle privacy, cycle collection type and cycle if/if-not from clj-refactor.el.
  • Rework cycle collection type into convert collection to list, quoted list, map, vector, set.

5.6.0

5 years ago

New features

  • New interactive command clojure-mode-report-bug.
  • New interactive command clojure-view-guide.
  • New interactive command clojure-view-reference-section.
  • New interactive command clojure-view-cheatsheet.
  • New interactive command clojure-view-grimoire.
  • New interactive command clojure-view-style-guide.
  • Make the refactoring keymap prefix customizable via clojure-refactor-map-prefix.
  • Port and rework let-related features from clj-refactor. Available features: introduce let, move to let, forward slurp form into let, backward slurp form into let.

Changes

  • clojure-mode now requires Emacs 24.4.

5.7.0

5 years ago

New features

  • Add imenu support for multimethods.
  • Make imenu recognize indented def-forms.
  • New interactive command clojure-cycle-when.
  • New interactive command clojure-cycle-not.
  • New defcustom clojure-comment-regexp for font-locking #_ or #_ AND (comment) sexps.
  • #459: Add font-locking for new built-ins added in Clojure 1.9.
  • #471: Support tagged maps (new in Clojure 1.9) in paredit integration.
  • Consider deps.edn a project root.
  • #467: Make prog-mode-map the parent keymap for clojure-mode-map.

Changes

  • Drop support for CLJX.
  • Remove special font-locking of Java interop methods & constants: There is no semantic distinction between interop methods, constants and global vars in Clojure.

Bugs fixed

  • #458: Get correct ns when in middle of ns form with clojure-find-ns
  • #447: When electric-indent-mode is on, force indentation from within docstrings.
  • #438: Filling within a doc-string doesn't affect surrounding code.
  • Fix fill-paragraph in multi-line comments.
  • #443: Fix behavior of clojure-forward-logical-sexp and clojure-backward-logical-sexp with conditional macros.
  • #429: Fix a bug causing last occurrence of expression sometimes is not replaced when using move-to-let.
  • #423: Make clojure-match-next-def more robust against zero-arity def-like forms.
  • #451: Make project root directory calculation customized by clojure-project-root-function.
  • Fix namespace font-locking: namespaces may also contain non alphanumeric chars.