From 30a8a5d3e2f36e395c439c3346ef96e40e7bd277 Mon Sep 17 00:00:00 2001
From: Marc Cornellà <hello@mcornella.com>
Date: Mon, 9 Oct 2023 17:53:00 +0200
Subject: fix(rtx): fix `rtx` init procedure (#11949)

---
 plugins/rtx/rtx.plugin.zsh | 42 +++++++++++++++---------------------------
 1 file changed, 15 insertions(+), 27 deletions(-)

(limited to 'plugins')

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" &|
-- 
cgit v1.2.3-70-g09d2