summaryrefslogtreecommitdiff
path: root/elisp/geiser-impl.el
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-16 02:56:11 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-16 02:56:11 +0100
commit8368aced1d2ef98c79fb76e9cf58dc320ef89342 (patch)
tree02aef2043a99ac86d8cc63f114af5eec71681132 /elisp/geiser-impl.el
parentbf174c102bb46362c78d079eaccbc14f3581d0c6 (diff)
downloadgeiser-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.el32
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 ()