Open
Description
Version
rewrite-clj/rewrite-clj {:mvn/version "1.1.47"}
Platform
Clojure version: 1.11.1
Symptom
Two issues:
- When using
rewrite-clj.paredit/kill
incorrectly positions the zipper after performing the operation. - Docstring says that it should be removing nodes to the right from the current node. But in fact it deletes nodes starting from the current node.
Reproduction
(-> (z/of-string "[1 2 3 4]")
z/down
(z/insert-left (n/keyword-node :wrong-pos))
z/next
(z/insert-left (n/keyword-node :nil-meta))
pe/kill
z/print)
:wrong-pos
Actual behavior
- Positions zipper on the
:wrong-pos
. - End result is
[:wrong-pos 1 :nil-meta ]
.
Expected behavior
- Expected to position on
2
. - Expected end result is
[:wrong-pos 1 :nil-meta 2]
Diagnosis
- Incorrect positioning is caused by
global-find-by-node
search that compares nodes meta not taking into account that new nodes havenil
meta. - Either docstring or the behavior needs to be fixed to match each other.
Action
Let me know if a PR is preferred.
Metadata
Assignees
Labels
No labels
Type
Projects
Status
In Progress