Peter Seibel peter@javamonkey.com writes:
And more. I guess I hadn't loaded the definitions that time (though I thought I had). So I restarted emacs and SLIME *and* slime-compile'd the files containing the macros and I was back to uses of once-only indenting correctly while uses of with-gensyms are incorrectly indented. Sorry for all the confusion--i.e. welcome to my world.
I knew it. Changing the indentation is problematic.
This is caused by the new cl-indent.el file. The modified indent function disables the "with-*" thing by default, so with-gensyms is indented like a function call. If you load the macro definition, Lisp will tell Emacs that once-only and with-gensyms are macros and how to indent them. You probably have slime-conservative-indentation=t, so that SLIME ignores the indent hint for with-gensyms. Setting it to nil should help here.
We still have the problem that the macro definition must be loaded on the Lisp side before it is indented correctly. Perhaps the "with-*" heuristic wasn't that bad after all.
Helmut.