summaryrefslogtreecommitdiff
path: root/scheme/geiser/introspection.scm
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-02-10 01:08:04 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-02-10 01:08:04 +0100
commit052e7fb476f018e1426e1bd9394d4fe63db33f45 (patch)
treec10c7c5bc02be35e43a61dd0bfd91b9794a1e0ee /scheme/geiser/introspection.scm
parent0490e6d2047aa97be3a0b3e34075557666336679 (diff)
downloadgeiser-guile-052e7fb476f018e1426e1bd9394d4fe63db33f45.tar.gz
geiser-guile-052e7fb476f018e1426e1bd9394d4fe63db33f45.tar.bz2
Optionally show procedure modules in autodoc.
Diffstat (limited to 'scheme/geiser/introspection.scm')
-rw-r--r--scheme/geiser/introspection.scm19
1 files changed, 11 insertions, 8 deletions
diff --git a/scheme/geiser/introspection.scm b/scheme/geiser/introspection.scm
index ae2b0d3..991b62d 100644
--- a/scheme/geiser/introspection.scm
+++ b/scheme/geiser/introspection.scm
@@ -44,28 +44,31 @@
(let* ((arity (program-arity program))
(arg-no (first arity))
(opt (> (second arity) 0))
- (args (map first (take (program-bindings program) arg-no))))
- (format-args (if opt (drop-right args 1) args) (and opt (last args)))))
+ (args (map first (take (program-bindings program) arg-no)))
+ (module (program-module program)))
+ (format-args (if opt (drop-right args 1) args) (and opt (last args)) module)))
(define (procedure-args proc)
(let* ((arity (procedure-property proc 'arity))
(req (first arity))
- (opt (third arity)))
+ (opt (third arity))
+ (env (procedure-environment proc)))
(format-args (map (lambda (n)
(string->symbol (format "arg~A" (+ 1 n))))
(iota req))
- (and opt 'rest))))
+ (and opt 'rest)
+ (and (not (null? env)) env))))
(define (macro-args macro)
(let ((prog (macro-transformer macro)))
(if prog
(program-args prog)
- (format-args '(...) #f))))
+ (format-args '(...) #f #f))))
-(define (foobar) 6)
-(define (format-args args opt)
+(define (format-args args opt module)
(list (cons 'required args)
- (cons 'optional (or opt '()))))
+ (cons 'optional (or opt '()))
+ (cons 'module (if module (module-name module) '()))))
(define (completions prefix)
(map symbol->string (apropos-internal (string-append "^" prefix))))