diff options
| -rw-r--r-- | elisp/geiser-compile.el | 2 | ||||
| -rw-r--r-- | elisp/geiser-repl.el | 9 | 
2 files changed, 7 insertions, 4 deletions
| diff --git a/elisp/geiser-compile.el b/elisp/geiser-compile.el index 1f80e97..3897499 100644 --- a/elisp/geiser-compile.el +++ b/elisp/geiser-compile.el @@ -47,7 +47,7 @@  (defun geiser-compile--ensure-repl (force)    (when (or force -            (and (not (geiser-repl--repl-buffer-p)) +            (and (not (geiser-repl--ensure-repl-buffer))                   (yes-or-no-p "No REPL is running: start it?")))      (geiser-repl-restart-repl))) diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el index b248a88..57c4673 100644 --- a/elisp/geiser-repl.el +++ b/elisp/geiser-repl.el @@ -1085,15 +1085,18 @@ If no REPL is running, execute `geiser' to start a fresh one."        (geiser-repl-switch-to-module (geiser-eval--get-module) (current-buffer))      (geiser-repl-switch nil nil (current-buffer)))) -(defun geiser-repl--repl-buffer-p () -  (and (buffer-live-p geiser-repl--repl) geiser-repl--repl)) +(defun geiser-repl--ensure-repl-buffer () +  (unless (buffer-live-p geiser-repl--repl) +    (setq geiser-repl--repl +          (geiser-repl--repl/impl geiser-impl--implementation))) +  (buffer-live-p geiser-repl--repl))  (defun geiser-repl-restart-repl ()    "Restarts the REPL associated with the current buffer."    (interactive)    (let ((b (current-buffer))          (impl geiser-impl--implementation)) -    (when (geiser-repl--repl-buffer-p) +    (when (buffer-live-p geiser-repl--repl)        (geiser-repl--switch-to-repl nil)        (comint-kill-subjob)        (sit-for 0.1)) ;; ugly hack; but i don't care enough to fix it | 
