aboutsummaryrefslogtreecommitdiff
path: root/clojurescript/repl/repl.cljs
diff options
context:
space:
mode:
authorChouser <chouser@n01se.net>2009-01-12 07:54:16 +0000
committerChouser <chouser@n01se.net>2009-01-12 07:54:16 +0000
commit2b1e44f04489b5d70faff703bf824f07b74432d2 (patch)
tree2bc686386c956028744f7411a4404f59efca9115 /clojurescript/repl/repl.cljs
parent6e53cf73c313d2bf76f5ee3c9a847548665b32e2 (diff)
Rearrange ClojureScript code for AOT compilation and its eventual place in clojure.contrib. Also fix major breaking errors for Clojure SVN 1205, but it's not well tested with this latest version.
Diffstat (limited to 'clojurescript/repl/repl.cljs')
-rw-r--r--clojurescript/repl/repl.cljs91
1 files changed, 0 insertions, 91 deletions
diff --git a/clojurescript/repl/repl.cljs b/clojurescript/repl/repl.cljs
deleted file mode 100644
index ce6eb450..00000000
--- a/clojurescript/repl/repl.cljs
+++ /dev/null
@@ -1,91 +0,0 @@
-(ns jsrepl)
-
-(def append-dom)
-
-(defn dom [o]
- (if (coll? o)
- (let [[tag attrs & body] o]
- (if (keyword? tag)
- (let [elem (.createElement document (name tag))]
- (when (map? attrs)
- (doseq [[k v] attrs]
- (when v (.setAttribute elem (name k) v))))
- [(append-dom elem (if (map? attrs) body (cons attrs body)))])
- (mapcat dom o)))
- (when o
- [(.createTextNode document (str o))])))
-
-(defn append-dom [parent v]
- (doseq [i (dom v)]
- (.appendChild parent i))
- parent)
-
-(def elems)
-(def lastval)
-(def *print-class* nil)
-
-(defn repl-print [text]
- (let [log (:log elems)]
- (doseq [line (.split text #"\n")]
- (append-dom log
- [:div {:class (str "cg "
- (when *print-class*
- (str " " *print-class*)))}
- line]))
- (set! (.scrollTop log) (.scrollHeight log))))
-
-(defn postexpr []
- (append-dom (:log elems)
- [:table
- [:tbody
- [:tr
- [:td {:class "cg"} "user=> "]
- [:td (-> :input elems .value (.replace #"\n$" ""))]]]])
- (set! (-> :scripts elems .innerHTML) "")
- (set! (-> :input elems .value) ""))
-
-(defmacro print-with-class [c m]
- `(binding [*print-class* ~c]
- (println ~m)))
-
-(defn show-state [url]
- (set! (-> :status elems .src) url))
-
-(defn state [status msg]
- (cond
- (= status "incomplete") (show-state "dots.png")
- (= status "done") (prn lastval)
- (= status "error") (do
- (postexpr)
- (show-state "blank.gif")
- (print-with-class "err" msg))
- (= status "compiled") (do
- (postexpr)
- (setTimeout #(show-state "blank.gif") 0))))
-
-(defn err [e]
- (print-with-class "err" e)
- (set! *e e))
-
-(set! *print-length* 103)
-
-(set! (.onload window) (fn []
- ; no refs yet, so just re-def
- (set! elems (into {} (for [n '(log input status scripts)]
- [(keyword n) (.getElementById document (str n))])))
-
- (set! (.print window) repl-print)
-
- (set! (.onkeypress (:input elems))
- (fn [e]
- (let [e (or e event)]
- (when (== (.keyCode e) 13)
- (set! (-> :status elems .src) "clojure-logo-anim-03.gif")
- (append-dom (:scripts elems)
- [:script {:src (str "http://clojurescript.n01se.net:8081/?"
- (-> :input elems .value escape
- (.replace #"\+" "%2b")))}])))))
-
- (println "ClojureScript")
-
- (.focus (:input elems))))