fix eval results clearing
This commit is contained in:
parent
c9f78008e2
commit
c01a55bedd
2 changed files with 89 additions and 12 deletions
|
|
@ -417,3 +417,74 @@ clj꞉user꞉>
|
|||
#object[sci.impl.fns$fun$arity_0__7874 0xa7f89b1 "sci.impl.fns$fun$arity_0__7874@a7f89b1"]>
|
||||
|
||||
clj꞉user꞉>
|
||||
; : java.lang.String cannot be cast to java.util.regex.Pattern user
|
||||
clj꞉user꞉>
|
||||
["(def u 7)" "#'user/u\n\n(defn t []\n (map in" "c (range 8)))"]
|
||||
|
||||
clj꞉user꞉>
|
||||
"[\"(def u 7)\" \"\\n\\n(defn t []\\n (map in\" \"c (range 8)))\"]"
|
||||
|
||||
clj꞉user꞉>
|
||||
["(def u 7)" "#'user/u\n\n(defn t []\n (map in" "c (range 8)))"]
|
||||
|
||||
clj꞉user꞉>
|
||||
"(def u 7) => #'user/u\n\n(defn t []\n (map in => c (range 8)))"
|
||||
|
||||
clj꞉user꞉>
|
||||
["(def u 7)" "#'user/u\n\n(defn t []\n (map in" "c (range 8)))"]
|
||||
|
||||
clj꞉user꞉>
|
||||
("(def u 7)" "#'user/u\n\n(defn t []\n (map in" "c (range 8)))")
|
||||
|
||||
clj꞉user꞉>
|
||||
"#'user/u\n\n(defn t []\n (map in"
|
||||
|
||||
clj꞉user꞉>
|
||||
["(def u 7)" "#'user/u\n\n(defn t []\n (map inc (range 8)))"]
|
||||
|
||||
clj꞉user꞉>
|
||||
("(def u 7)" "#'user/u\n\n(defn t []\n (map inc (range 8)))")
|
||||
|
||||
clj꞉user꞉>
|
||||
"#'user/u\n\n(defn t []\n (map inc (range 8)))"
|
||||
|
||||
clj꞉user꞉>
|
||||
["(def u 7)" "#'user/u\n\n(defn t []\n (map inc (range 8)))"]
|
||||
|
||||
clj꞉user꞉>
|
||||
"[\"(def u 7)\" \"\\n\\n(defn t []\\n (map inc (range 8)))\"]"
|
||||
|
||||
clj꞉user꞉>
|
||||
["(def u 7)" "#'user/u\n\n(defn t []\n (map inc (range 8)))"]
|
||||
|
||||
clj꞉user꞉>
|
||||
"\n\n(defn t []\n (map inc (range 8)))"
|
||||
|
||||
clj꞉user꞉>
|
||||
" => "
|
||||
|
||||
clj꞉user꞉>
|
||||
"\n\n(defn t []\n (map inc (range 8)))"
|
||||
|
||||
clj꞉user꞉>
|
||||
"[\"(def u 7)\" \"\\n\\n(defn t []\\n (map inc (range 8)))\"]"
|
||||
|
||||
clj꞉user꞉>
|
||||
["(def u 7)" "#'user/u\n\n(defn t []\n (map inc (range 8)))"]
|
||||
|
||||
clj꞉user꞉>
|
||||
["(def u 7)" "#'user/u\n\n(defn t []\n (map inc (range 8)))"]
|
||||
|
||||
clj꞉user꞉>
|
||||
["(def u 7)" "#'user/u\n\n(defn t []\n (map inc (range 8)))"]
|
||||
|
||||
clj꞉user꞉>
|
||||
"\n\n(defn t []\n (map inc (range 8)))"
|
||||
|
||||
clj꞉user꞉>
|
||||
"(def u 7)\n\n(defn t []\n (map inc (range 8)))"
|
||||
|
||||
clj꞉user꞉>
|
||||
"(def u 7)\n\n(defn t []\n (map inc (range 8)))"
|
||||
|
||||
clj꞉user꞉>
|
||||
|
|
|
|||
|
|
@ -61,16 +61,15 @@
|
|||
true)
|
||||
|
||||
(defn clear-eval []
|
||||
(let [code (some-> cm .-state .-doc str)
|
||||
cursor-pos (some-> cm .-state .-selection .-main .-head)
|
||||
result @last-result
|
||||
splits (str/split code #" => ")]
|
||||
(when (not= "" @last-result)
|
||||
(update-editor! (str (first splits) (subs (last splits) (count (str (:result result)))))
|
||||
cursor-pos)
|
||||
(reset! last-result "")
|
||||
(let [code (-> cm
|
||||
(some-> .-state .-doc str)
|
||||
str
|
||||
(str/split #" => ")
|
||||
first
|
||||
(str @eval-tail))
|
||||
cursor-pos (some-> cm .-state .-selection .-main .-head)]
|
||||
(update-editor! code (min cursor-pos (count code))))))
|
||||
(reset! eval-tail ""))))
|
||||
|
||||
(def extension
|
||||
(.of js/cv.keymap
|
||||
|
|
@ -85,7 +84,10 @@
|
|||
{:key "ArrowRight" :run clear-eval}])))
|
||||
|
||||
(def cm
|
||||
(let [doc "(map inc (range 8))"]
|
||||
(let [doc "(def n 7)
|
||||
|
||||
(defn t []
|
||||
(map inc (range n)))"]
|
||||
(js/cm.EditorView. #js {:doc doc
|
||||
:extensions #js [js/cm.basicSetup, (js/lc.clojure), (.highest js/cs.Prec extension)]
|
||||
:parent (js/document.querySelector "#app")})))
|
||||
|
|
@ -94,6 +96,8 @@
|
|||
|
||||
;; what is top-level, anyway?
|
||||
|
||||
(def u 7)
|
||||
|
||||
(defn t []
|
||||
(map inc (range 8)))
|
||||
|
||||
|
|
@ -107,3 +111,5 @@
|
|||
|
||||
;; pretty simple, actually.
|
||||
;; the contents of the cell are a series of forms.
|
||||
;; evaluate the last one!
|
||||
;; that is, before the cursor
|
||||
Loading…
Add table
Add a link
Reference in a new issue