[slime-devel] def* indent

Travis Cross travis at crosswirecorp.com
Mon Dec 20 23:21:38 UTC 2004


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




More information about the slime-devel mailing list