summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--elisp/geiser-impl.el15
1 files changed, 15 insertions, 0 deletions
diff --git a/elisp/geiser-impl.el b/elisp/geiser-impl.el
index c148920..58cd089 100644
--- a/elisp/geiser-impl.el
+++ b/elisp/geiser-impl.el
@@ -234,6 +234,21 @@ implementation to be used by Geiser."))
(geiser-impl--default-implementation)))
+;;; User commands
+
+(defun geiser-register-implementation ()
+ "Register a new Scheme implementation."
+ (interactive)
+ (let ((current geiser-impl-installed-implementations)
+ (impl (geiser-impl--read-impl "New implementation: " nil t)))
+ (unless (geiser-impl--register impl)
+ (error "geiser-%s.el not found in load-path"))
+ (when (and (not (memq impl current))
+ (y-or-n-p "Remember this implementation using customize? "))
+ (customize-save-variable
+ 'geiser-impl-installed-implementations (cons impl current)))))
+
+
;;; Unload support
(defun geiser-impl-unload-function ()