summaryrefslogtreecommitdiff
path: root/scheme/racket/geiser/autodoc.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'scheme/racket/geiser/autodoc.rkt')
-rw-r--r--scheme/racket/geiser/autodoc.rkt11
1 files changed, 9 insertions, 2 deletions
diff --git a/scheme/racket/geiser/autodoc.rkt b/scheme/racket/geiser/autodoc.rkt
index 0bb850d..ac66da9 100644
--- a/scheme/racket/geiser/autodoc.rkt
+++ b/scheme/racket/geiser/autodoc.rkt
@@ -98,10 +98,10 @@
(`(define-syntax-rule (,name . ,formals) . ,_)
(add-signature! name formals store))
(`(define-syntax ,name (syntax-rules ,specials . ,clauses))
- (for-each (lambda (c) (add-signature! name (cdar c) store))
+ (for-each (lambda (c) (add-syntax-signature! name (cdar c) store))
(reverse clauses)))
(`(define-syntax ,name (lambda ,_ (syntax-case ,_ . ,clauses)))
- (for-each (lambda (c) (add-signature! name (cdar c) store))
+ (for-each (lambda (c) (add-syntax-signature! name (cdar c) store))
(reverse clauses)))
(_ void))))
@@ -112,6 +112,13 @@
(cons (parse-formals formals)
(hash-ref store name '())))))
+(define (add-syntax-signature! name formals store)
+ (when (symbol? name)
+ (hash-set! store
+ name
+ (cons (make-signature formals '() '() #f)
+ (hash-ref store name '())))))
+
(define (parse-formals formals)
(let loop ((formals formals) (req '()) (opt '()) (keys '()))
(cond ((null? formals)