
I've added a tentative implementation of indentation styles to slime-indentation on my Github tree: https://github.com/nikodemus/Slime/tree/slime-indentation With this, you can do ;; -*- common-lisp-style: stylename -*- which will then set the indentation specs and buffer-local variables specified for that style in common-lisp-style-alist. (Or you can do M-x set-common-lisp-style as well, of course.) The big deal is that with this you can have eg. IF ident with 2 spaces in one file, and with 4 in another -- as fits the project style. Without this I need to have multiple emacses started with different command-line options which is a huge pain -- and I expect I'm not the only one. Here's a sample style: (push '("eccentric" (variables (lisp-lambda-list-keyword-alignment t) (lisp-lambda-list-keyword-parameter-alignment t) (lisp-loop-indent-subclauses nil) (lisp-loop-indent-forms-like-keywords t)) (indentation (if (4 2 2)))) common-lisp-style-alist) Things I'd like to sort out before proposing this for Slime CVS: - tests - support for inheriting styles - define-common-lisp-style so we're not married to the alist spec - get someone with more emacs-fu to review this ...the last in particular I would appreciate help with. I've no idea if the things I'm doing with buffer-local variables are kosher or not. In particular, I feel a bit icky about (add-hook 'lisp-mode-hook (lambda () (hack-local-variables))) which I needed to do because (lisp-mode) kills all local variables. Cheers, -- nikodemus