summaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig21
1 files changed, 21 insertions, 0 deletions
diff --git a/build.zig b/build.zig
index f27e47aa..dd2d64bf 100644
--- a/build.zig
+++ b/build.zig
@@ -1503,6 +1503,27 @@ pub fn build(b: *std.Build) void {
lspbench_step.dependOn(install_lspbench);
lspbench_step.dependOn(&run_lspbench.step);
+ // The client's one-shot probe: the same seam, one query, any
+ // workspace — how the protocol client is exercised against real
+ // rust/C/go trees during development without driving the editor.
+ // Debug is fine: the latency measured is the child server's.
+ const lspprobe = b.addExecutable(.{
+ .name = "pardes-lspprobe",
+ .root_module = b.createModule(.{
+ .target = target,
+ .optimize = optimize,
+ .root_source_file = b.path("tools/lspprobe.zig"),
+ .link_libc = true,
+ }),
+ });
+ lspprobe.root_module.addImport("pardes", hx_core_mod);
+ const install_lspprobe = &b.addInstallArtifact(lspprobe, .{ .dest_dir = .{ .override = .{ .custom = "dev" } } }).step;
+ const run_lspprobe = b.addRunArtifact(lspprobe);
+ if (b.args) |args| run_lspprobe.addArgs(args);
+ const lspprobe_step = b.step("lspprobe", "one language query against the real seam (-- <kind> <file> <line>:<col> [arg] [--reps N])");
+ lspprobe_step.dependOn(install_lspprobe);
+ lspprobe_step.dependOn(&run_lspprobe.step);
+
// the editing scoreboard: one gesture, one file size, one number.
// ReleaseFast for the same reason lspbench is — a Debug build measures
// safety checks, and the question here is what the algorithm costs.