summaryrefslogtreecommitdiff
path: root/src/edit.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 16:29:36 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commit79cdf76fd2dd0ba03622bfe742b525b770d51684 (patch)
tree8f0d73a0dfdb3f39839d0b5be9dff9af0473638a /src/edit.zig
parent7ce5d94b5d48b68c86d015060ebcabe63e299e1a (diff)
downloadpardes-79cdf76fd2dd0ba03622bfe742b525b770d51684.tar.gz
pardes-79cdf76fd2dd0ba03622bfe742b525b770d51684.zip
K and Alt-K keep or drop the ranges a regex matches in; Alt-: turns every range forward
K and Alt-K share the s/S prompt, which now carries a mode rather than a split flag: a range stays when a match starts inside it (K) or when none does (Alt-K), the primary becomes the first, and keeping none leaves the selection as it was (helix keep_or_remove_matches). Alt-: is ensure_selections_forward. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/edit.zig')
-rw-r--r--src/edit.zig5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/edit.zig b/src/edit.zig
index a373741c..5e0d20a4 100644
--- a/src/edit.zig
+++ b/src/edit.zig
@@ -148,7 +148,7 @@ pub fn applyPaste(p: *Pardes, bytes: []const u8) void {
n += 1;
};
if (n > 0) insertKey(p, &pane.input, .{ .cp = line[0], .text = line[0..n] });
- if (normal.selRegexArmed(pane)) |a| if (p.promptTarget(pane)) |t| normal.applySelRegex(p, pane, t, a.pat, a.split);
+ if (normal.selRegexArmed(pane)) |a| if (p.promptTarget(pane)) |t| normal.applySelRegex(p, pane, t, a.pat, a.mode);
return;
}
if (pane.focus == .tag) return pasteInto(p, &pane.tag, bytes);
@@ -355,7 +355,8 @@ pub fn exitInsert(p: *Pardes, t: *Text) void {
for (rs[0..got.n]) |*r| {
const from = @min(r.anchor, r.head);
const to = @max(r.anchor, r.head);
- r.* = .{ .anchor = from, .head = if (r.head > r.anchor) @max(from, modal.prevGrapheme(text, to)) else to };
+ const head = if (r.head > r.anchor) @max(from, modal.prevGrapheme(text, to)) else to;
+ r.* = .{ .anchor = from, .head = head };
}
t.setRanges(text, rs[0..got.n], &.{}, got.pri, expl);
}