summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/rtx/rtx.plugin.zsh42
1 files changed, 15 insertions, 27 deletions
diff --git a/plugins/rtx/rtx.plugin.zsh b/plugins/rtx/rtx.plugin.zsh
index aaccaf015..a01828afd 100644
--- a/plugins/rtx/rtx.plugin.zsh
+++ b/plugins/rtx/rtx.plugin.zsh
@@ -1,30 +1,18 @@
-# Find where rtx should be installed
-RTX_DIR="${RTX_DIR:-$HOME/.rtx}"
-RTX_COMPLETIONS="$RTX_DIR/completions"
-
-if [[ ! -f "$RTX_DIR/rtx.sh" || ! -f "$RTX_COMPLETIONS/_rtx" ]]; then
- # If not found, check for archlinux/AUR package (/opt/rtx-vm/)
- if [[ -f "/opt/rtx-vm/rtx.sh" ]]; then
- RTX_DIR="/opt/rtx-vm"
- RTX_COMPLETIONS="$RTX_DIR"
- # If not found, check for Homebrew package
- elif (( $+commands[brew] )); then
- _RTX_PREFIX="$(brew --prefix rtx)"
- RTX_DIR="${_RTX_PREFIX}/libexec"
- RTX_COMPLETIONS="${_RTX_PREFIX}/share/zsh/site-functions"
- unset _RTX_PREFIX
- else
- return
- fi
+# rtx needs to be in $PATH
+if (( ! ${+commands[rtx]} )); then
+ return
fi
-# Load command
-if [[ -f "$RTX_DIR/rtx.sh" ]]; then
- source "$RTX_DIR/rtx.sh"
- # Load completions
- if [[ -f "$RTX_COMPLETIONS/_rtx" ]]; then
- fpath+=("$RTX_COMPLETIONS")
- autoload -Uz _rtx
- compdef _rtx rtx # compdef is already loaded before loading plugins
- fi
+# Load rtx hooks
+eval "$(rtx activate zsh)"
+
+# If the completion file doesn't exist yet, we need to autoload it and
+# bind it to `rtx`. Otherwise, compinit will have already done that.
+if [[ ! -f "$ZSH_CACHE_DIR/completions/_rtx" ]]; then
+ typeset -g -A _comps
+ autoload -Uz _rtx
+ _comps[rtx]=_rtx
fi
+
+# Generate and load rtx completion
+rtx completion zsh >! "$ZSH_CACHE_DIR/completions/_rtx" &|