summaryrefslogtreecommitdiff
path: root/lib/zipper.ml
diff options
context:
space:
mode:
authorFederico Igne <undyamon@disroot.org>2024-01-12 14:12:57 +0100
committerFederico Igne <undyamon@disroot.org>2024-01-12 14:12:57 +0100
commitfd4fc4ce9ad45a25ca3e77a434306aa2476161bb (patch)
treeaccd4a498d1f1276c3d70d044a7eb18ba6848473 /lib/zipper.ml
parent5b32d8115b7ea81dffc3fe48a0291569dba99e3b (diff)
downloadsandy-fd4fc4ce9ad45a25ca3e77a434306aa2476161bb.tar.gz
sandy-fd4fc4ce9ad45a25ca3e77a434306aa2476161bb.zip
feat(zipper): add function to map on cursor focus with default
Diffstat (limited to 'lib/zipper.ml')
-rw-r--r--lib/zipper.ml5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/zipper.ml b/lib/zipper.ml
index 30be8eb..9313518 100644
--- a/lib/zipper.ml
+++ b/lib/zipper.ml
@@ -107,6 +107,11 @@ let map_focus f z =
107 | None -> z 107 | None -> z
108 | Some (h, t) -> { z with after = Sequence.shift_right t (f h) } 108 | Some (h, t) -> { z with after = Sequence.shift_right t (f h) }
109 109
110let map_focus_or ~default f z =
111 match Sequence.next z.after with
112 | None -> { z with after = Sequence.singleton default }
113 | Some (h, t) -> { z with after = Sequence.shift_right t (f h) }
114
110let map f z = 115let map f z =
111 { z with before = Sequence.map ~f z.before; after = Sequence.map ~f z.after } 116 { z with before = Sequence.map ~f z.before; after = Sequence.map ~f z.after }
112 117