diff options
Diffstat (limited to 'geiser')
| -rw-r--r-- | geiser/emacs.scm | 3 | ||||
| -rw-r--r-- | geiser/eval.scm | 6 | ||||
| -rw-r--r-- | geiser/introspection.scm | 11 | 
3 files changed, 12 insertions, 8 deletions
| diff --git a/geiser/emacs.scm b/geiser/emacs.scm index 0f7b7c7..b5ba284 100644 --- a/geiser/emacs.scm +++ b/geiser/emacs.scm @@ -32,7 +32,8 @@                 ge:load-file                 ge:docstring                 ge:all-modules -               ge:module-children) +               ge:module-children +               ge:module-location)    #:use-module ((geiser introspection)                  :renamer (symbol-prefix-proc 'ge:))    #:use-module ((geiser eval) diff --git a/geiser/eval.scm b/geiser/eval.scm index 0e3c7dc..a74bf29 100644 --- a/geiser/eval.scm +++ b/geiser/eval.scm @@ -26,7 +26,8 @@  (define-module (geiser eval)    #:export (eval-in comp-file load-file) -  #:use-module (srfi srfi-1)) +  #:use-module (srfi srfi-1) +  #:no-backtrace)  (define (eval-in form module-name)    "Evals @var{form} in the module designated by @var{module-name}. @@ -35,7 +36,8 @@ 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  SUBR, MSG and REST." -  (let ((module (or (and module-name (resolve-module module-name)) +  (let ((module (or (and (list? module-name) +                         (resolve-module module-name))                      (current-module))))      (catch #t        (lambda () diff --git a/geiser/introspection.scm b/geiser/introspection.scm index 110ab01..2021a32 100644 --- a/geiser/introspection.scm +++ b/geiser/introspection.scm @@ -30,7 +30,8 @@              symbol-location              docstring              all-modules -            module-children) +            module-children +            module-location)    #:use-module (system vm program)    #:use-module (ice-9 session)    #:use-module (ice-9 documentation) @@ -114,8 +115,11 @@                (apropos-internal (string-append "^" prefix)))           string<?)) +(define (module-location name) +  (make-location (module-filename name) #f)) +  (define (symbol-location sym) -  (cond ((symbol-module sym) => make-location-from-module-name) +  (cond ((symbol-module sym) => module-location)          (else '())))  (define (make-location file line) @@ -124,9 +128,6 @@  (define module-filename (@@ (ice-9 session) module-filename)) -(define (make-location-from-module-name name) -  (make-location (module-filename name) #f)) -  (define (display-docstring sym)    (let ((obj (symbol->obj sym)))      (if obj | 
