From 3f017863e08208119859f9362a5c633ac39d4316 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 01:30:17 -0300 Subject: The look walk goes on from a restored dot both ways After a Restore the dot came back on the match it was on, but N stayed on that match instead of wrapping to the last as it does live: the walk remembers the spot it landed on (look_at), and a restored pane has none, so it stood at the cursor, the selection's end, and found the match it was in. A one-row selection now counts as where the walk stands, from its start and past it either way, as a landed spot does. Co-Authored-By: Claude Opus 5.5 --- test/output.zig | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'test/output.zig') diff --git a/test/output.zig b/test/output.zig index 95cdbfb7..419bcca2 100644 --- a/test/output.zig +++ b/test/output.zig @@ -1590,10 +1590,13 @@ test "stacked search and LSP results retain source tint navigation and dump owne } restored.active = id; pardes.look.armLookWalk(restored, id); - // The dot came back on the match it was on; the walk goes on. + // The dot came back on the match it was on; the walk goes on + // from it both ways, N wrapping to the last as it does live. try std.testing.expectEqual(@as(i32, @intCast(matches[0])), restored.panes[id].?.body.cur_row); - restored.update(.{ .key = .{ .cp = 'n' } }); + restored.update(.{ .key = .{ .cp = 'N' } }); try std.testing.expectEqual(@as(i32, @intCast(matches[1])), restored.panes[id].?.body.cur_row); + restored.update(.{ .key = .{ .cp = 'n' } }); + try std.testing.expectEqual(@as(i32, @intCast(matches[0])), restored.panes[id].?.body.cur_row); try std.testing.expectEqualStrings(source_text, source.file.?.content); } } -- cgit v1.3