Commit ebe962a 1 parent c3249f8 commit ebe962a Copy full SHA for ebe962a
File tree 3 files changed +18
-1
lines changed
src/cider/nrepl/middleware
test/clj/cider/nrepl/middleware
3 files changed +18
-1
lines changed Original file line number Diff line number Diff line change 5
5
### Bugs fixed
6
6
7
7
* [ #719 ] ( https://github.com/clojure-emacs/cider-nrepl/issues/719 ) : ` middleware.test ` : gracefully handle exceptions thrown within fixtures.
8
+ * [ #722 ] ( https://github.com/clojure-emacs/cider-nrepl/issues/722 ) : ` middleware.format ` : print otherwise non-serializable objects as strings.
8
9
9
10
## 0.27.2 (2021-10-03)
10
11
Original file line number Diff line number Diff line change 40
40
(let [reader (readers/string-push-back-reader s)
41
41
sentinel (Object. )]
42
42
(loop [forms []]
43
- (let [form (edn/read {:eof sentinel} reader)]
43
+ (let [form (edn/read {:eof sentinel
44
+ :default (fn [_tag value]
45
+ (pr-str value))}
46
+ reader)]
44
47
(if (= sentinel form)
45
48
forms
46
49
(recur (conj forms form)))))))
Original file line number Diff line number Diff line change 113
113
(is (= formatted-edn-sample formatted-edn))
114
114
(is (= #{" done" } status))))
115
115
116
+ ; ; See: https://github.com/clojure-emacs/cider-nrepl/issues/722
117
+ (testing " Objects of classes without an associated data-reader function are converted to strings via `pr-str`"
118
+ (let [{:keys [formatted-edn status]
119
+ :as response} (session/message {:op " format-edn"
120
+ :edn (pr-str [1 2 (Object. ) 3 4 ])})
121
+ [a b ^String c d e] (read-string formatted-edn)]
122
+ (testing (pr-str response)
123
+ (is (= [1 2 3 4 ]
124
+ [a b d e]))
125
+ (is (string? c))
126
+ (is (.contains c " java.lang.Object@" ))
127
+ (is (= #{" done" } status)))))
128
+
116
129
(testing " format-edn works for multiple forms"
117
130
(let [{:keys [formatted-edn status]} (session/message {:op " format-edn"
118
131
:edn ugly-edn-forms-sample})]
You can’t perform that action at this time.
0 commit comments