diff --git a/.shell/bash_completion.sh b/.shell/bash_completion.sh new file mode 100644 index 0000000..932ef8a --- /dev/null +++ b/.shell/bash_completion.sh @@ -0,0 +1,54 @@ +# CLI Command Memory - Bash Completion +# Source this file for bash auto-completion support + +_cli-memory_completion() { + local cur prev words cword + _init_completion || return + + local commands="status init detect record search suggest workflow export shell autocomplete" + local record_commands="start single recent sync" + local search_commands="commands workflows tech recent stats" + local suggest_commands="next autocomplete train patterns" + local workflow_commands="play preview generate show list delete" + local export_commands="commands workflows import all scripts" + local shell_commands="setup" + local autocomplete_commands="enable disable" + + if [[ "$cur" == -* ]]; then + COMPREPLY=($(compgen -W "--help --version --config --verbose -c -v" -- "$cur")) + return + fi + + local cmd="${words[1]}" + local subcmd="${words[2]}" + + case "$cmd" in + record) + COMPREPLY=($(compgen -W "$record_commands" -- "$cur")) + ;; + search) + COMPREPLY=($(compgen -W "$search_commands" -- "$cur")) + ;; + suggest) + COMPREPLY=($(compgen -W "$suggest_commands" -- "$cur")) + ;; + workflow) + COMPREPLY=($(compgen -W "$workflow_commands" -- "$cur")) + ;; + export) + COMPREPLY=($(compgen -W "$export_commands" -- "$cur")) + ;; + shell) + COMPREPLY=($(compgen -W "$shell_commands" -- "$cur")) + ;; + autocomplete) + COMPREPLY=($(compgen -W "$autocomplete_commands" -- "$cur")) + ;; + *) + COMPREPLY=($(compgen -W "$commands" -- "$cur")) + ;; + esac +} + +complete -F _cli-memory_completion cli-memory +complete -F _cli-memory_completion cm