From 238a4506cfeda388d097265b133004b63f130de6 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 1 Jul 2026 11:02:32 +0200 Subject: feat: completion suggests --type values per command Tab-completing --type now offers the valid values instead of nothing: account list -> asset/expense/revenue/liability, account create -> asset/expense/revenue, tx add/edit -> withdrawal/deposit/transfer. Keyed per command off a static FLAG_VALUES map in gen_completion.py (types are a fixed Firefly enum, so no API call in the completion). Partial input filters and unrelated flags still complete normally. Completion-only: no CLI/JSON/exit change, ships under v0.3.4. Co-Authored-By: Claude Opus 4.8 --- completions/firefly.bash | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'completions/firefly.bash') diff --git a/completions/firefly.bash b/completions/firefly.bash index 68c4b74..648fbe0 100644 --- a/completions/firefly.bash +++ b/completions/firefly.bash @@ -56,6 +56,20 @@ _firefly() { tx) leaves="add delete edit get list search";; esac + # Flag values: when the previous word is a flag with a fixed value set for + # this command, suggest those values instead of more flags. + local vals="" + case "$group $leaf $prev" in + "account create --type") vals="asset expense revenue";; + "account list --type") vals="asset expense revenue liability";; + "tx add --type") vals="withdrawal deposit transfer";; + "tx edit --type") vals="withdrawal deposit transfer";; + esac + if [[ -n $vals ]]; then + COMPREPLY=($(compgen -W "$vals" -- "$cur")) + return + fi + if [[ -z $group ]]; then COMPREPLY=($(compgen -W "$groups $global_opts" -- "$cur")) elif [[ -z $leaf ]]; then -- cgit v1.2.3