Skip to content

Instantly share code, notes, and snippets.

@devn
Created May 3, 2010 00:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save devn/387593 to your computer and use it in GitHub Desktop.
Save devn/387593 to your computer and use it in GitHub Desktop.
(defn format-code
[& codes]
(apply str (map
(fn [code]
(if (string? code)
(with-out-str
(pprint
(read
(java.io.PushbackReader.
(java.io.StringReader. code)))))))
codes)))
(format-code "(let [x 1 y 2 z 3 k 4] (let [x 2 y 3] (let [j 55] (if (k 4) (if (y 1) (if (x 1) (println \"foo\") (println y)))))))")
In the SLIME REPL:
=> "(let\n [x 1 y 2 z 3 k 4]\n (let\n [x 2 y 3]\n (let\n [j 55]\n (if (k 4) (if (y 1) (if (x 1) (println \"foo\") (println y)))))))\n"
lein swank, on the other hand:
=> 2010-05-02 19:33:13.430::WARN: EXCEPTION
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.Exception: Unreadable form
at clojure.lang.LazySeq.sval(LazySeq.java:47)
at clojure.lang.LazySeq.seq(LazySeq.java:56)
at clojure.lang.Cons.next(Cons.java:37)
at clojure.lang.RT.next(RT.java:570)
at clojure.core$next__4229.invoke(core.clj:52)
at clojure.core$str__4331$fn__4335.invoke(core.clj:367)
at clojure.core$str__4331.doInvoke(core.clj:369)
at clojure.lang.RestFn.applyTo(RestFn.java:144)
at clojure.core$apply__4370.invoke(core.clj:436)
at hiccup.core$render_html__2621.invoke(core.clj:115)
at clojure.lang.Var.invoke(Var.java:359)
at walton.layout$application__4484.invoke(layout.clj:59)
at walton.core$walton_html__4755.invoke(core.clj:211)
at walton.core$fn__4773$fn__4780$fn__4785.invoke(core.clj:233)
at walton.core$fn__4773$fn__4780.invoke(core.clj:232)
at walton.core$fn__4773.invoke(core.clj:232)
at ring.middleware.file$wrap_file__4302$fn__4304.invoke(file.clj:28)
at clojure.lang.Var.invoke(Var.java:359)
at ring.adapter.jetty$proxy_handler__4406$fn__4408.invoke(jetty.clj:17)
at ring.adapter.jetty.proxy$org.mortbay.jetty.handler.AbstractHandler$0.handle(Unknown Source)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:533)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.Exception: Unreadable form
at clojure.lang.LazySeq.sval(LazySeq.java:47)
at clojure.lang.LazySeq.seq(LazySeq.java:56)
at clojure.lang.RT.seq(RT.java:440)
at clojure.core$seq__4245.invoke(core.clj:105)
at clojure.core$map__5053$fn__5055.invoke(core.clj:1754)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
... 28 more
Caused by: java.lang.RuntimeException: java.lang.Exception: Unreadable form
at clojure.lang.LazySeq.sval(LazySeq.java:47)
at clojure.lang.LazySeq.seq(LazySeq.java:56)
at clojure.lang.RT.seq(RT.java:440)
at clojure.core$seq__4245.invoke(core.clj:105)
at clojure.core$apply__4370.invoke(core.clj:436)
at walton.layout$format_code__5135.doInvoke(NO_SOURCE_FILE:1)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply__4370.invoke(core.clj:436)
at walton.layout$code_STAR___4475.doInvoke(layout.clj:40)
at clojure.lang.RestFn.invoke(RestFn.java:413)
at walton.layout$hide_show__4478.invoke(layout.clj:51)
at walton.core$walton_html__4755$fn__4757.invoke(core.clj:211)
at clojure.core$map__5053$fn__5061.invoke(core.clj:1767)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
... 33 more
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment