From 2bdde8c5ec1049ea0f575c6f9165ed4cef00ea50 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 15 Sep 2026 13:21:29 -0300 Subject: Align location results and configure source context --- src/builtins.zig | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/builtins.zig') diff --git a/src/builtins.zig b/src/builtins.zig index f4e22308..92bf6fea 100644 --- a/src/builtins.zig +++ b/src/builtins.zig @@ -523,6 +523,31 @@ pub const Config = struct { } }; +pub const LocationsConfig = struct { + pub const takes_arg = true; + pub const output: OutputTraits = .{ .name = "+LocationsConfig" }; + + pub fn run(c: Ctx) void { + const next = c.p.locations_config.parse(c.arg orelse "") catch |err| { + c.p.reportError(c.id, "LocationsConfig", err); + return; + }; + c.p.locations_config = next; + report(c) catch |err| c.p.reportError(c.id, "LocationsConfig", err); + } + + fn report(c: Ctx) !void { + var out: std.Io.Writer.Allocating = .init(c.p.gpa); + errdefer out.deinit(); + try out.writer.writeAll("LocationsConfig "); + try c.p.locations_config.write(&out.writer); + try out.writer.writeByte('\n'); + const content = try out.toOwnedSlice(); + const dir = if (c.pane.file) |file| std.fs.path.dirname(file.path) orelse "/" else c.pane.cwdSlice(); + try panes.Output.fillResults(c.p, c.id, dir, .{ .cmd = .LocationsConfig }, "", content, null); + } +}; + pub const Messages = struct { pub const output: OutputTraits = .{ .name = config.messages_buffer }; pub fn run(c: Ctx) void { -- cgit v1.3