diff options
| -rw-r--r-- | elisp/geiser-repl.el | 30 | 
1 files changed, 16 insertions, 14 deletions
| diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el index 82ee628..17dfd45 100644 --- a/elisp/geiser-repl.el +++ b/elisp/geiser-repl.el @@ -283,24 +283,27 @@ module command as a string")    (and geiser-repl--repl         (get-buffer-process geiser-repl--repl))) -(defun geiser-repl--repl/impl (impl proj &optional repls) -  (catch 'repl -    (dolist (repl (or repls geiser-repl--repls)) -      (when (buffer-live-p repl) -        (with-current-buffer repl -          (when (and (eq geiser-impl--implementation impl) -                     (eq geiser-repl--project proj)) -            (throw 'repl repl))))))) +(defun geiser-repl--repl/impl (impl &optional proj repls) +  (let ((proj (or proj +                  geiser-repl--project +                  (geiser-repl--current-project))) +        (repls (or repls +                   geiser-repl--repls))) +    (catch 'repl +      (dolist (repl repls) +        (when (buffer-live-p repl) +          (with-current-buffer repl +            (when (and (eq geiser-impl--implementation impl) +                       (eq geiser-repl--project proj)) +              (throw 'repl repl))))))))  (defun geiser-repl--set-up-repl (impl)    (or (and (not impl) geiser-repl--repl)        (setq geiser-repl--repl              (let ((impl (or impl                              geiser-impl--implementation -                            (geiser-impl--guess))) -                  (proj (or geiser-repl--project -                            (geiser-repl--current-project)))) -              (when impl (geiser-repl--repl/impl impl proj)))))) +                            (geiser-impl--guess)))) +              (when impl (geiser-repl--repl/impl impl))))))  (defun geiser-repl--active-impls ()    (let ((act)) @@ -951,12 +954,11 @@ 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")    (let* ((impl (or impl geiser-impl--implementation)) -         (proj (geiser-repl--current-project))           (in-repl (eq major-mode 'geiser-repl-mode))           (in-live-repl (and in-repl (get-buffer-process (current-buffer))))           (repl (unless ask                   (if impl -                     (geiser-repl--repl/impl impl proj) +                     (geiser-repl--repl/impl impl)                     (or geiser-repl--repl (car geiser-repl--repls))))))      (cond (in-live-repl             (when (and (not (eq repl buffer)) | 
