Skip to content
Snippets Groups Projects
Commit 96de6ba8 authored by Erik Kastner's avatar Erik Kastner Committed by Max Howell
Browse files

adding zsh completion

parent a4e86bb3
No related branches found
No related tags found
No related merge requests found
#compdef brew
# Brew ZSH completion function
# Drop this somewhere in your $fpath (like /usr/share/zsh/site-functions)
# and rename it _brew
#
# altered from _fink
_brew_all_formulae() {
formulae=(`brew search`)
}
_brew_installed_formulae() {
installed_formulae=(`brew list`)
}
local -a _1st_arguments
_1st_arguments=(
'install:install a formula'
'remove:remove a formula'
'search:search for a formula (/regex/ or string)'
'list:list files in a formula or not-installed formulae'
'link:link a formula'
'unlink:unlink a formula'
'home:visit the homepage of a formula or the brew project'
'info:information about a formula'
'prune:remove dead links'
'update:freshen up links'
'log:git commit log for a formula'
'create:create a new formula'
'edit:edit a formula'
)
local expl
local -a formula installed_formulae
_arguments \
'(-v --verbose)'{-v,--verbose}'[verbose]' \
'(--version)--version[version information]' \
'(--prefix)--prefix[where brew lives on this system]' \
'(--cache)--cache[brew cache]' \
'*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
_describe -t commands "brew subcommand" _1st_arguments
return
fi
case "$words[1]" in
list)
_arguments \
'(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \
'1: :->forms' && return 0
if [[ "$state" == forms ]]; then
_brew_installed_formulae
_requested installed_formulae expl 'installed formulae' compadd -a installed_formulae
fi ;;
install|home|log|info)
_brew_all_formulae
_wanted formulae expl 'all formulae' compadd -a formulae ;;
remove|edit|xo)
_brew_installed_formulae
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;;
esac
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment