diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-15 13:21:29 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-09-15 17:24:42 -0300 |
| commit | 2bdde8c5ec1049ea0f575c6f9165ed4cef00ea50 (patch) | |
| tree | 0d7879e387223bd19d78a295bee0ba7ab3a62e00 /src/builtins.zig | |
| parent | 8ec8924cd577f71953f8e420af1cd60da92f3300 (diff) | |
| download | pardes-2bdde8c5ec1049ea0f575c6f9165ed4cef00ea50.tar.gz pardes-2bdde8c5ec1049ea0f575c6f9165ed4cef00ea50.zip | |
Align location results and configure source context
Diffstat (limited to 'src/builtins.zig')
| -rw-r--r-- | src/builtins.zig | 25 |
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 { |
