63 lines
1.9 KiB
Bash
63 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
[[ "$-" != *i* ]] && return
|
|
|
|
if ! shopt -oq posix; then # Enable programmable completion features
|
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
|
source /usr/share/bash-completion/bash_completion
|
|
elif [ -f /etc/bash_completion ]; then
|
|
source /etc/bash_completion
|
|
fi
|
|
fi
|
|
|
|
|
|
SCRIPT_DIR=$(builtin cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
|
|
source "$SCRIPT_DIR/complete-alias/complete_alias"
|
|
|
|
complete -F _complete_alias gitdotfiles
|
|
|
|
source <(bs .completion bash)
|
|
source <(gh completion -s bash)
|
|
source <(roxy completions bash)
|
|
source <(node --completion-bash)
|
|
source <(npm completion)
|
|
source <(nodejsscript --completion bash)
|
|
|
|
# NPX completion
|
|
_npx() {
|
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
|
|
|
if [[ $COMP_CWORD != 1 ]]; then
|
|
case "${COMP_WORDS[1]}" in
|
|
gulp)
|
|
local compls=$(npx gulp --tasks-simple)
|
|
if [[ $compls == *"__autocomplete_bash"* ]]; then
|
|
compls="$compls $(npx gulp -L __autocomplete_bash --_l=$COMP_CWORD --_c=$cur)"
|
|
fi
|
|
;;
|
|
esac
|
|
COMPREPLY=($(compgen -W "$compls" -- "$cur"))
|
|
return 0;
|
|
fi
|
|
|
|
local dir=$(pwd -P)
|
|
while [[ -n "$dir" ]]; do
|
|
if [[ ! -d $dir/node_modules/.bin ]]; then
|
|
dir=${dir%/*}
|
|
continue
|
|
fi
|
|
local execs=( $(cd $dir/node_modules/.bin; find -L . -type f -executable) )
|
|
execs=( ${execs[@]/#.\//} )
|
|
COMPREPLY=( $(compgen -W "${execs[*]} serve" -- "$cur" ) )
|
|
break
|
|
done
|
|
}
|
|
complete -F _npx npx
|
|
|
|
# On demand
|
|
alias C--pnpm='source "$BASH_DOTFILES/shell/completion/pnpm.completion"'
|
|
alias C--cordova='source "$BASH_DOTFILES/shell/completion/cordova.completion"'
|
|
alias C--uu='source <($HOME/.local/bin/uu --completion-bash)'
|
|
alias C--jc='source <(jc -B)'
|
|
alias C--but='source <(but completions bash)'
|