The indentation pattern for a Lisp expression can depend on the function called by the expression. For each Lisp function, you can choose among several predefined patterns of indentation, or define an arbitrary one with a Lisp program.
The standard pattern of indentation is as follows: the second line of the expression is indented under the first argument, if that is on the same line as the beginning of the expression; otherwise, the second line is indented underneath the function name. Each following line is indented under the previous line whose nesting depth is the same.
If the variable lisp-indent-offset is non-
nil, it overrides
the usual indentation pattern for the second line of an expression, so that
such lines are always indented lisp-indent-offset more columns than
the containing list.
Certain functions override the standard pattern. Functions whose
names start with
def treat the second lines as the start of
a body, by indenting the second line lisp-body-indent
additional columns beyond the open-parenthesis that starts the
You can override the standard pattern in various ways for individual
functions, according to the
lisp-indent-function property of
the function name. This is normally done for macro definitions, using
declare construct. See Defining Macros in the
Emacs Lisp Reference Manual.