[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-racket 1c3ae9f 018/191: Racket: showing contracts i
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-racket 1c3ae9f 018/191: Racket: showing contracts in module documentation. |
Date: |
Sun, 1 Aug 2021 18:31:52 -0400 (EDT) |
branch: elpa/geiser-racket
commit 1c3ae9f28f1495aca89968313702cfca04cc6831
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>
Racket: showing contracts in module documentation.
---
geiser/modules.rkt | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/geiser/modules.rkt b/geiser/modules.rkt
index 0ab372a..6ed2ecc 100644
--- a/geiser/modules.rkt
+++ b/geiser/modules.rkt
@@ -138,24 +138,30 @@
module-cache)
(define (module-exports mod)
+ (define (value id) (dynamic-require mod id (const #f)))
+ (define (contracted id)
+ (let ([v (value id)])
+ (if (has-contract? v)
+ (cons id (contract-name (value-contract v)))
+ id)))
(define (extract-ids ls)
(append-map (lambda (idls)
(map car (cdr idls)))
ls))
- (define (classify-ids ids ns)
+ (define (classify-ids ids)
(let loop ([ids ids] [procs '()] [vars '()])
(cond [(null? ids)
- `((procs ,@(reverse procs)) (vars ,@(reverse vars)))]
- [(procedure?
- (namespace-variable-value (car ids) #t (const #f) ns))
+ `((procs ,@(map contracted (reverse procs)))
+ (vars ,@(map contracted (reverse vars))))]
+ [(procedure? (value (car ids)))
(loop (cdr ids) (cons (car ids) procs) vars)]
[else (loop (cdr ids) procs (cons (car ids) vars))])))
(let-values (((reg syn)
(module-compiled-exports
(get-module-code (resolve-module-path mod #f)))))
- (let ((syn (extract-ids syn))
- (reg (extract-ids reg)))
- `((syntax ,@syn) ,@(classify-ids reg (module-spec->namespace mod))))))
+ (let ([syn (map contracted (extract-ids syn))]
+ [reg (extract-ids reg)])
+ `((syntax ,@syn) ,@(classify-ids reg)))))
(define (startup)
(thread update-module-cache)
- [nongnu] elpa/geiser-racket d8076a5 029/191: Couple nits, (continued)
- [nongnu] elpa/geiser-racket d8076a5 029/191: Couple nits, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket de36aed 027/191: Better REPL exit command, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 15cb8fb 006/191: Racket: providing error contexts, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 739aaec 010/191: Racket: improvements in non-loaded module location., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 912e318 020/191: Racket: catching errors during contract retrieval., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket b53aba6 036/191: Racket: , eval -> , geiser-eval, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 2ef38a5 037/191: Racket: , eval -> , geiser-eval, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 9790b39 039/191: Racket: little evaluation nits, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 2b2b13f 043/191: Nit, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket d789d5f 046/191: Racket: fix for prompt display on , enter, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 1c3ae9f 018/191: Racket: showing contracts in module documentation.,
Philip Kaludercic <=
- [nongnu] elpa/geiser-racket e1b6db4 033/191: Racket: new meta-commands: , eval , apply , no-values, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 47afcd9 030/191: Racket nit: racket/base instead of scheme/base, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket a8e6427 032/191: Racket: , enter meta-command instead of namespace clobbering, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket cb2287b 035/191: Racket: using meta-commands instead of dynamic-require (#30347), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket e625b74 038/191: Racket: fix for help function, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 5a048d7 040/191: Racket: little evaluation nits, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 98bd9f2 041/191: Nits, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 4b43cf6 042/191: Pumbling cleanups, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 7c46713 045/191: Racket: use EOT token for internal communications, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket e43de25 047/191: geiser-squarify to toggle between () and [], Philip Kaludercic, 2021/08/01