fix(zsh/completion): ensure brew and brew installed shell completion works

This commit is contained in:
2024-02-23 01:24:01 +00:00
parent ffa09cbf4c
commit 0b183f8acd
2 changed files with 13 additions and 5 deletions

14
zshenv
View File

@@ -137,19 +137,23 @@ if command-exists brew; then
brew-prefix() {
local package="$1"
local cachekey
cachekey="$package"
if [[ -z "$package" ]]; then
package="__none__"
cachekey="__none__"
fi
if [[ -n "${_brew_prefix_cache[$package]}" ]]; then
echo "${_brew_prefix_cache[$package]}"
if [[ -n "${_brew_prefix_cache[$cachekey]}" ]]; then
echo "${_brew_prefix_cache[$cachekey]}"
else
local result=$(brew --prefix "$package")
_brew_prefix_cache[$package]=$result
echo $result
_brew_prefix_cache["$cachekey"]="$result"
echo "$result"
fi
}
export BREW_SITEFUNS="$(brew-prefix)/share/zsh/site-functions"
fi
# Linuxbrew

4
zshrc
View File

@@ -66,6 +66,10 @@ zstyle ':completion:*:make:*' tag-order targets
if [ -d "$ZSH_COMPLETIONS" ]; then fpath=("$ZSH_COMPLETIONS" $fpath); fi
if [ -d "$DOTZSH_SITEFUNS" ]; then fpath=("$DOTZSH_SITEFUNS" $fpath); fi
if [ -d "$BREW_SITEFUNS" ]; then fpath=("$BREW_SITEFUNS" $fpath); fi
autoload -Uz compinit
compinit
# setup-completions is a helper function to setup completions for a given
# command. It takes the command name, the source of the completion, and the