File tree Expand file tree Collapse file tree 5 files changed +369
-351
lines changed Expand file tree Collapse file tree 5 files changed +369
-351
lines changed Original file line number Diff line number Diff line change 5
5
< link rel ="icon " type ="image/svg+xml " href ="/lang-clojure-eval/assets/vite-4a748afd.svg " />
6
6
< meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
7
7
< title > Vite App</ title >
8
- < script type ="module " crossorigin src ="/lang-clojure-eval/assets/index-13c5f3bf .js "> </ script >
8
+ < script type ="module " crossorigin src ="/lang-clojure-eval/assets/index-a562dec2 .js "> </ script >
9
9
< link rel ="stylesheet " href ="/lang-clojure-eval/assets/index-dcab846b.css ">
10
10
</ head >
11
11
< body >
Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " lang-clojure-eval" ,
3
- "version" : " 0.0.21 " ,
3
+ "version" : " 0.0.22 " ,
4
4
"author" :
" Bobbi Towers <[email protected] >" ,
5
5
"description" : " Lezer-based Clojure Codemirror 6 extension with live evaluation" ,
6
6
"main" : " dist/index.cjs" ,
Original file line number Diff line number Diff line change 26
26
'lang-clojure-eval.integer
27
27
{'parseInt int/parse-int}}}))
28
28
29
+ (defn reqs [req-form]
30
+ (let [first-req (z/down req-form)]
31
+ (loop [z first-req result []]
32
+ (if-not (z/right z)
33
+ result
34
+ (recur (z/right z)
35
+ (conj result (z/sexpr (z/right z))))))))
36
+
29
37
(defn current-ns [source]
30
38
(z/sexpr (z/next (z/find-next-value (z/of-string source) z/next 'ns))))
31
39
40
+ (def last-req (atom " " ))
41
+
32
42
(defn eval-string [source]
33
- (let [reqs (str " (ns " (or (current-ns source) " lang-clojure-eval" )
34
- " (:require [lang-clojure-eval.character :as Character]
35
- [lang-clojure-eval.integer :as Integer]))
43
+ (let [ns-name (z/next (z/find-next-value (z/of-string source) z/next 'ns))
44
+ req-form (z/right ns-name)
45
+ reqs (str " (ns " (or (current-ns source) " lang-clojure-eval" )
46
+ " \n (:require [lang-clojure-eval.character :as Character]
47
+ [lang-clojure-eval.integer :as Integer] "
48
+ (apply str (interpose " \n " (reqs req-form))) " ))
36
49
(defn int [x]
37
50
(if (.isInteger js/Number (js/parseInt x))
38
51
(js/parseInt x)
39
52
(.charCodeAt x 0)))" )]
53
+ (when (or req-form
54
+ (and ns-name (nil? req-form))) (reset! last-req reqs))
40
55
(try (binding [*print-length* 100 ]
41
- (with-out-str (pprint/pprint (sci/eval-string* context (str reqs source)))))
56
+ (with-out-str (pprint/pprint (sci/eval-string* context (str @last-req source)))))
42
57
(catch :default e
43
58
(with-out-str (error-handler source e))))))
You can’t perform that action at this time.
0 commit comments