|
219 | 219 | (count) |
220 | 220 | (dec))) |
221 | 221 |
|
| 222 | +(defn- meta? [zloc] |
| 223 | + (#{:meta :meta*} (z/tag zloc))) |
| 224 | + |
222 | 225 | (defn- skip-meta [zloc] |
223 | | - (if (#{:meta :meta*} (z/tag zloc)) |
| 226 | + (if (meta? zloc) |
224 | 227 | (-> zloc z/down z/right) |
225 | 228 | zloc)) |
226 | 229 |
|
|
829 | 832 |
|
830 | 833 | #?(:clj |
831 | 834 | (defn- refer-zloc->refer-mapping [refer-zloc] |
832 | | - (let [refer-vec (some-> refer-zloc z/right z/sexpr) |
833 | | - current-ns (some-> refer-zloc leftmost-symbol z/sexpr) |
834 | | - grandparent-node (some-> refer-zloc z/up z/up) |
835 | | - parent-ns (ns-require-form-parent grandparent-node)] |
836 | | - (when (and (vector? refer-vec) (symbol? current-ns)) |
| 835 | + (let [refers (some-> refer-zloc |
| 836 | + (z/find-next (comp skip-meta z/right) |
| 837 | + (some-fn z/vector? z/list?)) |
| 838 | + z/sexpr) |
| 839 | + current-ns (some-> refer-zloc leftmost-symbol z/sexpr) |
| 840 | + grandparent-node (some-> refer-zloc |
| 841 | + (z/find-next z/up (complement meta?)) |
| 842 | + (z/find-next z/up (complement meta?))) |
| 843 | + parent-ns (ns-require-form-parent grandparent-node)] |
| 844 | + (when (and (sequential? refers) (symbol? current-ns)) |
837 | 845 | (let [ns-str (join-ns-str parent-ns current-ns)] |
838 | | - (->> refer-vec (map (fn [sym] [(str sym) ns-str])) (into {}))))))) |
| 846 | + (->> refers (map (fn [sym] [(str sym) ns-str])) (into {}))))))) |
839 | 847 |
|
840 | 848 | #?(:clj (defn- refer-map-for-form [form] |
841 | 849 | (when-let [req-zloc (-> form z/of-node (z/find z/next ns-require-form?))] |
|
845 | 853 |
|
846 | 854 | #?(:clj |
847 | 855 | (defn- as-zloc->alias-mapping [as-zloc] |
848 | | - (let [alias (some-> as-zloc z/right z/sexpr) |
849 | | - current-ns (some-> as-zloc leftmost-symbol z/sexpr) |
850 | | - grandparent-node (some-> as-zloc z/up z/up) |
851 | | - parent-ns (ns-require-form-parent grandparent-node)] |
| 856 | + (let [alias (some-> as-zloc |
| 857 | + (z/find-next (comp skip-meta z/right) |
| 858 | + symbol-node?) |
| 859 | + z/sexpr) |
| 860 | + current-ns (some-> as-zloc leftmost-symbol z/sexpr) |
| 861 | + grandparent-node (some-> as-zloc |
| 862 | + (z/find-next z/up (complement meta?)) |
| 863 | + (z/find-next z/up (complement meta?))) |
| 864 | + parent-ns (ns-require-form-parent grandparent-node)] |
852 | 865 | (when (and (symbol? alias) (symbol? current-ns)) |
853 | 866 | {(str alias) (join-ns-str parent-ns current-ns)})))) |
854 | 867 |
|
|
0 commit comments