views:

2527

answers:

6

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).

So, 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

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

Thanks in advance.

+4  A: 

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

dsm
Yes, of course I've seen Slime48. However, (a) it works only with Scheme48, (b) only with an older version of Scheme 48. You've got a point, though, I should have mentioned my Scheme implementations of choice in the question (I've edited it appropriately).
Ryszard Szopa
+6  A: 

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

Luís Oliveira
+4  A: 

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.

jfm3
+4  A: 

You also might consider Scheme Complete:

http://www.emacswiki.org/cgi-bin/wiki/SchemeComplete

It basically provides tab-completion.

Hungryhugo
+4  A: 

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.

Kyle Burton
+3  A: 

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

Alex Ott