I have a macro I use quite frequently that has a definition:
(defmacro defpage (name title url &body body) ...)
Even when I set lisp-prefix-match-indentation to nil (*see below), slime/emacs insists on indenting a call to defpage as
(defpage test-page "Test Page" "/url/to" (div (div "the rest of the forms")))
If I rename defpage to something else, like 'mkpage', the indenting works as expected:
(mkpage test-page "Test Page "/url/to" (div (div "the rest of the forms")))
I poked around in the slime source code, but I really wasn't able to make heads or tails of what is causing this unexpected (for me) behavior. If what I'm noticing is a 'feature,' what's the easiest way for me to work around this?
Much appreciated,
-- Travis
(SBCL 0.8.15 / Slime CVS / GNU Emacs 21.3.1 / Gentoo)
* though interestingly, when I use other test macros, it is evident that turning off lisp-prefix-match-indentation does have some effect. The macro (defmacro deftest (x y z) ...) will be indented: (deftest x y z) with lisp-prefix-match-indent on, but (deftest x y z) with the switch off. It seems that with lisp-prefix-match-indentation set to nil, slime/emacs completely ignores &body clues in the definition. If I redefine deftest as: (defmacro deftest (x y &body z) ...) it will still be indented incorrectly (as far as I can tell).