tui: clean up slash command argument handling

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Charles Cunningham
2026-03-20 20:26:14 -07:00
co-authored by Codex
parent 0b4fbac88d
commit 15ab7fa6ef
4 changed files with 22 additions and 26 deletions
@@ -2568,10 +2568,6 @@ impl ChatComposer {
}
let cmd = slash_commands::find_builtin_command(name, self.builtin_command_flags())?;
if !cmd.supports_inline_args() {
return None;
}
if self.reject_slash_command_if_unavailable(cmd) {
return Some(InputResult::None);
}
+11 -9
View File
@@ -4738,10 +4738,6 @@ impl ChatWidget {
args: String,
_text_elements: Vec<TextElement>,
) {
if !cmd.supports_inline_args() {
self.dispatch_command(cmd);
return;
}
if !cmd.available_during_task() && self.bottom_pane.is_task_running() {
let message = format!(
"'/{}' is disabled while a task is in progress.",
@@ -4753,12 +4749,12 @@ impl ChatWidget {
}
let trimmed = args.trim();
if trimmed.is_empty() {
self.dispatch_command(cmd);
return;
}
match cmd {
SlashCommand::Fast => {
if trimmed.is_empty() {
self.dispatch_command(cmd);
return;
}
match trimmed.to_ascii_lowercase().as_str() {
"on" => self.set_service_tier_selection(Some(ServiceTier::Fast)),
"off" => self.set_service_tier_selection(/*service_tier*/ None),
@@ -4860,7 +4856,13 @@ impl ChatWidget {
});
self.bottom_pane.drain_pending_submission_state();
}
_ => self.dispatch_command(cmd),
_ => {
let usage = cmd.usage_lines().join(" | ");
self.add_error_message(format!(
"'/{}' does not accept inline arguments. Usage: {usage}",
cmd.command()
));
}
}
}
@@ -2582,10 +2582,6 @@ impl ChatComposer {
}
let cmd = slash_commands::find_builtin_command(name, self.builtin_command_flags())?;
if !cmd.supports_inline_args() {
return None;
}
if self.reject_slash_command_if_unavailable(cmd) {
return Some(InputResult::None);
}
+11 -9
View File
@@ -4885,10 +4885,6 @@ impl ChatWidget {
args: String,
_text_elements: Vec<TextElement>,
) {
if !cmd.supports_inline_args() {
self.dispatch_command(cmd);
return;
}
if !cmd.available_during_task() && self.bottom_pane.is_task_running() {
let message = format!(
"'/{}' is disabled while a task is in progress.",
@@ -4900,12 +4896,12 @@ impl ChatWidget {
}
let trimmed = args.trim();
if trimmed.is_empty() {
self.dispatch_command(cmd);
return;
}
match cmd {
SlashCommand::Fast => {
if trimmed.is_empty() {
self.dispatch_command(cmd);
return;
}
match trimmed.to_ascii_lowercase().as_str() {
"on" => self.set_service_tier_selection(Some(ServiceTier::Fast)),
"off" => self.set_service_tier_selection(/*service_tier*/ None),
@@ -5004,7 +5000,13 @@ impl ChatWidget {
});
self.bottom_pane.drain_pending_submission_state();
}
_ => self.dispatch_command(cmd),
_ => {
let usage = cmd.usage_lines().join(" | ");
self.add_error_message(format!(
"'/{}' does not accept inline arguments. Usage: {usage}",
cmd.command()
));
}
}
}