diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-28 16:04:12 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:15 -0300 |
| commit | c811c34ed3bcd23954414125b45c7cac67307d5d (patch) | |
| tree | 970cd7c021fb808d574180874e852683be778531 /src/Text.zig | |
| parent | 767aefd1e1cfd79e2a240a59d2d16bfb326f062d (diff) | |
| download | pardes-c811c34ed3bcd23954414125b45c7cac67307d5d.tar.gz pardes-c811c34ed3bcd23954414125b45c7cac67307d5d.zip | |
Every range lives through insert mode, carried through each edit
Insert mode dropped the selection on the first key and restored only the
primary's appended-over span on Esc. Now each insert-mode edit is made at the
bare cursor as before, and the range is then carried through it with helix's
Range::map rules: typing slides an i range and stretches an a range, Enter
(which now also drops the blanks before the cursor, as helix does) slides or
stretches by what the cursor moved, and an arrow collapses. The replay gives
every other range the same. Esc after a pulls each range's end back by one
(helix restore_cursor), which replaces Text.append_at. The wiX-edit-drops-sel
and msel-append waivers are gone.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/Text.zig')
| -rw-r--r-- | src/Text.zig | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Text.zig b/src/Text.zig index 7ad243a1..764b8a6a 100644 --- a/src/Text.zig +++ b/src/Text.zig @@ -65,7 +65,9 @@ select: bool = false, /// sticky goal column for j/k runs (helix old_visual_position): any /// non-vertical range write resets it to -1. sticky_col: i32 = -1, -append_at: ?struct { row: i32, col: i32 } = null, +/// The insert session began with `a`: on Esc every range gives back the +/// one character it was stretched by (helix restore_cursor). +restore_cursor: bool = false, /// insert `Ctrl-r` was pressed: the next key names the register to insert reg_wait: bool = false, normal: modal.Normal.State = .{}, |
