From aa3b4233fd2ce19bd3de6759173172e014ef2f63 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Mon, 11 Oct 2010 02:25:34 +0200 Subject: Guile: remote REPLs (connect-to-guile) geiser-connect (or its specialisation, connect-to-guile) working for Guile, where the external process is started with the new --listen flag. --- elisp/geiser-guile.el | 12 +++++++++++- elisp/geiser.el | 3 +++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'elisp') diff --git a/elisp/geiser-guile.el b/elisp/geiser-guile.el index 7dfb9ad..d831bbf 100644 --- a/elisp/geiser-guile.el +++ b/elisp/geiser-guile.el @@ -101,7 +101,7 @@ This function uses `geiser-guile-init-file' if it exists." (let ((init-file (and (stringp geiser-guile-init-file) (expand-file-name geiser-guile-init-file)))) `(,@(and (listp geiser-guile-binary) (cdr geiser-guile-binary)) - "-q" "-L" ,(expand-file-name "guile/" geiser-scheme-dir) + "-q" ,@(apply 'append (mapcar (lambda (p) (list "-L" p)) geiser-guile-load-path)) ,@(and init-file (file-readable-p init-file) (list "-l" init-file))))) @@ -223,6 +223,13 @@ The new level is set using the value of `geiser-guile-warning-level'." (geiser evaluation)))) (geiser-eval--send/result code))) +(defun connect-to-guile () + "Start a Guile REPL connected to a remote process. + +Start the external Guile process with the flag --listen to make +it spawn a server thread." + (geiser-connect 'guile)) + (defun geiser-guile--startup () (set (make-local-variable 'compilation-error-regexp-alist) `((,geiser-guile--path-rx geiser-guile--resolve-file-x) @@ -232,6 +239,9 @@ The new level is set using the value of `geiser-guile-warning-level'." (font-lock-add-keywords nil `((,geiser-guile--path-rx 1 compilation-error-face))) + (geiser-eval--send/result + `(:scm ,(format "(set! %%load-path (cons %S %%load-path))" + (expand-file-name "guile/" geiser-scheme-dir)))) (geiser-guile-update-warning-level)) diff --git a/elisp/geiser.el b/elisp/geiser.el index a64a20d..d40b6a8 100644 --- a/elisp/geiser.el +++ b/elisp/geiser.el @@ -48,6 +48,9 @@ (autoload 'switch-to-guile "geiser-guile" "Start a Geiser Guile REPL, or switch to a running one." t) +(autoload 'connect-to-guile "geiser-guile" + "Connect to a remote Geiser Guile REPL." t) + (autoload 'run-racket "geiser-racket" "Start a Geiser Racket REPL." t) (autoload 'run-gracket "geiser-racket" "Start a Geiser GRacket REPL." t) -- cgit v1.2.3