summaryrefslogtreecommitdiff
path: root/src/exec.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 16:52:18 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commit0e2afeecf6b8c0e9ac81da51f5f8c23a5be1a5ae (patch)
treeffe26f39f88daf89647d077c2fce888f64569018 /src/exec.zig
parentc9d5d97e4d487b92a52d765dd9c467423ddd1de1 (diff)
downloadpardes-0e2afeecf6b8c0e9ac81da51f5f8c23a5be1a5ae.tar.gz
pardes-0e2afeecf6b8c0e9ac81da51f5f8c23a5be1a5ae.zip
Errors are said in words, and a refusal names what it takes
A failure read `Del k|j: InvalidArgument`, `Kill: NoSuchCommand`, `ill-formed control message`, or nothing at all. reportError now spells an error's name as words, and the refusals name their accepted forms: pty/ctl lists its verbs, a flag file takes 1 or 0, a setting word takes on or off, Del takes k, j or nothing, Repl takes - or a language. Kill with nothing to stop says so, /focus says pane, a Look that found nothing says no match, and pty/run on a command pane says it is not a shell. A ctl write's failure has room for the Repl list and is cut between words, the Repl word at a character. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/exec.zig')
-rw-r--r--src/exec.zig6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/exec.zig b/src/exec.zig
index 12934c3c..584d1b96 100644
--- a/src/exec.zig
+++ b/src/exec.zig
@@ -740,7 +740,11 @@ pub fn applySettingBuiltin(p: *Pardes, setting: config.Runtime.Setting, arg: ?[]
if (!p.settings.requestFont(matches[0].path, matches[0].name, spec.size_hundredths)) return;
p.font_request_taken = false;
},
- else => _ = p.settings.apply(setting, arg),
+ else => if (!p.settings.apply(setting, arg) and p.announce) {
+ var text: [96]u8 = undefined;
+ const takes = if (setting.action == .toggle) "takes on or off" else "does not take that value";
+ p.reportFailure(p.active, std.fmt.bufPrint(&text, "{s}: {s}", .{ setting.word, takes }) catch takes);
+ },
}
if (p.settings.colors != previous_colors) {
for (p.panes) |slot| {