Choosing your clojure startup script from Emacs/SLIME

The standard instructions for swank-clojure (the clojure backend to SLIME) imply you always use the same binary and/or classpath for starting your clojure code. The problem with that is that for different projects you generally want to specify at least additional classpaths and possibly even a completely different clojure version.

At the same time, most projects already contain some kind of startup/REPL script, so why not use that? swank-clojure only really needs some code that starts a repl and has the swank-clojure code in its classpath.

Below is my emacs code to do just that. Just put it somewhere in your emacs init scripts, type M-x clojure and select your startup script and away you go. The following is all my clojure-specific code, but the really “interesting” bit is the (defun clojure ...) bit.

Oh, before I forget: the code above does assume that you’re only using SLIME with clojure and not also with other lisps. If you do need that functionality, you can probably figure out how to make it work.