[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-guile 06d7cf5 144/284: Guile: taking advantage of t
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-guile 06d7cf5 144/284: Guile: taking advantage of the patterns property in macro transformers. |
Date: |
Sun, 1 Aug 2021 18:29:33 -0400 (EDT) |
branch: elpa/geiser-guile
commit 06d7cf553bbb2df7615724d765c0e28b508444b1
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>
Guile: taking advantage of the patterns property in macro transformers.
---
geiser/doc.scm | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/geiser/doc.scm b/geiser/doc.scm
index e1e27c1..4bd063b 100644
--- a/geiser/doc.scm
+++ b/geiser/doc.scm
@@ -52,10 +52,13 @@
(let ((args-list (map mkargs (if (list? args-list) args-list '()))))
(list id (cons 'args args-list))))
+(define default-macro-args '(((required ...))))
+
(define (obj-args obj)
(cond ((not obj) #f)
((or (procedure? obj) (program? obj)) (arguments obj))
- ((macro? obj) '(((required ...))))
+ ((and (macro? obj) (macro-transformer obj)) => macro-args)
+ ((macro? obj) default-macro-args)
(else 'variable)))
(define (arguments proc)
@@ -79,6 +82,16 @@
`((required . ,(car formals)) (rest . ,(cdr formals))))
(else #f))))
+(define (macro-args tf)
+ (cond ((procedure-property tf 'patterns) =>
+ (lambda (pats)
+ (filter identity
+ (map (lambda (p)
+ (and (every symbol? p)
+ (list (cons 'required p))))
+ pats))))
+ (else default-macro-args)))
+
(define (arity->args art)
(define (gen-arg-names count)
(map (lambda (x) '_) (iota (max count 0))))
- [nongnu] elpa/geiser-guile 1421a71 225/284: Guile: find module when cursor is before define-module (#33497), (continued)
- [nongnu] elpa/geiser-guile 1421a71 225/284: Guile: find module when cursor is before define-module (#33497), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 6c9efbc 233/284: Guile: Fix subr argument name retrieval for Guile >= 2.0.9., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 3bf45a4 249/284: Clean up indentation rules, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 9d0d38a 237/284: Guile: augmenting %load-compiled-path too, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile a1078b9 254/284: Fixing guile 2.2 compatibility, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile ef3fb34 264/284: Really fix #252, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 8bf1a8b 268/284: Fix indentation, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile ba4c1a9 276/284: adjustments to scheme load path, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 700ac98 282/284: Use new implementation extension declarator., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 5e2c874 139/284: Golfing., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 06d7cf5 144/284: Guile: taking advantage of the patterns property in macro transformers.,
Philip Kaludercic <=
- [nongnu] elpa/geiser-guile 3a80209 164/284: Guile: evaluation warnings, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 7563473 167/284: Guile: configurable warning level, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 17ebbec 183/284: Autodoc: fix for improper macro arglists scanning, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 04fd67f 185/284: Always fallback to edit-module in M-., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile cd2cfae 190/284: Guile: better meta-command args handling, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile c8dcc24 202/284: Make do with a single connection, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile fef0d8a 209/284: Document browser improvements, and Racket using them, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 190290b 213/284: Guile: fixes for documentation display, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 6d69176 216/284: No more interning in the scheme reader, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile b9a8980 224/284: Guile: what if i do what i meant to do?, Philip Kaludercic, 2021/08/01