branch: elpa/geiser-racket commit c8dedf37494857b4bf572e786978aa748780c019 Author: Jose Antonio Ortega Ruiz <j...@gnu.org> Commit: Jose Antonio Ortega Ruiz <j...@gnu.org>
Racket: better autodoc for syntax forms --- geiser/autodoc.rkt | 11 +++++++++-- geiser/enter.rkt | 3 ++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/geiser/autodoc.rkt b/geiser/autodoc.rkt index 0bb850d..ac66da9 100644 --- a/geiser/autodoc.rkt +++ b/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/geiser/enter.rkt b/geiser/enter.rkt index eff37f6..58be936 100644 --- a/geiser/enter.rkt +++ b/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: