summaryrefslogtreecommitdiff
path: root/geiser
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-08-17 16:23:45 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-08-17 16:24:16 +0200
commit12a6a2e7e41226393f41b8ff9cc02446c1931402 (patch)
tree0c7de0787bf042823e504ccd2555105ba6533b40 /geiser
parent4e1d945d26deb751fce01a8be4a55a6934691f96 (diff)
downloadgeiser-guile-12a6a2e7e41226393f41b8ff9cc02446c1931402.tar.gz
geiser-guile-12a6a2e7e41226393f41b8ff9cc02446c1931402.tar.bz2
Well, i said that it was better, not that it was perfect.
Autodoc buglets and support for displaying module variables too.
Diffstat (limited to 'geiser')
-rw-r--r--geiser/doc.scm16
1 files changed, 10 insertions, 6 deletions
diff --git a/geiser/doc.scm b/geiser/doc.scm
index d951f1c..bc4acd9 100644
--- a/geiser/doc.scm
+++ b/geiser/doc.scm
@@ -37,6 +37,8 @@
#:use-module (oop goops)
#:use-module (srfi srfi-1))
+(define *an-object* #t)
+
(define (autodoc ids)
(if (not (list? ids))
'()
@@ -59,17 +61,19 @@
((list? args) args)
(else (list args)))))
`(,id
- (required ,@(arglst 'required))
- (optional ,@(arglst 'optional)
- ,@(let ((rest (assq-ref args 'rest)))
- (if rest (list "...") '())))
- (key ,@(arglst 'keyword))))
+ (args ,@(if (list? args)
+ `((required ,@(arglst 'required))
+ (optional ,@(arglst 'optional)
+ ,@(let ((rest (assq-ref args 'rest)))
+ (if rest (list "...") '())))
+ (key ,@(arglst 'keyword)))
+ '()))))
(define (obj-args obj)
(cond ((not obj) #f)
((or (procedure? obj) (program? obj)) (arguments obj))
((macro? obj) (or (obj-args (macro-transformer obj)) '((required ...))))
- (else #f)))
+ (else 'variable)))
(define (arguments proc)
(cond