I have a nasty habit of writing macros with multiple keyword clauses in them--like this:
(deffoo foo (stuff) (:bar (a b) (cons a b)) (:zot (a b c) (fii a b c)) (:default 42) (:error (crap)))
which of course tend to indent terribly
(deffoo foo (stuff) (:bar (a b) (cons a b)) (:zot (a b c) (fii a b c)) (:default 42) (:error (crap)))
I've occasionally added special indentation rules for these things in .emacs, but that's no fun at all. I've also sometimes used non-keyword symbols and added global definitions which tell slime how to indent things:
(defmacro bar (lambda-list &body body) (error "oops, not in DEFFOO"))
None of these is really satisfactory: hacking .emacs means users of a library that has macros with this style don't get the correct indentation in Slime out of the box. Using non-keyword symbols makes the code harder to read. (Keywords make it obvious that those are clauses or options of some sort.)
Can someone suggest something better?
Cheers,
-- Nikodemus