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-sexpstate 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.