diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-03-16 02:56:11 +0100 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-03-16 02:56:11 +0100 |
commit | 8368aced1d2ef98c79fb76e9cf58dc320ef89342 (patch) | |
tree | 02aef2043a99ac86d8cc63f114af5eec71681132 /elisp/geiser-impl.el | |
parent | bf174c102bb46362c78d079eaccbc14f3581d0c6 (diff) | |
download | geiser-8368aced1d2ef98c79fb76e9cf58dc320ef89342.tar.gz geiser-8368aced1d2ef98c79fb76e9cf58dc320ef89342.tar.bz2 |
Key for geiser-set-scheme in geiser-mode.
Diffstat (limited to 'elisp/geiser-impl.el')
-rw-r--r-- | elisp/geiser-impl.el | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/elisp/geiser-impl.el b/elisp/geiser-impl.el index 2cec381..cdda479 100644 --- a/elisp/geiser-impl.el +++ b/elisp/geiser-impl.el @@ -35,7 +35,7 @@ "Generic support for multiple Scheme implementations." :group 'geiser) -(defcustom geiser-impl-default-implementation 'guile +(defcustom geiser-impl-default-implementation nil "Symbol naming the default Scheme implementation." :type 'symbol :group 'geiser-impl) @@ -64,19 +64,30 @@ (let ((impl (or impl geiser-impl--implementation))) (and impl (capitalize (format "%s" impl))))) +(defsubst geiser-impl--impl-feature (impl) + (intern (format "geiser-%s" impl))) + ;;; Installing Scheme implementations: (make-variable-buffer-local (defvar geiser-impl--implementation nil)) -(defsubst geiser-impl--impl-feature (impl) - (intern (format "geiser-%s" impl))) +(defvar geiser-impl--impl-prompt-history nil) + +(defun geiser-impl--read-impl (&optional prompt impls non-req) + (let* ((impls (or impls geiser-impl--impls)) + (impls (mapcar (lambda (s) (format "%s" s)) impls)) + (prompt (or prompt "Scheme implementation: "))) + (intern (completing-read prompt impls nil (not non-req) nil + geiser-impl--impl-prompt-history + (and (car geiser-impl--impls) + (symbol-name (car geiser-impl--impls))))))) (defun geiser-impl--set-buffer-implementation (&optional impl) (let ((impl (or impl (geiser-impl--guess) - (intern (read-string "Scheme implementation: "))))) + (geiser-impl--read-impl nil nil t)))) (require (geiser-impl--impl-feature impl)) (setq geiser-impl--implementation impl) (geiser-impl--install-eval impl) @@ -174,19 +185,6 @@ implementation to be used by Geiser.")) (geiser-impl--default-implementation))) -;;; User commands: -(defvar geiser-impl--impl-prompt-history nil) - -(defun geiser-impl--read-impl (&optional prompt impls) - (let* ((impls (or impls geiser-impl--impls)) - (impls (mapcar (lambda (s) (format "%s" s)) impls)) - (prompt (or prompt "Scheme implementation: "))) - (intern (completing-read prompt impls nil t nil - geiser-impl--impl-prompt-history - (and (car geiser-impl--impls) - (symbol-name (car geiser-impl--impls))))))) - - ;;; Unload support (defun geiser-impl-unload-function () |