diff options
Diffstat (limited to 'elisp/geiser-racket.el')
-rw-r--r-- | elisp/geiser-racket.el | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/elisp/geiser-racket.el b/elisp/geiser-racket.el index c32bcc9..8c66e67 100644 --- a/elisp/geiser-racket.el +++ b/elisp/geiser-racket.el @@ -150,7 +150,8 @@ This function uses `geiser-racket-init-file' if it exists." (format "(require %s)" module))) (defun geiser-racket--exit-command () - (not (geiser-eval--send/result '(:eval (exit) geiser/emacs)))) + (comint-send-eof) + (get-buffer-process (current-buffer))) (defconst geiser-racket--binding-forms '(for for/list for/hash for/hasheq for/and for/or @@ -168,7 +169,7 @@ This function uses `geiser-racket-init-file' if it exists." (defsubst geiser-racket--get-help (symbol module) (geiser-eval--send/wait - `(:eval (get-help ',symbol (:module ,module)) geiser/autodoc))) + `(:eval (get-help ',symbol '(:module ,module)) geiser/autodoc))) (defun geiser-racket--external-help (id module) (message "Requesting help for '%s'..." id) @@ -222,6 +223,18 @@ This function uses `geiser-racket-init-file' if it exists." (geiser-racket--explicit-module))) +;;; Remote REPLs + +(defun connect-to-racket () + "Start a Racket REPL connected to a remote process. + +The remote process needs to be running a REPL server started +using start-geiser, a procedure in the geiser/server module." + (interactive) + (geiser-connect 'racket)) + + + ;;; Implementation definition: (define-geiser-implementation racket @@ -229,6 +242,7 @@ This function uses `geiser-racket-init-file' if it exists." (binary geiser-racket--binary) (arglist geiser-racket--parameters) (startup) + (eot-regexp "\0") (prompt-regexp geiser-racket--prompt-regexp) (marshall-procedure geiser-racket--geiser-procedure) (find-module geiser-racket--get-module) |