Skip to content

Commit 691fc2c

Browse files
arichiardibbatsov
authored andcommitted
Move transform-value from the orchard to cider-nrepl
The transform-value function is moved here to cider-nrepl, where it belongs, as it seems to be mainly related to presentation only.
1 parent e2a57db commit 691fc2c

File tree

9 files changed

+68
-23
lines changed

9 files changed

+68
-23
lines changed

src/cider/nrepl/middleware/clojuredocs.clj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
(ns cider.nrepl.middleware.clojuredocs
22
(:require
3+
[cider.nrepl.middleware.util :as util]
34
[cider.nrepl.middleware.util.error-handling :refer [with-safe-transport]]
4-
[orchard.clojuredocs :as docs]
5-
[orchard.misc :as misc]))
5+
[orchard.clojuredocs :as docs]))
66

77
(defn- clojuredocs-lookup-reply [{:keys [export-edn-url ns symbol]}]
88
(if-let [doc (if export-edn-url
99
(docs/find-doc ns symbol export-edn-url)
1010
(docs/find-doc ns symbol))]
11-
{:clojuredocs (misc/transform-value doc)}
11+
{:clojuredocs (util/transform-value doc)}
1212
{:status :no-document}))
1313

1414
(defn clojuredocs-refresh-cache-reply [{:keys [export-edn-url]}]

src/cider/nrepl/middleware/debug.clj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
(:require
55
[cider.nrepl.middleware.inspect :refer [swap-inspector!]]
66
[cider.nrepl.middleware.stacktrace :as stacktrace]
7+
[cider.nrepl.middleware.util :as util]
78
[cider.nrepl.middleware.util.cljs :as cljs]
89
[cider.nrepl.middleware.util.instrument :as ins]
910
[cider.nrepl.middleware.util.nrepl :refer [notify-client]]
@@ -14,8 +15,7 @@
1415
[nrepl.transport :as transport]
1516
[orchard.info :as info]
1617
[orchard.inspect :as inspect]
17-
[orchard.meta :as m]
18-
[orchard.misc :as misc])
18+
[orchard.meta :as m])
1919
(:import
2020
[clojure.lang Compiler$LocalBinding]))
2121

@@ -396,7 +396,7 @@ this map (identified by a key), and will `dissoc` it afterwards."}
396396
[v]
397397
(when-not (::instrumented (meta v))
398398
(when-let [{:keys [ns file form] :as var-meta} (m/var-code v)]
399-
(let [full-path (misc/transform-value (:file (info/file-info file)))]
399+
(let [full-path (util/transform-value (:file (info/file-info file)))]
400400
(binding [*ns* (find-ns ns)
401401
*file* file
402402
*msg* (-> *msg*
@@ -634,7 +634,7 @@ this map (identified by a key), and will `dissoc` it afterwards."}
634634
(->> (all-ns)
635635
(map #(cons (ns-name %) (ins/list-instrumented-defs %)))
636636
(filter second)
637-
misc/transform-value
637+
(util/transform-value)
638638
(response-for msg :status :done :list)
639639
(transport/send (:transport msg))))
640640

src/cider/nrepl/middleware/info.clj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
(ns cider.nrepl.middleware.info
22
(:require
3+
[cider.nrepl.middleware.util :as util]
34
[cider.nrepl.middleware.util.cljs :as cljs]
45
[cider.nrepl.middleware.util.error-handling :refer [with-safe-transport]]
56
[clojure.java.io :as io]
@@ -44,7 +45,7 @@
4445
(info/javadoc-info path)))
4546
format-nested
4647
blacklist
47-
u/transform-value))))
48+
util/transform-value))))
4849

4950
(defn info
5051
[{:keys [ns symbol class member] :as msg}]

src/cider/nrepl/middleware/ns.clj

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
(ns cider.nrepl.middleware.ns
22
(:refer-clojure :exclude [ns-aliases])
33
(:require
4+
[cider.nrepl.middleware.util :as util]
45
[cider.nrepl.middleware.util.cljs :as cljs]
56
[cider.nrepl.middleware.util.coerce :as util.coerce]
67
[cider.nrepl.middleware.util.error-handling :refer [with-safe-transport]]
78
[cider.nrepl.middleware.util.meta :as um]
8-
[orchard.info :as info]
99
[orchard.cljs.analysis :as cljs-analysis]
10+
[orchard.info :as info]
1011
[orchard.misc :as u]
1112
[orchard.namespace :as ns]
1213
[orchard.query :as query]))
@@ -107,15 +108,15 @@
107108

108109
(defn- ns-aliases-clj [ns]
109110
(->> (symbol ns)
110-
clojure.core/ns-aliases
111+
(clojure.core/ns-aliases)
111112
(u/update-vals ns-name)
112-
u/transform-value))
113+
(util/transform-value)))
113114

114115
(defn- ns-aliases-cljs [env ns]
115116
(->> (cljs-analysis/ns-aliases env ns)
116117
(remove (fn [[k v]] (= k v)))
117118
(into {})
118-
u/transform-value))
119+
(util/transform-value)))
119120

120121
(defn ns-aliases [{:keys [ns] :as msg}]
121122
(if-let [cljs-env (cljs/grab-cljs-env msg)]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
(ns cider.nrepl.middleware.resource
22
(:require
3+
[cider.nrepl.middleware.util :as util]
34
[cider.nrepl.middleware.util.error-handling :refer [with-safe-transport]]
4-
[orchard.misc :as u]
55
[orchard.resource :as resource]))
66

77
(defn handle-resource [handler msg]
88
(with-safe-transport handler msg
99
"resource" {:resource-path (resource/resource-path (:name msg))}
10-
"resources-list" {:resources-list (u/transform-value (resource/resource-maps))}))
10+
"resources-list" {:resources-list (util/transform-value (resource/resource-maps))}))

src/cider/nrepl/middleware/stacktrace.clj

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"Cause and stacktrace analysis for exceptions"
33
{:author "Jeff Valk"}
44
(:require
5+
[cider.nrepl.middleware.util :as util]
56
[clojure.repl :as repl]
67
[clojure.set :as set]
78
[clojure.string :as str]
@@ -58,7 +59,7 @@
5859
(str "." (last (.split ^String (:file frame)
5960
"\\.")))
6061
path->url
61-
u/transform-value))
62+
util/transform-value))
6263

6364
(defn analyze-fn
6465
"Add namespace, fn, and var to the frame map when the source is a Clojure
@@ -78,14 +79,14 @@
7879
:file-url (or (some-> (info/info* {:ns 'user :sym (symbol ns fn)})
7980
:file
8081
path->url
81-
u/transform-value)
82-
(u/transform-value (frame->url frame)))))
82+
util/transform-value)
83+
(util/transform-value (frame->url frame)))))
8384
(assoc frame :file-url (some->
8485
(java/resolve-symbol 'user
8586
(symbol (:name frame)))
8687
:file
8788
path->url
88-
u/transform-value))))
89+
util/transform-value))))
8990

9091
(defn analyze-file
9192
"Associate the file type (extension) of the source file to the frame map, and
@@ -207,7 +208,7 @@
207208
:file (:clojure.error/source location)
208209
:file-url (some-> (:clojure.error/source location)
209210
path->url
210-
u/transform-value)
211+
util/transform-value)
211212
:path (relative-path (:clojure.error/source location))
212213
:line (:clojure.error/line location)
213214
:column (:clojure.error/column location))
@@ -218,7 +219,7 @@
218219
:file file
219220
:file-url (some-> file
220221
path->url
221-
u/transform-value)
222+
util/transform-value)
222223
:path (relative-path file)
223224
:line (Integer/parseInt line)
224225
:column (Integer/parseInt column))))

src/cider/nrepl/middleware/test.clj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
(:require
55
[cider.nrepl.middleware.stacktrace :as st]
66
[cider.nrepl.middleware.test.extensions :as extensions]
7+
[cider.nrepl.middleware.util :as util]
78
[cider.nrepl.middleware.util.coerce :as util.coerce]
89
[clojure.pprint :as pp]
910
[clojure.test :as test]
@@ -283,7 +284,7 @@
283284
test-var-query
284285
stringify-msg)]
285286
(reset! results (:results report))
286-
(t/send transport (response-for msg (u/transform-value report))))
287+
(t/send transport (response-for msg (util/transform-value report))))
287288
(catch clojure.lang.ExceptionInfo e
288289
(let [d (ex-data e)]
289290
(if (::util.coerce/id d)
@@ -323,7 +324,7 @@
323324
{} @results)
324325
report (test-nss nss)]
325326
(reset! results (:results report))
326-
(t/send transport (response-for msg (u/transform-value report))))))
327+
(t/send transport (response-for msg (util/transform-value report))))))
327328
(fn []
328329
(t/send transport (response-for msg :status :done))))))
329330

src/cider/nrepl/middleware/track_state.clj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"State tracker for client sessions."
33
{:author "Artur Malabarba"}
44
(:require
5+
[cider.nrepl.middleware.util :as util]
56
[cider.nrepl.middleware.util.cljs :as cljs]
67
[cider.nrepl.middleware.util.meta :as um]
78
[cljs-tooling.util.analysis :as cljs-ana]
@@ -209,7 +210,7 @@
209210
(try (->> (response-for
210211
msg :status :state
211212
:repl-type (if cljs :cljs :clj)
212-
:changed-namespaces (u/transform-value changed-ns-map))
213+
:changed-namespaces (util/transform-value changed-ns-map))
213214
(transport-send-fn (:transport msg)))
214215
;; We run async, so the connection might have been closed in
215216
;; the mean time.

src/cider/nrepl/middleware/util.clj

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
(ns cider.nrepl.middleware.util
2+
(:require
3+
[clojure.java.io :as io]
4+
[clojure.string :as str]))
5+
6+
(defmulti transform-value "Transform a value for output" type)
7+
8+
(defmethod transform-value :default [v] (str v))
9+
10+
(defmethod transform-value Number [v] v)
11+
12+
(defmethod transform-value nil [v] nil)
13+
14+
(defmethod transform-value java.io.File
15+
[v]
16+
(.getAbsolutePath ^java.io.File v))
17+
18+
(defmethod transform-value clojure.lang.Sequential
19+
[v]
20+
(list* (map transform-value v)))
21+
22+
(defmethod transform-value clojure.lang.Symbol
23+
[v]
24+
(let [[the-ns the-name] [(namespace v) (name v)]]
25+
(if the-ns
26+
(str the-ns "/" the-name)
27+
the-name)))
28+
29+
(defmethod transform-value clojure.lang.Keyword
30+
[v]
31+
(transform-value (.sym ^clojure.lang.Keyword v)))
32+
33+
(defmethod transform-value clojure.lang.Associative
34+
[m]
35+
(->> (for [[k v] m] ; bencode keys must be strings
36+
[(str (transform-value k)) (transform-value v)])
37+
(into {})))
38+
39+
;; handles vectors
40+
(prefer-method transform-value clojure.lang.Sequential clojure.lang.Associative)

0 commit comments

Comments
 (0)