Skip to content

Commit 2295c2c

Browse files
expezbbatsov
authored andcommitted
Change default to no prefix re-writing
The default has already been changed in clj-refactor so this is essentially a no-op, but makes the change more explicit for those working on the middleware.
1 parent 5d4ff16 commit 2295c2c

File tree

4 files changed

+60
-25
lines changed

4 files changed

+60
-25
lines changed

src/refactor_nrepl/config.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
:prune-ns-form true
1414

1515
;; Should `clean-ns` favor prefix forms in the ns macro?
16-
:prefix-rewriting true
16+
:prefix-rewriting false
1717

1818
;; Should `pprint-ns` place a newline after the `:require` and `:import` tokens?
1919
:insert-newline-after-require true

test/refactor_nrepl/ns/clean_ns_test.clj

+28-17
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,18 @@
5757
(def ns-with-npm-strs-clean (clean-msg "test/resources/ns_with_npm_strs_clean.cljs"))
5858

5959
(deftest combines-requires
60-
(let [requires (core/get-ns-component (clean-ns ns2) :require)
60+
(let [prefix-requires (config/with-config {:prefix-rewriting true}
61+
(core/get-ns-component (clean-ns ns2) :require))
6162
combined-requires (core/get-ns-component ns2-cleaned :require)]
62-
(is (= combined-requires requires))))
63+
(is (= combined-requires prefix-requires))))
6364

6465
(deftest meta-preserved
6566
(let [cleaned (pprint-ns (clean-ns ns2-meta))]
6667
(is (str/includes? cleaned "^{:author \"Trurl and Klapaucius\"
6768
:doc \"test ns with meta\"}"))))
6869

6970
(deftest rewrites-use-to-require
70-
(let [requires (core/get-ns-component (clean-ns ns2) :use)
71-
combined-requires (core/get-ns-component ns2-cleaned :require)]
71+
(let [combined-requires (core/get-ns-component ns2-cleaned :require)]
7272
(is (reduce
7373
#(or %1 (= %2 '[clojure
7474
[edn :refer :all :rename {read-string rs}]
@@ -80,15 +80,16 @@
8080
(tree-seq sequential? identity combined-requires)))))
8181

8282
(deftest keeps-clause-with-rename
83-
(let [requires (core/get-ns-component (clean-ns ns2) :use)
84-
combined-requires (core/get-ns-component ns2-cleaned :require)]
83+
(let [combined-requires (core/get-ns-component ns2-cleaned :require)]
8584
(is (reduce
8685
#(or %1 (= %2 '[edn :refer :all :rename {read-string rs}]))
8786
false
8887
(tree-seq sequential? identity combined-requires)))))
8988

9089
(deftest test-sort-and-prefix-favoring
91-
(let [requires (core/get-ns-component (clean-ns ns1) :require)
90+
(let [requires (core/get-ns-component
91+
(config/with-config {:prefix-rewriting true}
92+
(clean-ns ns1)) :require)
9293
imports (core/get-ns-component (clean-ns ns1) :import)
9394
sorted-requires (core/get-ns-component ns1-cleaned :require)
9495
sorted-imports (core/get-ns-component ns1-cleaned :import)]
@@ -127,13 +128,18 @@
127128
false
128129
(tree-seq sequential? identity requires)))))
129130

130-
(deftest combines-multiple-refers-to-all
131-
(let [requires (clean-ns ns2)
132-
instant '[instant :refer :all]]
133-
(is (reduce
134-
#(or %1 (= %2 instant))
135-
false
136-
(tree-seq sequential? identity requires)))))
131+
(deftest combines-multiple-refer-alls
132+
(let [[_ & libspecs] (core/get-ns-component (clean-ns ns2) :require)
133+
instant '[clojure.instant :refer :all]]
134+
(is (= (:count (reduce
135+
(fn [acc libspec]
136+
(if (= libspec instant)
137+
(update acc :count inc)
138+
acc))
139+
{:count 0}
140+
libspecs))
141+
1)
142+
"Exactly one libspec present for duplicated :refer :all clause")))
137143

138144
(deftest removes-unused-dependencies
139145
(let [new-ns (clean-ns ns-with-unused-deps)
@@ -196,7 +202,8 @@
196202
cljc-ns-same-clj-cljs-cleaned)))
197203

198204
(deftest respects-no-prune-option
199-
(config/with-config {:prune-ns-form false}
205+
(config/with-config {:prune-ns-form false
206+
:prefix-rewriting true}
200207
(let [new-require (core/get-ns-component (clean-ns ns3) :require)
201208
expected-require (core/get-ns-component ns3-rebuilt :require)]
202209
(is (= expected-require new-require)))))
@@ -206,8 +213,12 @@
206213

207214
(deftest test-pprint
208215
(let [ns-str (pprint-ns (clean-ns ns1))
209-
ns1-str (slurp (.getAbsolutePath (File. "test/resources/ns1_cleaned_and_pprinted")))]
210-
(is (= ns1-str ns-str))))
216+
ns1-str (slurp "test/resources/ns1_cleaned_and_pprinted")
217+
ns1-prefix-notation (slurp "test/resources/ns1_cleaned_and_pprinted_prefix_notation")]
218+
(is (= ns1-str ns-str))
219+
(is (= ns1-prefix-notation (config/with-config
220+
{:prefix-rewriting true}
221+
(pprint-ns (clean-ns ns1)))))))
211222

212223
(deftest preserves-shorthand-meta
213224
(let [cleaned (pprint-ns (clean-ns ns-with-shorthand-meta))]

test/resources/ns1_cleaned_and_pprinted

+9-7
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@
99
:extends java.lang.Exception
1010
:methods [[binomial [int int] double]])
1111
(:require
12-
[clojure data edn xml
13-
[instant :as inst :reload true]
14-
[pprint :refer [cl-format formatter get-pretty-writer]]
15-
[string :refer :all :reload-all true]
16-
[test :refer :all]
17-
[walk :refer [postwalk prewalk]]]
18-
clojure.test.junit)
12+
clojure.data
13+
clojure.edn
14+
[clojure.instant :as inst :reload true]
15+
[clojure.pprint :refer [cl-format formatter get-pretty-writer]]
16+
[clojure.string :refer :all :reload-all true]
17+
[clojure.test :refer :all]
18+
clojure.test.junit
19+
[clojure.walk :refer [postwalk prewalk]]
20+
clojure.xml)
1921
(:import
2022
[java.io Closeable FilenameFilter PushbackReader]
2123
[java.util Calendar Date Random]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
(ns resources.ns1
2+
"This is a docstring for the ns
3+
4+
It contains an \"escaped string\"."
5+
{:author "Winnie the pooh"}
6+
(:refer-clojure :exclude [macroexpand-1 read read-string])
7+
(:gen-class
8+
:name com.domain.tiny
9+
:extends java.lang.Exception
10+
:methods [[binomial [int int] double]])
11+
(:require
12+
[clojure data edn xml
13+
[instant :as inst :reload true]
14+
[pprint :refer [cl-format formatter get-pretty-writer]]
15+
[string :refer :all :reload-all true]
16+
[test :refer :all]
17+
[walk :refer [postwalk prewalk]]]
18+
clojure.test.junit)
19+
(:import
20+
[java.io Closeable FilenameFilter PushbackReader]
21+
[java.util Calendar Date Random]
22+
[refactor.nrepl SomeClass$InnerClass$InnerInnerClassOne SomeClass$InnerClass$InnerInnerClassTwo]))

0 commit comments

Comments
 (0)