| #!/usr/bin/env bash |
| |
| _bash-it-comp-enable-disable() |
| { |
| local enable_disable_args="alias plugin completion" |
| COMPREPLY=( $(compgen -W "${enable_disable_args}" -- ${cur}) ) |
| } |
| |
| _bash-it-comp-list-available-not-enabled() |
| { |
| subdirectory="$1" |
| |
| local available_things=$(for f in `ls -1 $BASH_IT/$subdirectory/available/*.bash`; |
| do |
| if [ ! -e $BASH_IT/$subdirectory/enabled/$(basename $f) ] |
| then |
| basename $f | cut -d'.' -f1 |
| fi |
| done) |
| |
| COMPREPLY=( $(compgen -W "all ${available_things}" -- ${cur}) ) |
| } |
| |
| _bash-it-comp-list-enabled() |
| { |
| subdirectory="$1" |
| |
| local enabled_things=$(for f in `ls -1 $BASH_IT/$subdirectory/enabled/*.bash`; |
| do |
| basename $f | cut -d'.' -f1 |
| done) |
| |
| COMPREPLY=( $(compgen -W "all ${enabled_things}" -- ${cur}) ) |
| } |
| |
| _bash-it-comp-list-available() |
| { |
| subdirectory="$1" |
| |
| local enabled_things=$(for f in `ls -1 $BASH_IT/$subdirectory/available/*.bash`; |
| do |
| basename $f | cut -d'.' -f1 |
| done) |
| |
| COMPREPLY=( $(compgen -W "${enabled_things}" -- ${cur}) ) |
| } |
| |
| _bash-it-comp() |
| { |
| local cur prev opts prevprev |
| COMPREPLY=() |
| cur="${COMP_WORDS[COMP_CWORD]}" |
| prev="${COMP_WORDS[COMP_CWORD-1]}" |
| |
| opts="help show enable disable" |
| |
| case "${prev}" in |
| show) |
| local show_args="plugins aliases completions" |
| COMPREPLY=( $(compgen -W "${show_args}" -- ${cur}) ) |
| return 0 |
| ;; |
| help) |
| local help_args="plugins aliases" |
| COMPREPLY=( $(compgen -W "${help_args}" -- ${cur}) ) |
| return 0 |
| ;; |
| enable) |
| _bash-it-comp-enable-disable |
| return 0 |
| ;; |
| disable) |
| _bash-it-comp-enable-disable |
| return 0 |
| ;; |
| aliases) |
| prevprev="${COMP_WORDS[COMP_CWORD-2]}" |
| |
| case "${prevprev}" in |
| help) |
| _bash-it-comp-list-available aliases |
| return 0 |
| ;; |
| esac |
| ;; |
| alias) |
| prevprev="${COMP_WORDS[COMP_CWORD-2]}" |
| |
| case "${prevprev}" in |
| enable) |
| _bash-it-comp-list-available-not-enabled aliases |
| return 0 |
| ;; |
| disable) |
| _bash-it-comp-list-enabled aliases |
| return 0 |
| ;; |
| esac |
| ;; |
| plugin) |
| prevprev="${COMP_WORDS[COMP_CWORD-2]}" |
| |
| case "${prevprev}" in |
| enable) |
| _bash-it-comp-list-available-not-enabled plugins |
| return 0 |
| ;; |
| disable) |
| _bash-it-comp-list-enabled plugins |
| return 0 |
| ;; |
| esac |
| ;; |
| completion) |
| prevprev="${COMP_WORDS[COMP_CWORD-2]}" |
| |
| case "${prevprev}" in |
| enable) |
| _bash-it-comp-list-available-not-enabled completion |
| return 0 |
| ;; |
| disable) |
| _bash-it-comp-list-enabled completion |
| return 0 |
| ;; |
| esac |
| ;; |
| esac |
| |
| COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) |
| |
| return 0 |
| } |
| |
| complete -F _bash-it-comp bash-it |