File tree Expand file tree Collapse file tree 6 files changed +41
-750
lines changed Expand file tree Collapse file tree 6 files changed +41
-750
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change 66
66
(.delete (io/file cache-file-name))
67
67
(reset! cache {}))
68
68
69
+ (defn get-doc
70
+ " Get data for `var-name`.
71
+ If `export-edn-url` is omitted, `default-edn-file-url` is used."
72
+ {:added " 0.5.0" }
73
+ ([var-name]
74
+ (get-doc var-name default-edn-file-url ))
75
+ ([var-name export-edn-url]
76
+ (load-cache! export-edn-url)
77
+ (get @cache (keyword var-name))))
78
+
69
79
(defn find-doc
70
- " Find a document matching to ns-name and var-name from cached documents.
80
+ " Find a document matching `ns` and `sym` from cached documents.
71
81
Cache will be updated when there are no cached documents or cached documents are old.
72
82
73
83
If `export-edn-url` is omitted, `default-edn-file-url` is used.
74
84
75
85
Return nil if there is no matching document."
76
86
{:added " 0.5.0" }
77
- ([ns-name var-name]
78
- (find-doc ns-name var-name default-edn-file-url ))
79
- ([ns-name var-name export-edn-url]
80
- (load-cache! export-edn-url)
81
- (get @cache (keyword ns-name var-name))))
87
+ ([ns sym]
88
+ (find-doc ns sym default-edn-file-url ))
89
+ ([ns sym export-edn-url]
90
+ (get-doc (keyword ns sym) export-edn-url)))
Original file line number Diff line number Diff line change 140
140
(some->> (cljs-meta/scoped-macro-meta env sym 'cljs.core)
141
141
(cljs-meta/normalize-macro-meta )))))
142
142
143
- (def see-also-data
144
- (edn/read-string (slurp (io/resource " see-also.edn" ))))
145
-
146
- (defn see-also*
147
- [{:keys [dialect unqualified-sym] :as m}]
148
- (when-not (= :cljs dialect)
149
- (some->> unqualified-sym
150
- (str )
151
- (symbol " clojure.core" )
152
- (str )
153
- (get see-also-data)
154
- (mapv symbol)
155
- (filter resolve))))
156
-
157
- (def ^{:doc " Augment the map with see-also information. We have to use the
158
- resolved (real) namespace and name here" }
159
- see-also (memoize see-also*))
160
-
161
143
(defn info*
162
144
" Provide the info map for the input ns and sym.
163
145
@@ -176,9 +158,6 @@ resolved (real) namespace and name here"}
176
158
(some->
177
159
meta
178
160
179
- (merge (when-let [m (see-also params)]
180
- {:see-also m}))
181
-
182
161
(merge (when-let [file-path (:file meta)]
183
162
{:file (cond-> file-path
184
163
(misc/boot-project? ) cp/classpath-file-relative-path)})))))
Original file line number Diff line number Diff line change 5
5
[clojure.pprint :as pprint]
6
6
[clojure.string :as str]
7
7
[clojure.walk :as walk]
8
+ [orchard.clojuredocs :as cljdocs]
8
9
[orchard.namespace :as ns ]
9
10
[orchard.misc :as misc]
10
11
[orchard.spec :as spec]
69
70
(assoc :file (some-> (ns/canonical-source ns ) .getPath)))
70
71
meta-map))
71
72
73
+ (defn- maybe-add-see-also
74
+ " If the var `v` has a see-also has associated with it, assoc that into meta-map."
75
+ [v meta-map]
76
+ (if-let [see-also (:see-alsos (cljdocs/get-doc (var-name v)))]
77
+ (merge meta-map {:see-also see-also})
78
+ meta-map))
79
+
72
80
(defn- maybe-protocol
73
81
[info]
74
82
(if-let [prot-meta (meta (:protocol info))]
82
90
nil ))
83
91
84
92
(defn resolve-var
93
+ " Resolve `ns` and `sym` to a var.
94
+ The function is a simple wrapper around `clojure.core/ns-resolve`."
85
95
[ns sym]
86
96
{:pre [(symbol? ns ) (symbol? sym)]}
87
97
(if-let [ns (find-ns ns )]
94
104
nil ))))
95
105
96
106
(defn resolve-aliases
107
+ " Retrieve the ns aliases for `ns`.
108
+ The function is a simple wrapper around `clojure.core/ns-alias`."
97
109
[ns ]
98
110
{:pre [(symbol? ns )]}
99
111
(when-let [ns (find-ns ns )]
159
171
maybe-add-file
160
172
maybe-add-url
161
173
(update :ns ns-name))]
162
- (maybe-add-spec v meta-map)))))
174
+ (maybe-add-spec v meta-map)
175
+ (maybe-add-see-also v meta-map)))))
163
176
164
177
(defn meta+
165
178
" Return special form or var's meta."
Original file line number Diff line number Diff line change 390
390
; ;;;;;;;;;;;;;;;;;
391
391
392
392
(deftest see-also-test
393
- (let [expected '(clojure.core/map-indexed
394
- clojure.core/pmap
395
- clojure.core/amap
396
- clojure.core/mapcat
397
- clojure.core/keep
398
- clojure.core/juxt
399
- clojure.core/mapv
400
- clojure.core/reduce
401
- clojure.core/run!)]
402
-
403
- (testing " unit test of info/see-also"
404
- (is (= expected (-> '{:ns orchard.test-ns :sym map}
405
- info/normalize-params
406
- info/see-also))))
393
+ (let [expected [:clojure.core/map-indexed
394
+ :clojure.core/pmap
395
+ :clojure.core/amap
396
+ :clojure.core/mapcat
397
+ :clojure.core/keep
398
+ :clojure.core/juxt
399
+ :clojure.core/mapv
400
+ :clojure.core/reduce
401
+ :clojure.core/run! ]]
407
402
408
403
(testing " info/see-also through info/info* in a required namespace"
409
404
(is (= expected (-> '{:ns orchard.test-ns :sym map}
410
405
info/info*
411
- :see-also )))))
412
-
413
- (testing " info/see-also does not support ClojureScript"
414
- (is (nil? (:see-also (info/info* '{:ns cljs.core :sym map :dialect :cljs :env {}}))))))
406
+ :see-also ))))))
415
407
416
408
(deftest info-jvm-test
417
409
(is (info/info* {:ns 'orchard.info :sym 'java.lang.Class}))
Original file line number Diff line number Diff line change 1
1
(ns orchard.java.resource-test
2
2
(:require
3
- [clojure.string :as str]
4
3
[clojure.test :refer [deftest is testing]]
5
4
[orchard.java.resource :as resource]))
6
5
9
8
10
9
(deftest project-resources-test
11
10
(testing " get the correct resources for the orchard project"
12
- (let [resources (->> (resource/project-resources )
13
- (remove #(str/ends-with? (.getAbsolutePath (:root %)) " test-resources" )))]
14
- (is (= " see-also.edn" (-> resources first :relpath )))
11
+ (let [resources (resource/project-resources )]
12
+ (is (= " clojuredocs/export.edn" (-> resources first :relpath )))
15
13
(is (= java.net.URL (-> resources first :url class))))))
You can’t perform that action at this time.
0 commit comments