summaryrefslogtreecommitdiff
path: root/elisp/geiser-repl.el
diff options
context:
space:
mode:
Diffstat (limited to 'elisp/geiser-repl.el')
-rw-r--r--elisp/geiser-repl.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el
index 0b4fe54..1d1b317 100644
--- a/elisp/geiser-repl.el
+++ b/elisp/geiser-repl.el
@@ -376,12 +376,15 @@ module command as a string")
(overlay-end comint-last-prompt-overlay)
t)))))
-(defun geiser-repl--connection ()
+(defun geiser-repl--connection* ()
(let ((buffer (geiser-repl--set-up-repl geiser-impl--implementation)))
- (or (and (buffer-live-p buffer)
- (get-buffer-process buffer)
- (with-current-buffer buffer geiser-repl--connection))
- (error "No Geiser REPL for this buffer (try M-x run-geiser)"))))
+ (and (buffer-live-p buffer)
+ (get-buffer-process buffer)
+ (with-current-buffer buffer geiser-repl--connection))))
+
+(defun geiser-repl--connection ()
+ (or (geiser-repl--connection*)
+ (error "No Geiser REPL for this buffer (try M-x run-geiser)")))
(setq geiser-eval--default-connection-function 'geiser-repl--connection)
@@ -677,6 +680,7 @@ buffer."
(defun switch-to-geiser (&optional ask impl buffer)
"Switch to running Geiser REPL.
+
With prefix argument, ask for which one if more than one is running.
If no REPL is running, execute `run-geiser' to start a fresh one."
(interactive "P")