Previous: Problems with Macros, Up: Macros
Within a macro definition, you can use the declare
form
(see Defining Macros) to specify how <TAB> should indent
calls to the macro. An indentation specification is written like this:
(declare (indent indent-spec))
This results in the lisp-indent-function
property being set on
the macro name.
Here are the possibilities for indent-spec:
nil
defun
lisp-body-indent
more columns than the open-parenthesis starting the containing
expression. If the argument is distinguished and is either the first
or second argument, it is indented twice that many extra columns.
If the argument is distinguished and not the first or second argument,
the line uses the standard pattern.
parse-partial-sexp
(a Lisp primitive for
indentation and nesting computation) when it parses up to the
beginning of this line.
It should return either a number, which is the number of columns of indentation for that line, or a list whose car is such a number. The difference between returning a number and returning a list is that a number says that all following lines at the same nesting level should be indented just like this one; a list says that following lines might call for different indentations. This makes a difference when the indentation is being computed by C-M-q; if the value is a number, C-M-q need not recalculate indentation for the following lines until the end of the list.