fix: include category-less tools in pos tab completion
gates / consistency-and-conventions (push) Successful in 23s

_pos_complete_categories offered only hyphenated categories plus a
hardcoded 'config', so 'pos <TAB>' never showed bank/tree. Category-less
tools are now discovered from the executable scan, and the words==3
dispatch routes no-hyphen tools to _pos_complete_tool so 'pos bank <TAB>'
offers list/add/show/run/edit/remove.
This commit is contained in:
Your Name
2026-09-12 07:29:30 -04:00
parent c5d501ad25
commit e23d57e551
2 changed files with 16 additions and 3 deletions
+1 -1
View File
@@ -689,7 +689,7 @@ Use conventional prefixes: `feat:`, `fix:`, `docs:`, `refactor:`, `chore:`
| `bin/pos-bank` | 314 | Persistent command bank for saving and running shell commands |
| `bin/pos-config` | 80 | Interactive editor for the tools' runtime config (reads # POS_CONFIG: registry) |
| `bin/pos-tree` | 118 | Show the pos CLI command tree: categories, commands, and subcommands |
| `completions/pos.bash` | 318 | Dynamic bash completion |
| `completions/pos.bash` | 331 | Dynamic bash completion |
<!-- GEN:END filetable -->
| `apps/install.sh` | 171 | App install/uninstall picker/orchestrator |
+15 -2
View File
@@ -115,7 +115,14 @@ _pos() {
# ── Helpers ────────────────────────────────────────────────
_pos_complete_categories() {
COMPREPLY=($(compgen -W "${!cat_cmds[*]} config" -- "$cur"))
local solos=()
for cmd in "${all_cmds[@]}"; do
local cat_c="${cmd%%-*}"
if [ "$cat_c" = "$cmd" ] && [ -z "${cat_cmds[$cmd]:-}" ]; then
solos+=("$cmd")
fi
done
COMPREPLY=($(compgen -W "${!cat_cmds[*]} ${solos[*]}" -- "$cur"))
}
_pos_complete_subcats() {
@@ -231,7 +238,13 @@ _pos() {
3)
case "${words[1]}" in
config) _pos_config_scopes ;;
*) _pos_complete_subcats ;;
*)
if [[ "${words[1]}" == *-* ]]; then
_pos_complete_subcats
else
_pos_complete_tool "${words[1]}"
fi
;;
esac
;;
4)