From 99285f865b352ce0658cca3cd4845995af4ea71d Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Sat, 5 Jun 2010 15:26:37 +0200 Subject: Racket: better autodoc for syntax forms --- scheme/racket/geiser/autodoc.rkt | 11 +++++++++-- scheme/racket/geiser/enter.rkt | 3 ++- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'scheme') 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: -- cgit v1.2.3