From a64467da658c51b7a282a21b61e6f6fc19f592c4 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Mon, 16 Feb 2009 22:21:28 +0100 Subject: New command to open module file. --- geiser/emacs.scm | 3 ++- geiser/eval.scm | 6 ++++-- geiser/introspection.scm | 11 ++++++----- 3 files changed, 12 insertions(+), 8 deletions(-) (limited to 'geiser') 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 . ) (OUTPUT . )) if no evaluation error happens, or ((ERROR (KEY . ) ...)) 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 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 -- cgit v1.2.3