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."