mirror of
https://github.com/zsh-users/zsh-completions.git
synced 2026-09-20 11:54:40 +00:00
Having a vim modeline or emacs local variable line somewhere in the middle of the file isn't really helpful. By default, vim will only check the first and last 5 lines of a file for a modeline (assuming the modeline option is enabled). Emacs is even more strict about the type of local variable line that was in use, it will only check the first line of the file or the second line if the first line specifies a script interpreter (which isn't the case here). Move the vim modeline to the end of the file so that it can actually be found by vim but is out of the way for editing. For emacs more work is required, convert that to the more verbose Local Variables syntax which emacs will look for starting 3000 characters from the end of the file. Also there is no zsh mode for emacs (according to zsh-users/zsh-completions#75), use the "Shell-Script" mode instead. This seems to automatically detect that the files are for zsh. I'm not an emacs user, so I haven't tested that portion much. But, this does at least improve the syntax highlighting there.
107 lines
3.5 KiB
Bash
107 lines
3.5 KiB
Bash
#compdef brew
|
|
# ------------------------------------------------------------------------------
|
|
# Description
|
|
# -----------
|
|
#
|
|
# Completion script for brew (https://github.com/mxcl/homebrew).
|
|
#
|
|
# Source: https://github.com/mxcl/homebrew/blob/master/Library/Contributions/brew_zsh_completion.zsh
|
|
#
|
|
# ------------------------------------------------------------------------------
|
|
# Authors
|
|
# -------
|
|
#
|
|
# * kulakowski (https://github.com/kulakowski)
|
|
# * Gabe Berke-Williams (https://github.com/gabebw)
|
|
# * James Conroy-Finn (https://github.com/jcf)
|
|
# * Daniel Schauenberg (https://github.com/mrtazz)
|
|
# * Adam Vandenberg (https://github.com/adamv)
|
|
# * Erik Kastner (https://github.com/kastner)
|
|
#
|
|
# ------------------------------------------------------------------------------
|
|
|
|
|
|
_brew_all_formulae() {
|
|
formulae=(`brew search`) # FIXME _call_program should be used here
|
|
}
|
|
|
|
_brew_installed_formulae() {
|
|
installed_formulae=(`brew list`) # FIXME _call_program should be used here
|
|
}
|
|
|
|
local -a _1st_arguments
|
|
_1st_arguments=(
|
|
'cat:display formula file for a formula'
|
|
'cleanup:uninstall unused and old versions of packages'
|
|
'create:create a new formula'
|
|
'deps:list dependencies and dependants of a formula'
|
|
'doctor:audits your installation for common issues'
|
|
'edit:edit a formula'
|
|
'home:visit the homepage of a formula or the brew project'
|
|
'info:information about a formula'
|
|
'install:install a formula'
|
|
'link:link a formula'
|
|
'list:list files in a formula or not-installed formulae'
|
|
'log:git commit log for a formula'
|
|
'missing:check all installed formulae for missing dependencies.'
|
|
'outdated:list formulae for which a newer version is available'
|
|
'prune:remove dead links'
|
|
'remove:remove a formula'
|
|
'search:search for a formula (/regex/ or string)'
|
|
'server:start a local web app that lets you browse formulae (requires Sinatra)'
|
|
'unlink:unlink a formula'
|
|
'update:freshen up links'
|
|
'upgrade:upgrade outdated formulae'
|
|
'uses:show formulae which depend on a formula'
|
|
)
|
|
|
|
local expl
|
|
local -a formulae installed_formulae
|
|
|
|
_arguments \
|
|
'(-v)-v[verbose]' \
|
|
'(--cellar)--cellar[brew cellar]' \
|
|
'(--config)--config[brew configuration]' \
|
|
'(--env)--env[brew environment]' \
|
|
'(--repository)--repository[brew repository]' \
|
|
'(--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
|
|
search|-S)
|
|
_arguments \
|
|
'(--macports)--macports[search the macports repository]' \
|
|
'(--fink)--fink[search the fink repository]' ;;
|
|
list|ls)
|
|
_arguments \
|
|
'(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \
|
|
'(--versions)--versions[list all installed versions of a formula]' \
|
|
'1: :->forms' && return 0
|
|
|
|
if [[ "$state" == forms ]]; then
|
|
_brew_installed_formulae
|
|
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae
|
|
fi ;;
|
|
install|home|homepage|log|info|abv|uses|cat|deps|edit|options)
|
|
_brew_all_formulae
|
|
_wanted formulae expl 'all formulae' compadd -a formulae ;;
|
|
remove|rm|uninstall|unlink|cleanup|link|ln)
|
|
_brew_installed_formulae
|
|
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;;
|
|
esac
|
|
|
|
# Local Variables:
|
|
# mode: Shell-Script
|
|
# sh-indentation: 2
|
|
# indent-tabs-mode: nil
|
|
# sh-basic-offset: 2
|
|
# End:
|
|
# vim: ft=zsh sw=2 ts=2 et
|