Skip to content

Commit af47f61

Browse files
committed
Got namespace definition lookup working for Clojure
1 parent da805b5 commit af47f61

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

src/clojure.rs

+16-9
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,23 @@ pub fn bootstrap() -> String {
4040
pub fn definition(name: &str) -> String {
4141
format!(
4242
"
43-
(update
44-
(mapv (meta #'{}) [:file :line :column])
45-
0
46-
#?(:cljs identity
47-
:clj #(-> (clojure.java.io/resource %)
48-
(str)
49-
(clojure.string/replace #\"^jar:file\" \"zipfile\")
50-
(clojure.string/replace #\"\\.jar!/\" \".jar::\"))))
43+
(when-let [loc (if-let [sym (resolve '{})]
44+
(mapv (meta sym) [:file :line :column])
45+
(when-let [syms #?(:cljs (ns-interns '{})
46+
:clj (some-> (find-ns '{}) ns-interns))]
47+
[(:file (meta (-> syms first second))) 1 1]))]
48+
(-> loc
49+
(update
50+
0
51+
#?(:cljs identity
52+
:clj #(-> (clojure.java.io/resource %)
53+
(str)
54+
(clojure.string/replace #\"^jar:file\" \"zipfile\")
55+
(clojure.string/replace #\"\\.jar!/\" \".jar::\"))))
56+
(update 2 dec)))
5157
",
52-
name)
58+
name, name, name
59+
)
5360
}
5461

5562
pub fn eval(code: &str, ns: &str, lang: &Lang) -> String {

0 commit comments

Comments
 (0)