From e381c96a08f08e03a340a24acb3fe5fe1fca51be Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Sun, 26 Jul 2026 18:36:08 -0300 Subject: adding better search to tty mode --- build.zig | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'build.zig') diff --git a/build.zig b/build.zig index 2b728ea1..c62ee222 100644 --- a/build.zig +++ b/build.zig @@ -522,6 +522,27 @@ pub fn build(b: *std.Build) void { } b.step("hxdiff", "run the helix differential suite (-- [goldens.jsonl [waivers.jsonl]])").dependOn(&run_hxdiff.step); + // file-vs-pty parity: the SAME harness binary, run in --parity mode. + // Each case runs twice over the same text and keys, once in a file + // pane and once in a pty pane, and the two result lines must be + // identical — the file pane is the oracle, so editing a shell pane + // cannot drift away from editing a document. + const run_hxparity = b.addRunArtifact(hxdiff); + run_hxparity.addArg("--parity"); + if (b.args) |args| run_hxparity.addArgs(args) else { + // the WHOLE helix corpus plus the editing extras: a parity gate + // that only ran the cases its author wrote could not catch the + // next regression. parity-waivers names the divergences that are + // not editing (pardes bindings, pty viewport geometry, a tab the + // emulator expands), each with its reason. + run_hxparity.addArgs(&.{ + "--waivers", "test/hxcases/parity-waivers.jsonl", + "test/hxcases/cases.jsonl", "test/hxcases/parity.jsonl", + }); + run_hxparity.setCwd(b.path(".")); + } + b.step("hxparity", "run the file-vs-pty editing parity suite (-- [--waivers w.jsonl] ...)").dependOn(&run_hxparity.step); + // modal.zig is pure std — its inline unit tests run here const unit = b.addTest(.{ .root_module = b.createModule(.{ .target = target, -- cgit v1.3