diff options
Diffstat (limited to 'scheme')
-rw-r--r-- | scheme/racket/geiser/autodoc.rkt | 11 | ||||
-rw-r--r-- | scheme/racket/geiser/enter.rkt | 3 |
2 files changed, 11 insertions, 3 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) diff --git a/scheme/racket/geiser/enter.rkt b/scheme/racket/geiser/enter.rkt index eff37f6..58be936 100644 --- a/scheme/racket/geiser/enter.rkt +++ b/scheme/racket/geiser/enter.rkt @@ -64,7 +64,8 @@ (get-timestamp path) (if code (apply append - (map cdr (module-compiled-imports code))) + (map cdr + (module-compiled-imports code))) null))]) (hash-set! loaded path mod)) ;; Evaluate the module: |