Question

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.

Was it helpful?

Solution

You also might consider Scheme Complete:

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

It basically provides tab-completion.

OTHER TIPS

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

Geiser provides an excellent environment for Scheme. The latest version now also can interact with Chez Scheme, Chibi Scheme, Chicken Scheme as well as that old standby MIT Scheme, in addition to Guile and Racket. I would suggest installing it via Melpa, specially in order to get the latest version handling the much wider selection of REPLs.

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.

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

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

You can use Chicken Scheme with slime by using swank-chicken.

I'd suggest taking a look at geiser mode, but it only supports Racket and Guile right now which I don't see on your list.

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top