Skip to content

Commit 59f3c9f

Browse files
committed
Added z/of-node, z/of-node*
These are the same as the now deprecated rewrite-clj.zip/edn and rewrite-clj.zip/edn*. Name change is to reflect fn purpose and reduce user confusion. Closes #178
1 parent 27af979 commit 59f3c9f

File tree

12 files changed

+95
-23
lines changed

12 files changed

+95
-23
lines changed

.clj-kondo/config.edn

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,14 @@
5454
rewrite-clj.node.protocols/value
5555
{:namespaces [rewrite-clj.node rewrite-clj.zip.base]}
5656
rewrite-clj.node/value
57-
{:defs [rewrite-clj.zip.base/value]}}}}}
57+
{:defs [rewrite-clj.zip.base/value]}
58+
59+
rewrite-clj.zip/edn
60+
{:namespaces [rewrite-clj.zip-test]}
61+
62+
rewrite-clj.zip/edn*
63+
{:namespaces [;; this is a bb script usage which is using an older version rewrite-clj
64+
;; can update code and remove when bb upgrades to rewrite-clj v1.1
65+
helper.deps-patcher
66+
;; and this is legitimate, we still need to sanity test that the deprecated fn works
67+
rewrite-clj.zip-test]}}}}}

CHANGELOG.adoc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,13 @@ For a list of breaking changes see link:#v1-breaking[breaking changes].
1717
=== Unreleased
1818

1919
* dropped the alpha status
20-
* now properly escaping inline double quotes for coerced strings https://github.com/clj-commons/rewrite-clj/issues/176[#176] - thanks to @ivarref for raising the issue!
2120
* changed rewrite-clj library version scheme from commit-count to release-num https://github.com/clj-commons/rewrite-clj/issues/179[#179]
21+
* renamed zipper creation functions that take a rewrite-clj node as input.
22+
The old names did not reflect their purpose which led to confusion.
23+
Old functions will remain but are marked as deprecated. https://github.com/clj-commons/rewrite-clj/issues/178[#178]
24+
** `rewrite-clj.zip/edn` -> `rewrite-clj.zip/of-node`
25+
** `rewrite-clj.zip/edn*` -> `rewrite-clj.zip/of-node*`
26+
* now properly escaping inline double quotes for coerced strings https://github.com/clj-commons/rewrite-clj/issues/176[#176] - thanks to @ivarref for raising the issue!
2227
* docs:
2328
** docstring fix, was missing `list-node` from toc, thanks @rfhayashi!
2429

deps.edn

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,11 @@
2929
:main-opts ["-m" "eastwood.lint" {:source-paths ["src"]
3030
:test-paths ["test"]
3131
:add-linters [:performance]
32+
;; not too worried about eastwood finding deprecation usages,
33+
;; we rely on clj-kondo for that
3234
:ignored-faults {:deprecations {rewrite-clj.regression-test true
33-
rewrite-clj.zip.whitespace-test true}}}]}
35+
rewrite-clj.zip.whitespace-test true
36+
rewrite-clj.zip-test true}}}]}
3437

3538
;;
3639
;; Test support

src/rewrite_clj/zip.cljc

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,24 +205,36 @@
205205
[zloc] (rewrite-clj.zip.base/child-sexprs zloc))
206206

207207
;; DO NOT EDIT FILE, automatically imported from: rewrite-clj.zip.base
208-
(defn edn*
209-
"Create and return zipper from Clojure/ClojureScript/EDN `node` (likely parsed by [[rewrite-clj.parse]]).
208+
(defn ^{:added "1.1.45"} of-node*
209+
"Create and return zipper from a rewrite-clj `node` (likely parsed by [[rewrite-clj.parse]]).
210210
211211
Optional `opts` can specify:
212212
- `:track-position?` set to `true` to enable ones-based row/column tracking, see [docs on position tracking](/doc/01-user-guide.adoc#position-tracking).
213213
- `:auto-resolve` specify a function to customize namespaced element auto-resolve behavior, see [docs on namespaced elements](/doc/01-user-guide.adoc#namespaced-elements)"
214+
([node] (rewrite-clj.zip.base/of-node* node))
215+
([node opts] (rewrite-clj.zip.base/of-node* node opts)))
216+
217+
;; DO NOT EDIT FILE, automatically imported from: rewrite-clj.zip.base
218+
(defn ^{:deprecated "1.1.45"} edn*
219+
"DEPRECATED. Renamed to [[of-node*]]."
214220
([node] (rewrite-clj.zip.base/edn* node))
215221
([node opts] (rewrite-clj.zip.base/edn* node opts)))
216222

217223
;; DO NOT EDIT FILE, automatically imported from: rewrite-clj.zip.base
218-
(defn edn
219-
"Create and return zipper from Clojure/ClojureScript/EDN `node` (likely parsed by [[rewrite-clj.parse]]),
224+
(defn ^{:added "1.1.45"} of-node
225+
"Create and return zipper from a rewrite-clj `node` (likely parsed by [[rewrite-clj.parser]]),
220226
and move to the first non-whitespace/non-comment child. If node is not forms node, is wrapped in forms node
221227
for a consistent root.
222228
223229
Optional `opts` can specify:
224230
- `:track-position?` set to `true` to enable ones-based row/column tracking, see [docs on position tracking](/doc/01-user-guide.adoc#position-tracking).
225231
- `:auto-resolve` specify a function to customize namespaced element auto-resolve behavior, see [docs on namespaced elements](/doc/01-user-guide.adoc#namespaced-elements)"
232+
([node] (rewrite-clj.zip.base/of-node node))
233+
([node opts] (rewrite-clj.zip.base/of-node node opts)))
234+
235+
;; DO NOT EDIT FILE, automatically imported from: rewrite-clj.zip.base
236+
(defn ^{:deprecated "1.1.45"} edn
237+
"DEPRECATED. Renamed to [[of-node]]."
226238
([node] (rewrite-clj.zip.base/edn node))
227239
([node opts] (rewrite-clj.zip.base/edn node opts)))
228240

src/rewrite_clj/zip/base.cljc

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,37 +11,50 @@
1111

1212
;; ## Zipper
1313

14-
(defn edn*
15-
"Create and return zipper from Clojure/ClojureScript/EDN `node` (likely parsed by [[rewrite-clj.parse]]).
14+
(defn of-node*
15+
"Create and return zipper from a rewrite-clj `node` (likely parsed by [[rewrite-clj.parse]]).
1616
1717
Optional `opts` can specify:
1818
- `:track-position?` set to `true` to enable ones-based row/column tracking, see [docs on position tracking](/doc/01-user-guide.adoc#position-tracking).
1919
- `:auto-resolve` specify a function to customize namespaced element auto-resolve behavior, see [docs on namespaced elements](/doc/01-user-guide.adoc#namespaced-elements)"
2020
([node]
21-
(edn* node {}))
21+
(of-node* node {}))
2222
([node opts]
2323
(-> (if (:track-position? opts)
2424
(zraw/custom-zipper node)
2525
(zraw/zipper node))
2626
(options/set-opts opts))))
2727

28-
(defn edn
29-
"Create and return zipper from Clojure/ClojureScript/EDN `node` (likely parsed by [[rewrite-clj.parse]]),
28+
(defn of-node
29+
"Create and return zipper from a rewrite-clj `node` (likely parsed by [[rewrite-clj.parser]]),
3030
and move to the first non-whitespace/non-comment child. If node is not forms node, is wrapped in forms node
3131
for a consistent root.
3232
3333
Optional `opts` can specify:
3434
- `:track-position?` set to `true` to enable ones-based row/column tracking, see [docs on position tracking](/doc/01-user-guide.adoc#position-tracking).
3535
- `:auto-resolve` specify a function to customize namespaced element auto-resolve behavior, see [docs on namespaced elements](/doc/01-user-guide.adoc#namespaced-elements)"
36-
([node] (edn node {}))
36+
([node] (of-node node {}))
3737
([node opts]
3838
(loop [node node opts opts]
3939
(if (= (node/tag node) :forms)
40-
(let [top (edn* node opts)]
40+
(let [top (of-node* node opts)]
4141
(or (-> top zraw/down ws/skip-whitespace)
4242
top))
4343
(recur (nforms/forms-node [node]) opts)))))
4444

45+
(defn edn*
46+
"DEPRECATED. Renamed to [[of-node*]]."
47+
([node]
48+
(edn* node {}))
49+
([node opts]
50+
(of-node* node opts)))
51+
52+
(defn edn
53+
"DEPRECATED. Renamed to [[of-node]]."
54+
([node] (edn node {}))
55+
([node opts]
56+
(of-node node opts)))
57+
4558
;; ## Inspection
4659

4760
(defn tag

src/rewrite_clj/zip/subedit.cljc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
[zloc path]
3232
(let [root (-> zloc
3333
zraw/root
34-
(base/edn* (options/get-opts zloc)))]
34+
(base/of-node* (options/get-opts zloc)))]
3535
(reduce move-step root path)))
3636

3737
(defn edit-node
@@ -72,7 +72,7 @@
7272
[zloc]
7373
(let [zloc' (some-> zloc
7474
zraw/node
75-
(base/edn* (options/get-opts zloc)))]
75+
(base/of-node* (options/get-opts zloc)))]
7676
(assert zloc' "could not create subzipper.")
7777
zloc'))
7878

template/rewrite_clj/zip.cljc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,10 @@
176176

177177
[rewrite-clj.zip.base
178178
^{:added "0.4.4"} child-sexprs
179-
edn* edn
179+
^{:added "1.1.45"} of-node*
180+
^{:deprecated "1.1.45"} edn*
181+
^{:added "1.1.45"} of-node
182+
^{:deprecated "1.1.45"} edn
180183
tag sexpr sexpr-able?
181184
length
182185
^{:deprecated "0.4.0"} value

test/rewrite_clj/custom_zipper/core_test.cljc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@
163163
(prop/for-all [node (g/node)
164164
operations (gen/vector (gen/elements (keys operations)) 1 8)]
165165
(let [zloc (apply-operations
166-
(base/edn* node {:track-position? true})
166+
(base/of-node* node {:track-position? true})
167167
operations)]
168168
(= (char-here zloc)
169169
(char-at-position (base/root-string zloc) (z/position zloc))))))

test/rewrite_clj/custom_zipper/utils_test.cljc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
b (node/token-node 'b)
1212
c (node/token-node 'c)
1313
d (node/token-node 'd)
14-
loc (z/down (base/edn* (node/forms-node [a b c d])))]
14+
loc (z/down (base/of-node* (node/forms-node [a b c d])))]
1515
(testing "remove-right"
1616
(let [loc' (u/remove-right loc)]
1717
(is (= 'a (base/sexpr loc')))

test/rewrite_clj/zip/base_test.cljc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
[(node/spaces 3)
99
(node/coerce [[1 2] 3])])
1010
s " [[1 2] 3]"
11-
loc (z/edn* n)
11+
loc (z/of-node* n)
1212
[_ a b c d] (iterate z/next* loc)]
1313
(is (= :forms (z/tag loc)))
1414
(is (= [[1 2] 3] (z/sexpr loc)))
@@ -49,7 +49,7 @@
4949
(with-open [w (java.io.StringWriter.)]
5050
(z/print-root loc w)
5151
(str w)))))
52-
(z/edn
52+
(z/of-node
5353
(node/forms-node
5454
[(node/spaces 3)
5555
(node/coerce [[1 2] 3])]))
@@ -60,7 +60,7 @@
6060
(deftest t-zipper-creation-for-whitespace-only-nodes
6161
(are [?ws ?s]
6262
(let [n (node/forms-node [?ws])
63-
loc (z/edn n)]
63+
loc (z/of-node n)]
6464
(is (= :forms (z/tag loc)))
6565
(is (= nil (z/sexpr loc)))
6666
(is (= ?s (z/string loc)))

0 commit comments

Comments
 (0)