summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--elisp/geiser-eval.el5
-rw-r--r--elisp/geiser-repl.el2
-rw-r--r--scheme/guile/geiser/emacs.scm (renamed from scheme/geiser/emacs.scm)9
-rw-r--r--scheme/guile/geiser/eval.scm (renamed from scheme/geiser/eval.scm)10
-rw-r--r--scheme/guile/geiser/introspection.scm (renamed from scheme/geiser/introspection.scm)0
5 files changed, 19 insertions, 7 deletions
diff --git a/elisp/geiser-eval.el b/elisp/geiser-eval.el
index 38b1f7f..7a729cf 100644
--- a/elisp/geiser-eval.el
+++ b/elisp/geiser-eval.el
@@ -39,7 +39,7 @@
((eq code :t) "#t")
((listp code)
(cond ((eq (car code) :gs) (geiser-eval--gs (cdr code)))
- ((eq (car code) :ge) (format "(@ (geiser emacs) %s)" (cadr code)))
+ ((eq (car code) :ge) (geiser-eval--ge (cadr code)))
((eq (car code) :scm) (cadr code))
(t (concat "(" (mapconcat 'geiser-eval--scheme-str code " ") ")"))))
((symbolp code) (format "%s" code))
@@ -54,6 +54,9 @@
(geiser-syntax--buffer-module))
"))"))
+(defsubst geiser-eval--ge (proc)
+ (format "(@ (geiser emacs) ge:%s)" proc))
+
;;; Code sending:
diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el
index 96743f4..fcc0daa 100644
--- a/elisp/geiser-repl.el
+++ b/elisp/geiser-repl.el
@@ -76,7 +76,7 @@ the Geiser REPL buffer."
(current-buffer)
guile
nil
- "-L" geiser-scheme-dir "-q")
+ "-L" (concat geiser-scheme-dir "/guile/") "-q")
(geiser-repl--wait-for-prompt 10000)
(geiser-con--setup-connection (current-buffer))))
diff --git a/scheme/geiser/emacs.scm b/scheme/guile/geiser/emacs.scm
index ea74220..318b07a 100644
--- a/scheme/geiser/emacs.scm
+++ b/scheme/guile/geiser/emacs.scm
@@ -25,8 +25,13 @@
;;; Code:
(define-module (geiser emacs)
- #:re-export (proc-args completions)
- #:use-module (geiser introspection))
+ #:re-export (ge:proc-args
+ ge:completions
+ ge:compile-file)
+ #:use-module ((geiser introspection)
+ :renamer (symbol-prefix-proc 'ge:))
+ #:use-module ((geiser eval)
+ :select ((comp-file . ge:compile-file))))
;;; emacs.scm ends here
diff --git a/scheme/geiser/eval.scm b/scheme/guile/geiser/eval.scm
index b7c5eef..7d82f7d 100644
--- a/scheme/geiser/eval.scm
+++ b/scheme/guile/geiser/eval.scm
@@ -25,12 +25,12 @@
;;; Code:
(define-module (geiser eval)
- #:export (eval-in)
+ #:export (eval-in comp-file)
#:use-module (srfi srfi-1))
(define (eval-in form module-name)
- "Evals FORM in the module designated by MODULE-NAME.
-If MODULE-NAME is #f or resolution fails, the current module is used instead.
+ "Evals @var{form} in the module designated by @var{module-name}.
+If @var{module-name} is @var{#f} or resolution fails, the current module is used instead.
The result is a list of the form ((RESULT . <form-value>) (OUTPUT . <string>))
if no evaluation error happens, or ((ERROR (KEY . <error-key>) <error-arg>...))
in case of errors. Each error arg is a cons (NAME . VALUE), where NAME includes
@@ -62,4 +62,8 @@ SUBR, MSG and REST."
(cons 'msg (if msg (apply format (cons #f (cons msg margs))) '()))
(cons 'rest (or rest '())))))
+(define (comp-file path)
+ "Compile and load file, given its full @var{path}."
+ (compile-file path))
+
;;; eval.scm ends here
diff --git a/scheme/geiser/introspection.scm b/scheme/guile/geiser/introspection.scm
index 4565464..4565464 100644
--- a/scheme/geiser/introspection.scm
+++ b/scheme/guile/geiser/introspection.scm