Most Clojure developers using Emacs tend to use Cider. Cider needs the Clojure instance to be running
nRepl, but Planck doesn't support that. Planck does instead implement the new Socket REPL capability, but Cider doesn't know how to interact with that.
Luckily for us, Rich Hickey thinks Cider is too complex, so Bozhidar Batsov went ahead and created inf-clojure.
To set up
inf-clojure to run with Planck, you can follow the instructions here and add
(setq inf-clojure-program "planck")
.emacs file, given
planck is on your path. I would be careful doing
if you use Cider for your other Clojure work, and rather invoke
(add-hook 'clojure-mode-hook #'inf-clojure-minor-mode)
M-x inf-clojure-minor-modewhen you're working with Planck.
You can now evaluate code directly from your source-code buffer by pressing
C-x C-e after the form you want to execute.
It is possible to integrate Cursive with Planck using Planck's Socket REPL capability. To do this, set up a conventional ClojureScript project using, say Leiningen. Then add Tubular as a dependency to the project via
With this in place, first start up Planck in a regular terminal specifying the
src directory of your project as Planck's
-c classpath directive and use
-n to have Planck listen on a port for Socket REPL sessions. For example:
$ planck -c src -n 7777
Within Cursive, add a REPL to the project and choose “Use clojure.main in normal JVM process”. Start up the REPL, and issue
(require 'tubular.core) (tubular.core/connect 7777)
This will piggyback a Socket REPL session in the Cursive Clojure REPL, and you will see the
cljs.user=> prompt from Planck. Use the pulldown to switch Cursive's REPL type fro
cljs, and you should be good to go. In particular you can use Cursive's REPL menu option to load files into Planck, sync namespaces, and send forms to the Plank REPL.