diff --git a/resources/public/dev.html b/resources/public/dev.html
new file mode 100644
index 0000000..a16a0b5
--- /dev/null
+++ b/resources/public/dev.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+ Scittle
+ What is this?
+
+
diff --git a/shadow-cljs.edn b/shadow-cljs.edn
index ff3946c..fe96550 100644
--- a/shadow-cljs.edn
+++ b/shadow-cljs.edn
@@ -14,6 +14,8 @@
:global "ReactDOM"}}}
:modules
{:scittle {:entries [scittle.core]}
+ :scittle.nrepl {:entries [scittle.nrepl]
+ :depends-on #{:scittle}}
:scittle.reagent {:entries [scittle.reagent]
:depends-on #{:scittle}}
:scittle.cljs-ajax {:entries [scittle.cljs-ajax]
diff --git a/src/scittle/core.cljs b/src/scittle/core.cljs
index 8afbaec..12c3afa 100644
--- a/src/scittle/core.cljs
+++ b/src/scittle/core.cljs
@@ -1,11 +1,9 @@
(ns scittle.core
(:refer-clojure :exclude [time])
(:require [cljs.reader :refer [read-string]]
- [clojure.edn :as edn]
[goog.object :as gobject]
[goog.string]
[sci.core :as sci]
- [sci.nrepl.completions :refer [completions]]
[scittle.impl.common :refer [cljns]]
[scittle.impl.error :as error]))
@@ -106,37 +104,3 @@
(enable-console-print!)
(sci/alter-var-root sci/print-fn (constantly *print-fn*))
-(defn nrepl-websocket []
- (.-ws_nrepl js/window))
-
-(defn nrepl-reply [{:keys [id session]} payload]
- (.send (nrepl-websocket)
- (str (assoc payload :id id :session session :ns (str @!last-ns)))))
-
-(defn handle-nrepl-eval [{:keys [code] :as msg}]
- (let [[kind val] (try [::success (eval-string code)]
- (catch :default e
- [::error (str e)]))]
- (case kind
- ::success
- (do (nrepl-reply msg {:value (pr-str val)})
- (nrepl-reply msg {:status ["done"]}))
- ::error
- (do
- (nrepl-reply msg {:err (pr-str val)})
- (nrepl-reply msg {:ex (pr-str val)
- :status ["error" "done"]})))))
-
-(defn handle-nrepl-message [msg]
- (case (:op msg)
- :eval (handle-nrepl-eval msg)
- :complete (nrepl-reply msg (completions (assoc msg :ctx @!sci-ctx)))))
-
-(defn ^:export init-nrepl []
- (let [ws (nrepl-websocket)]
- (set! (.-onmessage ws)
- (fn [event]
- (handle-nrepl-message (edn/read-string (.-data event)))))
- (set! (.-onerror ws)
- (fn [event]
- (js/console.log event)))))
diff --git a/src/scittle/nrepl.cljs b/src/scittle/nrepl.cljs
new file mode 100644
index 0000000..a0aa38a
--- /dev/null
+++ b/src/scittle/nrepl.cljs
@@ -0,0 +1,40 @@
+(ns scittle.nrepl
+ (:require
+ [clojure.edn :as edn]
+ [sci.nrepl.completions :refer [completions]]
+ [scittle.core :refer [!last-ns eval-string !sci-ctx]]))
+
+(defn nrepl-websocket []
+ (.-ws_nrepl js/window))
+
+(defn nrepl-reply [{:keys [id session]} payload]
+ (.send (nrepl-websocket)
+ (str (assoc payload :id id :session session :ns (str @!last-ns)))))
+
+(defn handle-nrepl-eval [{:keys [code] :as msg}]
+ (let [[kind val] (try [::success (eval-string code)]
+ (catch :default e
+ [::error (str e)]))]
+ (case kind
+ ::success
+ (do (nrepl-reply msg {:value (pr-str val)})
+ (nrepl-reply msg {:status ["done"]}))
+ ::error
+ (do
+ (nrepl-reply msg {:err (pr-str val)})
+ (nrepl-reply msg {:ex (pr-str val)
+ :status ["error" "done"]})))))
+
+(defn handle-nrepl-message [msg]
+ (case (:op msg)
+ :eval (handle-nrepl-eval msg)
+ :complete (nrepl-reply msg (completions (assoc msg :ctx @!sci-ctx)))))
+
+(defn ^:export init-nrepl []
+ (let [ws (nrepl-websocket)]
+ (set! (.-onmessage ws)
+ (fn [event]
+ (handle-nrepl-message (edn/read-string (.-data event)))))
+ (set! (.-onerror ws)
+ (fn [event]
+ (js/console.log event)))))