Variable: clojure-indent-style
clojure-indent-style is a customizable variable defined in
clojure-mode.el.
Value
always-align
Documentation
Indentation style to use for function forms and macro forms.
For forms that start with a keyword see clojure-indent-keyword-style.
There are two cases of interest configured by this variable.
- Case (A) is when at least one function argument is on the same
line as the function name.
- Case (B) is the opposite (no arguments are on the same line as
the function name). Note that the body of macros is not
affected by this variable, it is always indented by
lisp-body-indent (default 2) spaces.
Note that this variable configures the indentation of function forms (and function-like macros), it does not affect macros that already use special indentation rules.
The possible values for this variable are keywords indicating how to indent function forms.
always-align - Follow the same rules as lisp-mode. All
args are vertically aligned with the first arg in case (A),
and vertically aligned with the function name in case (B).
For instance:
(reduce merge
some-coll)
(reduce
merge
some-coll)
always-indent - All args are indented like a macro body.
(reduce merge
some-coll)
(reduce
merge
some-coll)
align-arguments - Case (A) is indented like lisp, and
case (B) is indented like a macro body.
(reduce merge
some-coll)
(reduce
merge
some-coll)
This variable was added, or its default value changed, in clojure-mode version 5.2.0.
Source Code
;; Defined in ~/.emacs.d/elpa/clojure-mode-20260325.811/clojure-mode.el
(defcustom clojure-indent-style 'always-align
"Indentation style to use for function forms and macro forms.
For forms that start with a keyword see `clojure-indent-keyword-style'.
There are two cases of interest configured by this variable.
- Case (A) is when at least one function argument is on the same
line as the function name.
- Case (B) is the opposite (no arguments are on the same line as
the function name). Note that the body of macros is not
affected by this variable, it is always indented by
`lisp-body-indent' (default 2) spaces.
Note that this variable configures the indentation of function
forms (and function-like macros), it does not affect macros that
already use special indentation rules.
The possible values for this variable are keywords indicating how
to indent function forms.
`always-align' - Follow the same rules as `lisp-mode'. All
args are vertically aligned with the first arg in case (A),
and vertically aligned with the function name in case (B).
For instance:
(reduce merge
some-coll)
(reduce
merge
some-coll)
`always-indent' - All args are indented like a macro body.
(reduce merge
some-coll)
(reduce
merge
some-coll)
`align-arguments' - Case (A) is indented like `lisp', and
case (B) is indented like a macro body.
(reduce merge
some-coll)
(reduce
merge
some-coll)"
:safe #'symbolp
:type '(choice (const :tag "Same as `lisp-mode'" always-align)
(const :tag "Indent like a macro body" always-indent)
(const :tag "Indent like a macro body unless first arg is on the same line"
align-arguments))
:package-version '(clojure-mode . "5.2.0"))