From f442004dcd8e91114765a918201ecabe99f69eeb Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Mon, 6 Jul 2026 21:08:40 -0300 Subject: horizontal scroll for file panes (terminals wrap at pty width — nothing to scroll): pane.hscroll cuts content columns after the lineno gutter in bodyText (post edit-splice, so typed runs shift with the text), no scrollbar. Drivers: horizontal wheel (new wheel_left/right Mouse.Buttons, SGR 66/67 via vaxis on the tty, SDL wheel.x on the gui, ±4 cols, clamped at 0, right overscroll allowed) and keyboard movement — ensureCursorVisible grew the horizontal mirror of the scrolloff reconcile, so $ pulls the view right with 3 columns of margin and 0 reels it home; the wheel never moves the cursor. Shifted alongside: syntax recolor pass, modal cursor paint (hidden when off-view), vsel highlight, click->content-col mapping, cursorWordSel. Byte columns like the rest of the file-pane code. New hscroll.snap golden: wheel shift with fixed gutter, left clamp, $ margin follow, 0 home. 30/30. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tty.zig | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/tty.zig') diff --git a/src/tty.zig b/src/tty.zig index c62ace3d..f503303a 100644 --- a/src/tty.zig +++ b/src/tty.zig @@ -163,6 +163,8 @@ pub fn run(init: std.process.Init, opts: pardes.Options) !void { .right => .right, .wheel_up => .wheel_up, .wheel_down => .wheel_down, + .wheel_left => .wheel_left, + .wheel_right => .wheel_right, .none => .none, // button-less motion: hover tracking else => null, }; -- cgit v1.3