File tree Expand file tree Collapse file tree
test/unit/formatting_stack Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44 [formatting-stack.formatters.how-to-ns]
55 [formatting-stack.protocols.formatter :as formatter]
66 [formatting-stack.protocols.linter :as linter]
7- [formatting-stack.util :refer [ensure-sequential process-in-parallel! try-require]]
7+ [formatting-stack.util :refer [ensure-sequential process-in-parallel! try-require unlimited-pr-str ]]
88 [formatting-stack.util.diff :as diff :refer [diff->line-numbers]]
99 [formatting-stack.util.ns :as util.ns :refer [write-ns-replacement!]]
1010 [medley.core :refer [deep-merge]]
1919 :original-ns-form original-ns-form
2020 :namespaces-that-should-never-cleaned namespaces-that-should-never-cleaned
2121 :libspec-whitelist libspec-whitelist})
22- pr-str)))
22+ unlimited- pr-str)))
2323
2424(def default-libspecs
2525 [" specs" " imports" " exports" " extensions" " side-effects" " init" " initialization" " load" " migration" " migrations" ])
Original file line number Diff line number Diff line change 77 [clojure.tools.namespace.parse :as parse]
88 [formatting-stack.indent-specs]
99 [formatting-stack.project-parsing :refer [project-namespaces]]
10- [formatting-stack.util :refer [dissoc-by rcomp require-lock]]
10+ [formatting-stack.util :refer [dissoc-by rcomp require-lock unlimited-pr-str ]]
1111 [nedap.speced.def :as speced]))
1212
1313(def ^:dynamic *cache* nil )
9999 (swap! result
100100 #(-> %
101101 (dissoc-by (fn [x] ; ; regexes can't be compared, hence this contraption
102- (not= (pr-str x)
103- (pr-str #"^def" ))))
102+ (not= (unlimited- pr-str x)
103+ (unlimited- pr-str #"^def" ))))
104104 (assoc #"^def(?!ault)(?!late)(?!er)" [[:inner 0 ]])))
105105 ; ; :refer awareness:
106106 (doseq [[sym var-ref] ns-mappings
Original file line number Diff line number Diff line change 99 [formatting-stack.formatters.how-to-ns]
1010 [formatting-stack.protocols.formatter :as formatter]
1111 [formatting-stack.protocols.linter :as linter]
12- [formatting-stack.util :refer [ensure-coll ensure-sequential process-in-parallel! rcomp read-ns-decl]]
12+ [formatting-stack.util :refer [ensure-coll ensure-sequential process-in-parallel! rcomp read-ns-decl unlimited-pr-str ]]
1313 [formatting-stack.util.diff :as diff :refer [diff->line-numbers]]
1414 [formatting-stack.util.ns :as util.ns :refer [replace-ns-form! write-ns-replacement!]]
1515 [medley.core :refer [deep-merge]]
136136 replacement)))
137137
138138(speced/defn ^{::speced/spec (complement #{" nil" })} duplicate-cleaner [ns-form]
139- (some-> ns-form remove-exact-duplicates pr-str))
139+ (some-> ns-form remove-exact-duplicates unlimited- pr-str))
140140
141141(defn replaceable-ns-form
142142 [how-to-ns-opts filename]
Original file line number Diff line number Diff line change 167167 [pred coll]
168168 (let [switch (reductions not= true (map pred coll (rest coll)))]
169169 (map (partial map first) (partition-by second (map list coll switch)))))
170+
171+ (defn unlimited-pr-str
172+ " #'clojure.core/pr-str with no print limits"
173+ [s]
174+ (binding [*print-length* nil
175+ *print-level* nil ]
176+ (pr-str s)))
Original file line number Diff line number Diff line change 113113
114114 " (ns foo (:require #?(:clj foo :cljs bar) [#?(:clj foo :cljs bar)]))"
115115 nil ))
116+
117+ (deftest duplicate-cleaner
118+ (let [input '(ns foo
119+ (:require
120+ [a :refer [a]]
121+ [a :refer [a]]
122+ [b :refer [b]]))
123+ expected " (ns foo (:require [a :refer [a]] [b :refer [b]]))" ]
124+
125+ ; ; override user settings
126+ (binding [*print-length* nil
127+ *print-level* nil ]
128+ (is (= expected (sut/duplicate-cleaner input)))
129+
130+ (testing " not affected by *print-length*"
131+ (binding [*print-length* 1 ]
132+ (is (= expected (sut/duplicate-cleaner input)))))
133+
134+ (testing " not affected by *print-level*"
135+ (binding [*print-level* 1 ]
136+ (is (= expected (sut/duplicate-cleaner input))))))))
Original file line number Diff line number Diff line change 6262 #(< 2 (- %2 %1 ))
6363 '(1 2 3 8 9 10 )
6464 '((1 2 3 ) (8 9 10 ))))
65+
66+ (deftest unlimited-pr-str
67+ (let [input [1 2 [3 4 [5 6 ]]]
68+ expected " [1 2 [3 4 [5 6]]]" ]
69+ ; ; override user settings
70+ (binding [*print-length* nil
71+ *print-level* nil ]
72+ (is (= expected (sut/unlimited-pr-str input)))
73+
74+ (testing " not affected by *print-length*"
75+ (binding [*print-length* 1 ]
76+ (is (= expected (sut/unlimited-pr-str input)))))
77+
78+ (testing " not affected by *print-level*"
79+ (binding [*print-level* 1 ]
80+ (is (= expected (sut/unlimited-pr-str input))))))))
You can’t perform that action at this time.
0 commit comments