From c5c3d8f68712f5a04886ea7b373044821b59cd64 Mon Sep 17 00:00:00 2001 From: kf Date: Fri, 8 May 2026 17:35:21 +0900 Subject: [PATCH] fix: color coding rest parameter input --- src/Prompt.zig | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Prompt.zig b/src/Prompt.zig index 3ef3617..624da95 100644 --- a/src/Prompt.zig +++ b/src/Prompt.zig @@ -494,7 +494,10 @@ pub fn handler(ctx: *Prompt) void { ); // Parameter start at index 1 on command input const param_idx = fragment_id - 1; - if (param_idx >= selected_command.parameters.len) { + const param_end: usize = + if (selected_command.parameters.len > 0) selected_command.parameters.len - 1 else 0; + const is_rest = if (param_end > 0) selected_command.parameters[param_end].rest else false; + if (param_idx >= param_end and !is_rest) { io.style.set(&stdout.interface, .{ .fg = .{ .named = .red }, }) catch continue :main; @@ -505,7 +508,9 @@ pub fn handler(ctx: *Prompt) void { continue :main; break :validation; } - const param = + const param = if (param_idx >= param_end and is_rest) + selected_command.parameters[param_end] + else selected_command.parameters[param_idx]; if (param.isValid(fragment)) { stdout.interface.writeAll(fragment) catch