Ivan Toshkov writes:
I vote for it. I'd like to have some way to tell emacs how to indent the macro from the macro definition. Don't know if this is possible and probably it won't be portable but one can dream, right?
Generally, I think putting meta info in comments is a poor practice, and am sure in Common Lisp there are better ways, but currently I can think of two alternatives:
Put the meta info in a property.
Use something like:
#+slime-indent (slime-set-macro-indentation 'macro 'info)
I don't know the SLIME internals, so I guess I'm missing an easier and better way to do this.
Normally, in emacs this is done with local variables. Put at the end of your source a comment like:
;; Local Variables: ;; eval: (put 'comment-with-narrowing 'lisp-indent-function 2) ;; End:
(with any number of eval: lines and any emacs lisp expression).
Usually, in my Common-Lisp code I rather use my own cl-indent function that puts the property to both the low-case and the up-case version of the symbol (since emacs is case sensitive and Common-Lisp code can appear in either case):
;; Local Variables: ;; eval: (cl-indent 'while 1) ;; eval: (cl-indent 'until 1) ;; End:
But this is not enought to get a pretty indentation. As you can see from my patch to lisp-indent-function, you need to be slighly more intelligent to heuristically correctly indent sexps.