Skip to content

Commit 39ca5fe

Browse files
committed
less ctx
1 parent 1c5a26d commit 39ca5fe

File tree

1 file changed

+33
-16
lines changed

1 file changed

+33
-16
lines changed

src/sci/impl/namespaces.cljc

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -462,13 +462,17 @@
462462
(defn clean-ns [m]
463463
(dissoc m :aliases :imports :obj :refer :refers))
464464

465-
(defn sci-ns-interns [ctx sci-ns]
465+
(defn sci-ns-interns* [ctx sci-ns]
466466
(let [name (sci-ns-name ctx sci-ns)
467467
m (get-in @(:env ctx) [:namespaces name])
468468
m (clean-ns m)]
469469
m))
470470

471-
(defn sci-ns-publics [ctx sci-ns]
471+
(defn sci-ns-interns [sci-ns]
472+
(let [ctx (store/get-ctx)]
473+
(sci-ns-interns* ctx sci-ns)))
474+
475+
(defn sci-ns-publics* [ctx sci-ns]
472476
(let [name (sci-ns-name ctx sci-ns)
473477
m (get-in @(:env ctx) [:namespaces name])
474478
m (clean-ns m)]
@@ -477,7 +481,11 @@
477481
[k v]))
478482
m))))
479483

480-
(defn sci-ns-imports [ctx sci-ns]
484+
(defn sci-ns-publics [sci-ns]
485+
(let [ctx (store/get-ctx)]
486+
(sci-ns-publics* ctx sci-ns)))
487+
488+
(defn sci-ns-imports* [ctx sci-ns]
481489
(let [name (sci-ns-name ctx sci-ns)
482490
env @(:env ctx)
483491
global-imports (:imports env)
@@ -487,18 +495,27 @@
487495
all-imports (concat (vals global-imports) (vals namespace-imports))]
488496
(zipmap all-aliased (map (comp :class #(get class-opts %)) all-imports))))
489497

490-
(defn sci-ns-refers [ctx sci-ns]
498+
(defn sci-ns-imports [sci-ns]
499+
(let [ctx (store/get-ctx)]
500+
(sci-ns-imports* ctx sci-ns)))
501+
502+
(defn sci-ns-refers* [ctx sci-ns]
491503
(let [name (sci-ns-name ctx sci-ns)
492504
env @(:env ctx)
493505
refers (get-in env [:namespaces name :refers])
494506
clojure-core (get-in env [:namespaces 'clojure.core])
495507
clojure-core (clean-ns clojure-core)]
496508
(merge clojure-core refers)))
497509

498-
(defn sci-ns-map [ctx sci-ns]
499-
(merge (sci-ns-interns ctx sci-ns)
500-
(sci-ns-refers ctx sci-ns)
501-
(sci-ns-imports ctx sci-ns)))
510+
(defn sci-ns-refers [sci-ns]
511+
(let [ctx (store/get-ctx)]
512+
(sci-ns-refers* ctx sci-ns)))
513+
514+
(defn sci-ns-map [sci-ns]
515+
(let [ctx (store/get-ctx)]
516+
(merge (sci-ns-interns* ctx sci-ns)
517+
(sci-ns-refers* ctx sci-ns)
518+
(sci-ns-imports* ctx sci-ns))))
502519

503520
(defn sci-ns-unmap [ctx sci-ns sym]
504521
(assert (symbol? sym)) ; protects :aliases, :imports, :obj, etc.
@@ -1489,11 +1506,11 @@
14891506
'next (copy-core-var next)
14901507
'nnext (copy-core-var nnext)
14911508
'ns-aliases (copy-var sci-ns-aliases clojure-core-ns {:name 'ns-aliases})
1492-
'ns-imports (copy-var sci-ns-imports clojure-core-ns {:ctx true :name 'ns-imports})
1493-
'ns-interns (copy-var sci-ns-interns clojure-core-ns {:ctx true :name 'ns-interns})
1494-
'ns-publics (copy-var sci-ns-publics clojure-core-ns {:ctx true :name 'ns-publics})
1495-
'ns-refers (copy-var sci-ns-refers clojure-core-ns {:ctx true :name 'ns-refers})
1496-
'ns-map (copy-var sci-ns-map clojure-core-ns {:name 'ns-map :ctx true})
1509+
'ns-imports (copy-var sci-ns-imports clojure-core-ns {:name 'ns-imports})
1510+
'ns-interns (copy-var sci-ns-interns clojure-core-ns {:name 'ns-interns})
1511+
'ns-publics (copy-var sci-ns-publics clojure-core-ns {:name 'ns-publics})
1512+
'ns-refers (copy-var sci-ns-refers clojure-core-ns {:name 'ns-refers})
1513+
'ns-map (copy-var sci-ns-map clojure-core-ns {:name 'ns-map})
14971514
'ns-unmap (copy-var sci-ns-unmap clojure-core-ns {:ctx true :name 'ns-unmap})
14981515
'ns-unalias (copy-var sci-ns-unalias clojure-core-ns {:ctx true :name 'ns-unalias})
14991516
'ns-name (copy-var sci-ns-name clojure-core-ns {:name 'ns-name :ctx true})
@@ -1719,7 +1736,7 @@
17191736
(let [current-ns (sci.impl.utils/current-ns-name)
17201737
the-ns (sci-the-ns ctx
17211738
(get (sci-ns-aliases* ctx current-ns) ns ns))]
1722-
(sort (map first (sci-ns-publics ctx the-ns)))))
1739+
(sort (map first (sci-ns-publics* ctx the-ns)))))
17231740

17241741
(defn dir
17251742
[_ _ nsname]
@@ -1754,7 +1771,7 @@
17541771
[ctx re-string-or-pattern]
17551772
(let [re (re-pattern re-string-or-pattern)
17561773
ans (sci-all-ns)
1757-
ms (concat (mapcat #(sort-by :name (map meta (vals (sci-ns-interns ctx %))))
1774+
ms (concat (mapcat #(sort-by :name (map meta (vals (sci-ns-interns* ctx %))))
17581775
ans)
17591776
(map #(assoc (meta %)
17601777
:name (types/getName %)) ans)
@@ -1776,7 +1793,7 @@
17761793
(sort (mapcat (fn [ns]
17771794
(let [ns-name (str ns)]
17781795
(map #(symbol ns-name (str %))
1779-
(filter matches? (keys (sci-ns-publics ctx ns))))))
1796+
(filter matches? (keys (sci-ns-publics* ctx ns))))))
17801797
(sci-all-ns)))))
17811798

17821799
#_(defn source-fn

0 commit comments

Comments
 (0)