12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/bin/bash
- ###-begin-npm-completion-###
- #
- # npm command completion script
- #
- # Installation: npm completion >> ~/.bashrc (or ~/.zshrc)
- # Or, maybe: npm completion > /usr/local/etc/bash_completion.d/npm
- #
- if type complete &>/dev/null; then
- _npm_completion () {
- local words cword
- if type _get_comp_words_by_ref &>/dev/null; then
- _get_comp_words_by_ref -n = -n @ -n : -w words -i cword
- else
- cword="$COMP_CWORD"
- words=("${COMP_WORDS[@]}")
- fi
- local si="$IFS"
- IFS=$'\n' COMPREPLY=($(COMP_CWORD="$cword" \
- COMP_LINE="$COMP_LINE" \
- COMP_POINT="$COMP_POINT" \
- npm completion -- "${words[@]}" \
- 2>/dev/null)) || return $?
- IFS="$si"
- if type __ltrim_colon_completions &>/dev/null; then
- __ltrim_colon_completions "${words[cword]}"
- fi
- }
- complete -o default -F _npm_completion npm
- elif type compdef &>/dev/null; then
- _npm_completion() {
- local 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-###
|