Trying to use org mode with clojure. I'd like to use cider as the REPL server. Things is fine if I have only one statement in org source block. If I have more than one, then I got exception.
for example #+name: basic-clojure #+begin_src clojure (defn greeting "Returns a greeting of the form 'Hello, username.'" [username] (str "Hello, " username)) #+end_src will be fine. But #+name: basic-clojure #+begin_src clojure (defn greeting "Returns a greeting of the form 'Hello, username.'" [username] (str "Hello, " username)) *(greeting "Tom")* #+end_src will throw exception: java.lang.ClassCastException: java.lang.String cannot be cast to java.io.Writer column_writer.clj:78 clojure.pprint/column-writer[fn] (Unknown Source) clojure.pprint.proxy$java.io.Writer$IDeref$db53459f.write (Unknown Source) sun.reflect.GeneratedMethodAccessor9.invoke DelegatingMethodAccessorImpl.java:25 sun.reflect.DelegatingMethodAccessorImpl.invoke Method.java:597 java.lang.reflect.Method.invoke Reflector.java:93 clojure.lang.Reflector.invokeMatchingMethod Reflector.java:28 clojure.lang.Reflector.invokeInstanceMethod pretty_writer.clj:443 clojure.pprint/start-block[fn] AFn.java:18 clojure.lang.AFn.call LockingTransaction.java:263 clojure.lang.LockingTransaction.run LockingTransaction.java:231 clojure.lang.LockingTransaction.runInTransaction pretty_writer.clj:433 clojure.pprint/start-block Var.java:427 clojure.lang.Var.invoke dispatch.clj:130 clojure.pprint/pprint-ideref[fn] dispatch.clj:130 clojure.pprint/pprint-ideref MultiFn.java:227 clojure.lang.MultiFn.invoke pprint_base.clj:194 clojure.pprint/write-out pprint_base.clj:250 clojure.pprint/pprint[fn] pprint_base.clj:248 clojure.pprint/pprint NO_SOURCE_FILE:5 user/eval611 Compiler.java:6619 clojure.lang.Compiler.eval Compiler.java:6582 clojure.lang.Compiler.eval core.clj:2852 clojure.core/eval main.clj:259 clojure.main/repl[fn] main.clj:259 clojure.main/repl[fn] main.clj:277 clojure.main/repl[fn] main.clj:277 clojure.main/repl RestFn.java:1096 clojure.lang.RestFn.invoke interruptible_eval.clj:56 clojure.tools.nrepl.middleware.interruptible-eval/evaluate[fn] AFn.java:159 clojure.lang.AFn.applyToHelper AFn.java:151 clojure.lang.AFn.applyTo core.clj:617 clojure.core/apply core.clj:1788 clojure.core/with-bindings* RestFn.java:425 clojure.lang.RestFn.invoke interruptible_eval.clj:41 clojure.tools.nrepl.middleware.interruptible-eval/evaluate interruptible_eval.clj:171 clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval[fn] core.clj:2330 clojure.core/comp[fn] interruptible_eval.clj:138 clojure.tools.nrepl.middleware.interruptible-eval/run-next[fn] AFn.java:24 clojure.lang.AFn.run ThreadPoolExecutor.java:886 java.util.concurrent.ThreadPoolExecutor$Worker.runTask ThreadPoolExecutor.java:908 java.util.concurrent.ThreadPoolExecutor$Worker.run Thread.java:662 java.lang.Thread.run Digging into ob-clojure.el and I was able to reproduce it in Emacs as: (defvar expanded "") (setq expanded "(clojure.pprint/pprint (defn greeting \"Returns a greeting of the form 'Hello, username.'\" [username] (str \"Hello, \" username)) (greeting \"Tom\"))") (nrepl-send-string-sync expanded (cider-current-ns) (nrepl-current-tooling-session)) Any suggestions on fixing this or it is by design ob-clojure only evaluate one statement? Thanks. -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.