I have written function (actually a macro, but whatever) that works similarly to progn
. How can I tell emacs that this function should be indented in the same way as progn
?
views:
36answers:
1This should do it
(put 'myfunc 'lisp-indent-function 0)
Documentation for lisp-indent-function
(found by C-h f lisp-indent-function RET):
lisp-indent-function is a compiled Lisp function in `lisp-mode.el'.
(lisp-indent-function indent-point state)
This function is the normal value of the variable
lisp-indent-function
. It is used when indenting a line within a function call, to see if the called function says anything special about how to indent the line.indent-point is the position where the user typed TAB, or equivalent. Point is located at the point to indent under (for default indentation); state is the
parse-partial-sexp
state for that position.If the current line is in a call to a Lisp function which has a non-nil property
lisp-indent-function
, that specifies how to do the indentation. The property value can be *defun
, meaning indentdefun
-style; * an integer N, meaning indent the first N arguments specially like ordinary function arguments and then indent any further arguments like a body; * a function to call just as this function was called. If that function returns nil, that means it doesn't specify the indentation.This function also returns nil meaning don't specify the indentation.