Function: clojure-align
clojure-align is an interactive and byte-compiled function defined in
clojure-mode.el.
Signature
(clojure-align BEG END)
Documentation
Vertically align the contents of the sexp around point.
If region is active, align it. Otherwise, align everything in the current "top-level" sexp. When called from lisp code align everything between BEG and END.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/clojure-mode-20260325.811/clojure-mode.el
(defun clojure-align (beg end)
"Vertically align the contents of the sexp around point.
If region is active, align it. Otherwise, align everything in the
current \"top-level\" sexp.
When called from lisp code align everything between BEG and END."
(interactive (if (use-region-p)
(list (region-beginning) (region-end))
(save-excursion
(let ((end (progn (end-of-defun)
(point))))
(clojure-backward-logical-sexp)
(list (point) end)))))
(setq end (copy-marker end))
(save-excursion
(goto-char beg)
(while (clojure--find-sexp-to-align end)
(let ((sexp-end (save-excursion
(backward-up-list)
(forward-sexp 1)
(point-marker)))
(clojure-align-forms-automatically nil)
(count 1))
;; For some bizarre reason, we need to `align-region' once for each
;; group.
(save-excursion
(while (search-forward-regexp "^ *\n" sexp-end 'noerror)
(cl-incf count)))
;; Pre-indent the region to avoid aligning to improperly indented
;; contents (#551). Also fixes #360.
(indent-region (point) (marker-position sexp-end))
(dotimes (_ count)
(align-region (point) sexp-end nil
`((clojure-align (regexp . clojure--search-whitespace-after-next-sexp)
(group . 1)
(separate . ,clojure-align-separator)
(repeat . t)))
nil))))))