Skip to content

Commit a4e582d

Browse files
authored
Fix require bug
Fix require bug
2 parents 81e1d1a + 267ade4 commit a4e582d

File tree

5 files changed

+369
-351
lines changed

5 files changed

+369
-351
lines changed

dist/assets/index-13c5f3bf.js renamed to dist/assets/index-a562dec2.js

Lines changed: 308 additions & 306 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<link rel="icon" type="image/svg+xml" href="/lang-clojure-eval/assets/vite-4a748afd.svg" />
66
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
77
<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>
99
<link rel="stylesheet" href="/lang-clojure-eval/assets/index-dcab846b.css">
1010
</head>
1111
<body>

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "lang-clojure-eval",
3-
"version": "0.0.21",
3+
"version": "0.0.22",
44
"author": "Bobbi Towers <[email protected]>",
55
"description": "Lezer-based Clojure Codemirror 6 extension with live evaluation",
66
"main": "dist/index.cjs",

src/lang_clojure_eval/main.cljs

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,33 @@
2626
'lang-clojure-eval.integer
2727
{'parseInt int/parse-int}}}))
2828

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+
2937
(defn current-ns [source]
3038
(z/sexpr (z/next (z/find-next-value (z/of-string source) z/next 'ns))))
3139

40+
(def last-req (atom ""))
41+
3242
(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))) "))
3649
(defn int [x]
3750
(if (.isInteger js/Number (js/parseInt x))
3851
(js/parseInt x)
3952
(.charCodeAt x 0)))")]
53+
(when (or req-form
54+
(and ns-name (nil? req-form))) (reset! last-req reqs))
4055
(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)))))
4257
(catch :default e
4358
(with-out-str (error-handler source e))))))

0 commit comments

Comments
 (0)