Merge pull request #5388 from bosr/zsh/completion-cache

_brew | allow 'brew commands' to be cached by zsh
This commit is contained in:
Mike McQuaid 2018-12-10 14:12:07 +00:00 committed by GitHub
commit 00075c228c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -129,9 +129,26 @@ __brew_common_commands() {
_describe -t common-commands 'common commands' commands
}
# completions are cached for 24 hour
__brew_commands_caching_policy() {
local -a oldp
oldp=( "$1"(Nmh+24) )
(( $#oldp ))
}
__brew_all_commands() {
local cache_policy
zstyle -s ":completion:${curcontext}:" cache-policy cache_policy
if [[ -z "$cache_policy" ]]; then
zstyle ":completion:${curcontext}:" cache-policy __brew_commands_caching_policy
fi
local -a commands
local comp_cachename=brew_all_commands
if _cache_invalid $comp_cachename || ! _retrieve_cache $comp_cachename; then
commands=($(_call_program brew brew commands --quiet --include-aliases))
_store_cache $comp_cachename commands
fi
_describe -t all-commands 'all commands' commands
}