[slime-devel] Re: First Impressions

Luke Gorrie luke at bluetail.com
Fri Jul 16 21:48:20 UTC 2004


iain.little at gmail.com writes:

> I like to put testing sexprs in the files that I am working on (I put
> them in all in a #| |# commented region so that I can evaluate them
> when I want, but they don't evaluate when I compile/load the file).

[...]

> The problem is, slime puts the output in the minibuffer.

The interactive-eval family of of commands (C-x C-e, C-c M-:, etc)
will now output to the REPL if you give them a prefix argument, so
e.g. C-u C-x C-e.

Without a prefix they now print their results via `slime-message'
rather than `message', meaning they can use a temporary buffer or a
typeout frame for multi-line results.

> I also noticed a couple of indentation issues: (ok, I admit it; I went
> out of my way to see how slime would indent different things ;-) )

[...]

> Which - as advertised - actually does the right thing (ilisp most
> certainly doesn't). But,
>
> CL> (with-accessors ((a b)) c
> 		    ...)

Usually we exclude with-* and def* from indentation-learning because
Emacs already does their indentation specially. Still, Emacs doesn't
always get it right, so now you can customize
`slime-conservative-indentation' to turn that off.

> CL> (defgeneric test2 (a)
>       (:method-combination progn))
> #<Standard-Generic-Function TEST2 (0) {48B3C389}>
> CL> (defmethod test2 progn ((object a))
> 	       ...)

I'll leave this one to someone who understands CLOS :-)

> The only other thing is that the &body indentation doesn't work in the
> lisp buffers created by opening a file.  But I suspect that is because
> I still have ilisp installed, and it is clobbering whatever slime
> does.

I'd avoid loading ILISP because it binds a bunch of keys directly in
lisp-mode, so once loaded it's "there". I'm not sure if this has any
side-effects beyond just introducing non-SLIME keys in lisp buffers.

This indentation problem is most likely because lisp-mode isn't
configured to use common-lisp indentation style. There's now an easy
way to do this from ~/.emacs: (slime-setup). That configures
lisp-mode-hook to enable slime-mode and to use common-lisp
indentation. You can instead use (slime-setup :autodoc t) to also
enable the autodoc mode.

> Anyway, I hope this helps.

Yeah. It's very helpful to mention the "little things" since if it's
bothering you then it's probably bothering a bunch of other people
too.

-Luke





More information about the slime-devel mailing list