summaryrefslogtreecommitdiff
path: root/src/builtins.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-15 13:21:29 -0300
committerGabriel Schneider <[email protected]>2026-09-15 17:24:42 -0300
commit2bdde8c5ec1049ea0f575c6f9165ed4cef00ea50 (patch)
tree0d7879e387223bd19d78a295bee0ba7ab3a62e00 /src/builtins.zig
parent8ec8924cd577f71953f8e420af1cd60da92f3300 (diff)
downloadpardes-2bdde8c5ec1049ea0f575c6f9165ed4cef00ea50.tar.gz
pardes-2bdde8c5ec1049ea0f575c6f9165ed4cef00ea50.zip
Align location results and configure source context
Diffstat (limited to 'src/builtins.zig')
-rw-r--r--src/builtins.zig25
1 files changed, 25 insertions, 0 deletions
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 {