branch: elpa/aidermacs
commit 983420c522774e9d7a3bd63202919cf3cc8cceeb
Author: Mingde (Matthew) Zeng <matthew...@posteo.net>
Commit: Mingde (Matthew) Zeng <matthew...@posteo.net>

    Add aidermacs--cached-version
    
    Signed-off-by: Mingde (Matthew) Zeng <matthew...@posteo.net>
---
 aidermacs.el | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/aidermacs.el b/aidermacs.el
index 6af003bc37..c6d8d2efca 100644
--- a/aidermacs.el
+++ b/aidermacs.el
@@ -89,14 +89,27 @@ When nil, disable auto-commits requiring manual git 
commits."
 When nil, require explicit confirmation before applying changes."
   :type 'boolean)
 
+(defvar aidermacs--cached-version nil
+  "Cached aider version to avoid repeated version checks.")
+
 (defun aidermacs--check-aider-version ()
   "Check the installed aider version.
-Returns a version string like \"0.77.0\" or nil if version can't be 
determined."
-  (with-temp-buffer
-    (when (= 0 (call-process aidermacs-program nil t nil "--version"))
-      (goto-char (point-min))
-      (when (re-search-forward "aider \\([0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t)
-        (match-string 1)))))
+Returns a version string like \"0.77.0\" or nil if version can't be determined.
+Uses cached version if available to avoid repeated process calls."
+  (or aidermacs--cached-version
+      (setq aidermacs--cached-version
+            (with-temp-buffer
+              (when (= 0 (call-process aidermacs-program nil t nil 
"--version"))
+                (goto-char (point-min))
+                (when (re-search-forward "aider 
\\([0-9]+\\.[0-9]+\\.[0-9]+\\)" nil t)
+                  (match-string 1)))))))
+
+(defun aidermacs-clear-version-cache ()
+  "Clear the cached aider version.
+Call this after upgrading aider to ensure the correct version is detected."
+  (interactive)
+  (setq aidermacs--cached-version nil)
+  (message "Aider version cache cleared."))
 
 (defun aidermacs--version-greater-equal (v1 v2)
   "Return t if version V1 is greater than or equal to V2."

Reply via email to