Luke Gorrie writes:
I'm thinking in particular of all the buffer-movement, narrow-to-X and reindentation commands, for a start.
Which the buffer-movement commands do you mean?
I think you're right, after doing a bit more investigation. The first one I hit which really annoyed me was M-q which did not reindent the top level form properly (in SLIME). So I looked in ILISP, and M-q was bound to REINDENT-LISP, which is some gawd-awful complicated function which calls a gazillion other complicated functions to do its work.
Then I noticed the emacs provided indent-sexp. :-)
so I guess reindent-defun could be trivially written as [save excursion [goto start of defun] [indent-sexp]] and be bound to M-q.
I too would rather import "as little as possible"; the smaller the codebase, the better. Maximize the number of lines of code not written, is what I always say.
Lastly, I notice slime doesn't rebind lisp-indent-function to be common-lisp-indent-function; is that on design? I imagine SLIME is essentially only used with common lisp, is it not?
And my current initialization file is full of crud like this: (put 'setq 'common-lisp-indent-function '(2 6)) (put 'setf 'common-lisp-indent-function '(2 6)) (put 'unwind-protect 'common-lisp-indent-function '(2 &body)) ;; etc
to get common lisp indentation coming out "standard". Should all this stuff be part of SLIME?