| ###-begin-npm-completion-### |
| # |
| # npm command completion script |
| # |
| # Installation: npm completion >> ~/.bashrc (or ~/.zshrc) |
| # Or, maybe: npm completion > /usr/local/etc/bash_completion.d/npm |
| # |
| |
| COMP_WORDBREAKS=${COMP_WORDBREAKS/=/} |
| COMP_WORDBREAKS=${COMP_WORDBREAKS/@/} |
| export COMP_WORDBREAKS |
| |
| if type complete &>/dev/null; then |
| _npm_completion () { |
| local si="$IFS" |
| IFS=$'\n' COMPREPLY=($(COMP_CWORD="$COMP_CWORD" \ |
| COMP_LINE="$COMP_LINE" \ |
| COMP_POINT="$COMP_POINT" \ |
| npm completion -- "${COMP_WORDS[@]}" \ |
| 2>/dev/null)) || return $? |
| IFS="$si" |
| } |
| complete -F _npm_completion npm |
| elif type compdef &>/dev/null; then |
| _npm_completion() { |
| si=$IFS |
| compadd -- $(COMP_CWORD=$((CURRENT-1)) \ |
| COMP_LINE=$BUFFER \ |
| COMP_POINT=0 \ |
| npm completion -- "${words[@]}" \ |
| 2>/dev/null) |
| IFS=$si |
| } |
| compdef _npm_completion npm |
| elif type compctl &>/dev/null; then |
| _npm_completion () { |
| local cword line point words si |
| read -Ac words |
| read -cn cword |
| let cword-=1 |
| read -l line |
| read -ln point |
| si="$IFS" |
| IFS=$'\n' reply=($(COMP_CWORD="$cword" \ |
| COMP_LINE="$line" \ |
| COMP_POINT="$point" \ |
| npm completion -- "${words[@]}" \ |
| 2>/dev/null)) || return $? |
| IFS="$si" |
| } |
| compctl -K _npm_completion npm |
| fi |
| ###-end-npm-completion-### |