You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.4 KiB
48 lines
1.4 KiB
if (( $+commands[asdf] )); then |
|
export ASDF_DATA_DIR="${ASDF_DATA_DIR:-$HOME/.asdf}" |
|
path=("$ASDF_DATA_DIR/shims" $path) |
|
|
|
# If the completion file doesn't exist yet, we need to autoload it and |
|
# bind it to `asdf`. Otherwise, compinit will have already done that. |
|
if [[ ! -f "$ZSH_CACHE_DIR/completions/_asdf" ]]; then |
|
typeset -g -A _comps |
|
autoload -Uz _asdf |
|
_comps[asdf]=_asdf |
|
fi |
|
asdf completion zsh >| "$ZSH_CACHE_DIR/completions/_asdf" &| |
|
|
|
return |
|
fi |
|
|
|
# TODO:(2025-02-12): remove deprecated asdf <0.16 code |
|
|
|
# Find where asdf should be installed |
|
ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}" |
|
ASDF_COMPLETIONS="$ASDF_DIR/completions" |
|
|
|
if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/_asdf" ]]; then |
|
# If not found, check for archlinux/AUR package (/opt/asdf-vm/) |
|
if [[ -f "/opt/asdf-vm/asdf.sh" ]]; then |
|
ASDF_DIR="/opt/asdf-vm" |
|
ASDF_COMPLETIONS="$ASDF_DIR" |
|
# If not found, check for Homebrew package |
|
elif (( $+commands[brew] )); then |
|
_ASDF_PREFIX="$(brew --prefix asdf)" |
|
ASDF_DIR="${_ASDF_PREFIX}/libexec" |
|
ASDF_COMPLETIONS="${_ASDF_PREFIX}/share/zsh/site-functions" |
|
unset _ASDF_PREFIX |
|
else |
|
return |
|
fi |
|
fi |
|
|
|
# Load command |
|
if [[ -f "$ASDF_DIR/asdf.sh" ]]; then |
|
source "$ASDF_DIR/asdf.sh" |
|
# Load completions |
|
if [[ -f "$ASDF_COMPLETIONS/_asdf" ]]; then |
|
fpath+=("$ASDF_COMPLETIONS") |
|
autoload -Uz _asdf |
|
compdef _asdf asdf # compdef is already loaded before loading plugins |
|
fi |
|
fi
|
|
|