From f7933808a65321ad07ef74db6fc5384ade5db3e9 Mon Sep 17 00:00:00 2001 From: claytharrison Date: Mon, 6 Jan 2025 19:30:18 +0100 Subject: [PATCH] Cache micromamba--buffer-env, check file-remote-p --- micromamba.el | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/micromamba.el b/micromamba.el index 7f45bc0..e630c62 100644 --- a/micromamba.el +++ b/micromamba.el @@ -202,18 +202,25 @@ Returns an alist with the following keys: (micromamba--get-name-from-env-yml-contents (micromamba--read-file-into-string filename))))))) +(defvar-local micromamba--buffer-env nil + "The environment to autoactivate for the buffer.") + (defun micromamba--infer-env-from-buffer () ;; adapted from conda.el "Search up the project tree for an `environment.yml` defining a conda env. Return `micromamba-fallback-environment' if not found." - (let* ((filename (buffer-file-name)) - (working-dir (if filename - (file-name-directory filename) - default-directory))) - (when working-dir - (or - (micromamba--get-name-from-env-yml (micromamba--find-env-yml working-dir)) - micromamba-fallback-environment)))) + (if (file-remote-p buffer-file-name) + micromamba-fallback-environment + (or micromamba--buffer-env + (setq micromamba--buffer-env + (let* ((filename (buffer-file-name)) + (working-dir (if filename + (file-name-directory filename) + default-directory))) + (when working-dir + (or + (micromamba--get-name-from-env-yml (micromamba--find-env-yml working-dir)) + micromamba-fallback-environment))))))) (defun micromamba--get-activation-parameters (prefix) "Get activation parameters for the environment PREFIX.