What is the closest thing to Slime for Scheme?

Viewed 14188

I do most of my development in Common Lisp, but there are some moments when I want to switch to Scheme (while reading Lisp in Small Pieces, when I want to play with continuations, or when I want to do some scripting in Gauche, for example). In such situations, my main source of discomfort is that I don't have Slime (yes, you may call me an addict).

What is Scheme's closest counterpart to Slime? Specifically, I am most interested in:

  • Emacs integration (this point is obvious ;))
  • Decent tab completion (ideally, c-w-c-c TAB should expand to call-with-current-continuation). It may be even symbol-table based (ie. it doesn't have to notice a function I defined in a let at once).
  • Function argument hints in the minibuffer (if I have typed (map |) (cursor position is indicated by |)), I'd like to see (map predicate . lists) in the minibuffer
  • Sending forms to the interpreter
  • Integration with a debugger.

I have ordered the features by descending importance.

My Scheme implementations of choice are:

  • MzScheme
  • Ikarus
  • Gauche
  • Bigloo
  • Chicken

It would be great if it worked at least with them.

9 Answers

SLIME's contrib directory seems to have SWANK implementations for MIT Scheme and Kawa.

A commentator has said: "DrScheme IDE has emacs key bindings" and it is a highly regarded IDE with many of the features you explicitly listed.

Additionally, scheme-mode for Emacs provides some of the features from SLIME - the integrated REPL, the ability to send forms to that REPL and to load entire files. As far as I know, there is no equivalent, in general for the scheme's you've listed, for things like connecting to a running image remotely (versus a scheme repl in an Emacs buffer), or the debugger integration.

For my work with mzscheme i usually use cmuscheme + quack, that provide almost what i need during development.

Bigloo comes with very powerful bee-mode.

And for gauche you can use GCA package that provides names completion, display of function's descriptions & inserting of code templates

Update: I published article about Scheme + Emacs integration on my site

Well... I would say Slime for scheme is the closest thing to Slime for Scheme ;)

I haven't used it, but you might try Quack with mzscheme.

SLIME is pretty hard to beat though. There's a lot of niceness going on in the SWANK end of it.

There's now a Slime backend for various Scheme's called r7rs-swank.

Related