diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-02-14 14:07:08 +0100 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-02-14 14:07:08 +0100 |
commit | 8cd52599b79c2715f520f18a47b5198945e44187 (patch) | |
tree | 991f0a28d61960221dfffd1bbe69b29e99b11982 /geiser | |
parent | af1c5a38ba4b352837bcba85142332ec3e46f99a (diff) | |
download | geiser-guile-8cd52599b79c2715f520f18a47b5198945e44187.tar.gz geiser-guile-8cd52599b79c2715f520f18a47b5198945e44187.tar.bz2 |
Small autodoc fixes.
Diffstat (limited to 'geiser')
-rw-r--r-- | geiser/introspection.scm | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/geiser/introspection.scm b/geiser/introspection.scm index a158d66..cd48740 100644 --- a/geiser/introspection.scm +++ b/geiser/introspection.scm @@ -25,19 +25,19 @@ ;;; Code: (define-module (geiser introspection) - #:export (arguments completions symbol-location) + #:export (arguments completions symbol-location docstring) #:use-module (system vm program) #:use-module (ice-9 session) #:use-module (srfi srfi-1)) (define (arguments sym . syms) (let loop ((sym sym) (syms syms)) - (cond ((obj-args (resolve-symbol sym)) => (lambda (args) (cons sym args))) + (cond ((obj-args (symbol->obj sym)) => (lambda (args) (cons sym args))) ((null? syms) #f) (else (loop (car syms) (cdr syms)))))) -(define (resolve-symbol sym) - (module-ref (current-module) sym)) +(define (symbol->obj sym) + (and (symbol? sym) (module-ref (current-module) sym))) (define (obj-args obj) (cond ((not obj) #f) @@ -80,9 +80,11 @@ (define (procedure-args-from-source name src) (let ((formals (cadr src))) (cond ((list? formals) (format-args formals #f (symbol-module name))) - ((pair? formals) (format-args (car formals) - (cdr formals) - (symbol-module name))) + ((pair? formals) (let ((req (car formals)) + (opt (cdr formals))) + (format-args (if (list? req) req (list req)) + opt + (symbol-module name)))) (else #f)))) (define (macro-args macro) |