fix: include category-less tools in pos tab completion
gates / consistency-and-conventions (push) Successful in 23s
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:
@@ -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-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-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 |
|
| `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 -->
|
<!-- GEN:END filetable -->
|
||||||
| `apps/install.sh` | 171 | App install/uninstall picker/orchestrator |
|
| `apps/install.sh` | 171 | App install/uninstall picker/orchestrator |
|
||||||
|
|
||||||
|
|||||||
+15
-2
@@ -115,7 +115,14 @@ _pos() {
|
|||||||
|
|
||||||
# ── Helpers ────────────────────────────────────────────────
|
# ── Helpers ────────────────────────────────────────────────
|
||||||
_pos_complete_categories() {
|
_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() {
|
_pos_complete_subcats() {
|
||||||
@@ -231,7 +238,13 @@ _pos() {
|
|||||||
3)
|
3)
|
||||||
case "${words[1]}" in
|
case "${words[1]}" in
|
||||||
config) _pos_config_scopes ;;
|
config) _pos_config_scopes ;;
|
||||||
*) _pos_complete_subcats ;;
|
*)
|
||||||
|
if [[ "${words[1]}" == *-* ]]; then
|
||||||
|
_pos_complete_subcats
|
||||||
|
else
|
||||||
|
_pos_complete_tool "${words[1]}"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
4)
|
4)
|
||||||
|
|||||||
Reference in New Issue
Block a user