mirror of
https://github.com/abue-ammar/tinycast.git
synced 2026-10-02 00:04:44 +08:00
* Collect a custom command's arguments inline in root search A custom command that declares arguments now shows its fields beside the search field when its row is selected, the way a quicklink already does, instead of replacing the screen with a one-at-a-time form. The form, `PaletteMode.customCommandArguments` and `CustomCommandArgumentSession` are gone. Handled the way Raycast handles script-command arguments: - At most three. `CustomCommandArgument.sanitized` enforces it on every path in, so a stored command carrying more keeps its first three; the editor's Add stops there. - ↵ with a required field empty focuses that field rather than running. - A hotkey, favorite slot or Run Again with values missing opens root search onto that one row, seeded with its name, first empty field focused. The row is listed even when hidden from the launcher, since its shortcut still has to be answered. Fields are keyed by position (`$1`–`$3`), not name, because two arguments may share a name. `runCustomCommand(id:values:)` stays the one funnel and `positionalValues(from:)` restores `$n` order, so values still reach zsh as positional parameters and never as command text. The field strip moves from Quicklinks to `DesignSystem/InlineArgumentFields` so both features draw the same control rather than a copy of it. * Carry a clicked row's inline values into its launch Clicking a launcher row launched it without the values typed into its inline fields, so a custom command reopened its prompt empty and a quicklink lost what was typed. The click now goes through `argumentValues(for:)`, as ↵ already did. Also names what `argumentKey`'s second half is for each feature.