107 lines
3 KiB
Bash
107 lines
3 KiB
Bash
#!/usr/bin/env zsh
|
|
|
|
eval "$_z4h_opt"
|
|
|
|
if [[ -v _z4h_compinit_fd ]]; then
|
|
zle -F $_z4h_compinit_fd
|
|
exec {_z4h_compinit_fd}>&-
|
|
unset _z4h_compinit_fd
|
|
fi
|
|
|
|
unfunction compdef
|
|
|
|
local -aU editors=(
|
|
vi vim nvim emacs nano gedit code kak kate mcedit joe $EDITOR $VISUAL
|
|
bat cat less more $PAGER)
|
|
zstyle ':completion:*:*:('${(j:|:)editors}'):*:*' ignored-patterns '*.zwc'
|
|
|
|
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
|
|
|
|
(( _z4h_use[zsh-completions] )) &&
|
|
[[ -d $Z4H/zsh-completions/src ]] &&
|
|
fpath+=($Z4H/zsh-completions/src)
|
|
(( _z4h_use[systemd] )) &&
|
|
[[ -e $Z4H/systemd/shell-completion/zsh/_systemctl && -z ${^fpath}/_systemctl(#qN) ]] &&
|
|
fpath+=($Z4H/systemd/shell-completion/zsh)
|
|
|
|
if (( !_z4h_dangerous_root )) && zstyle -t ':completion::complete:' use-cache; then
|
|
local cache
|
|
zstyle -s ':completion::complete:' cache-path cache
|
|
: ${cache:=${ZDOTDIR:-~}/.zcompcache}
|
|
if [[ ! -e $cache ]]; then
|
|
zf_mkdir -m 0700 -p -- $cache
|
|
fi
|
|
fi
|
|
|
|
local dump
|
|
zstyle -s ':z4h:compinit' dump-path dump
|
|
: ${dump:=$Z4H/cache/zcompdump-$EUID-$ZSH_VERSION}
|
|
|
|
local -a stat files=(${^fpath}/^([^_]*|*~|*.zwc)(-.N))
|
|
(( ! $#files )) || zstat -A stat +mtime -- $files
|
|
local real_sig=($ZSH_VERSION $ZSH_PATCHLEVEL $files $stat)
|
|
real_sig='# '${(V)${(pj:\0:)real_sig}}$'\n'
|
|
|
|
local sig
|
|
if [[ -r $dump ]] &&
|
|
sysread -s $#real_sig sig <$dump &&
|
|
[[ $sig == $real_sig && -r $dump.zwc ]] &&
|
|
zstat -A stat +mtime -- $dump $dump.zwc &&
|
|
(( stat[2] == stat[1] + 1 )); then
|
|
-z4h-compinit-impl -C -d $dump
|
|
else
|
|
local tmp=$Z4H/tmp/zcompdump.$sysparams[pid]
|
|
zf_rm -f -- $dump $dump.zwc $tmp $tmp.2
|
|
-z4h-compinit-impl -C -d $tmp
|
|
{ print -rn -- $real_sig; <$tmp } >$tmp.2
|
|
zf_rm -f -- $tmp
|
|
zf_mv -- $tmp.2 $dump
|
|
-z4h-compile $dump
|
|
fi
|
|
|
|
# Replay compdef calls.
|
|
local args
|
|
for args in $_z4h_compdef; do
|
|
compdef "${(@0)args}"
|
|
done
|
|
unset _z4h_compdef
|
|
|
|
local cmd
|
|
for cmd in helm kitty kubectl oc; do
|
|
# Homebrew ships broken completions for kubectl, so we use our own even
|
|
# if _comps[kubectl] is set.
|
|
#
|
|
# TODO: what about the rest of them in the list? Move them below?
|
|
[[ -v commands[$cmd] ]] && compdef -- -z4h-complete-$cmd $cmd
|
|
done
|
|
|
|
for cmd in cargo bw gh rustup; do
|
|
if [[ -v commands[$cmd] && ! -v _comps[$cmd] ]]; then
|
|
compdef -- -z4h-complete-$cmd $cmd
|
|
fi
|
|
done
|
|
|
|
for cmd in terraform vault packer; do
|
|
if [[ -v commands[$cmd] && ! -v _comps[$cmd] ]]; then
|
|
complete -o nospace -C =$cmd $cmd
|
|
fi
|
|
done
|
|
|
|
if [[ -v commands[aws_completer] && ! -v _comps[aws] ]]; then
|
|
complete -C =aws_completer aws
|
|
fi
|
|
|
|
if [[ -v commands[gcloud] && ! -v _comps[gcloud] ]]; then
|
|
local dirs=(
|
|
${HOMEBREW_PREFIX:+$HOMEBREW_PREFIX/share/google-cloud-sdk}
|
|
~/google-cloud-sdk
|
|
/usr/share/google-cloud-sdk
|
|
/snap/google-cloud-sdk/current
|
|
/snap/google-cloud-cli/current
|
|
/usr/lib/google-cloud-sdk
|
|
/usr/lib64/google-cloud-sdk
|
|
/opt/google-cloud-sdk
|
|
/opt/local/libexec/google-cloud-sdk
|
|
)
|
|
source -- $^dirs/completion.zsh.inc(-.Ne'<[[ -r ${REPLY:a} ]]>') /dev/null
|
|
fi
|