diff options
| -rw-r--r-- | elisp/geiser-mode.el | 12 | ||||
| -rw-r--r-- | elisp/geiser-repl.el | 14 | 
2 files changed, 20 insertions, 6 deletions
| diff --git a/elisp/geiser-mode.el b/elisp/geiser-mode.el index 77feeec..b6d083a 100644 --- a/elisp/geiser-mode.el +++ b/elisp/geiser-mode.el @@ -41,6 +41,12 @@ scheme buffers."    :group 'geiser-mode    :type 'boolean) +(geiser-custom--defcustom geiser-mode-start-repl-p nil +  "Whether a REPL should be automatically started if one is not +active when `geiser-mode' is activated in a buffer." +  :group 'geiser-mode +  :type 'boolean) +  (geiser-custom--defcustom geiser-mode-autodoc-p t    "Whether `geiser-autodoc-mode' gets enabled by default in Scheme buffers."    :group 'geiser-mode @@ -258,7 +264,11 @@ interacting with the Geiser REPL is at your disposal.      (geiser-autodoc-mode (if geiser-mode 1 -1)))    (when geiser-mode-smart-tab-p      (geiser-smart-tab-mode (if geiser-mode 1 -1))) -  (geiser-syntax--add-kws)) +  (geiser-syntax--add-kws) +  (when (and geiser-mode +             geiser-mode-start-repl-p +             (not (geiser-repl--connection*))) +    (save-current-buffer (switch-to-geiser))))  (defun turn-on-geiser-mode ()    "Enable `geiser-mode' (in a Scheme buffer)." 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") | 
