[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-chez 6a67546 2/2: show the parameter list of record
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/geiser-chez 6a67546 2/2: show the parameter list of record type constructors, predicates, |
Date: |
Thu, 18 Nov 2021 12:57:42 -0500 (EST) |
branch: elpa/geiser-chez
commit 6a675460f896431a3ca933b74f4e8f08a91c0869
Author: Jay Xu <jay.xu.krfantasy@gmail.com>
Commit: Jay Xu <jay.xu.krfantasy@gmail.com>
show the parameter list of record type constructors, predicates,
accessors and mutators.
---
src/geiser/geiser.ss | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/geiser/geiser.ss b/src/geiser/geiser.ss
index afa58c3..6546579 100644
--- a/src/geiser/geiser.ss
+++ b/src/geiser/geiser.ss
@@ -101,10 +101,21 @@
(if s
(let ((form (s 'value)))
(if (and (list? form)
- (> (length form) 2))
+ (>= (length form) 2))
(case (car form)
[(lambda) (list (cadr form))]
[(case-lambda) (map car (cdr form))]
+ [(record-predicate record-accessor)
+ (list (list (record-type-name (cadr (cadr form)))))]
+ [(record-mutator)
+ (let ([rtd (cadr (cadr form))]
+ [field-idx (caddr form)])
+ (list (list (record-type-name rtd)
+ (vector-ref (record-type-field-names rtd)
field-idx))))]
+ [(record-constructor)
+ (let* ([rcd (cadr (cadr form))]
+ [rtd (((inspect/object rcd) 'ref 'rtd) 'value)])
+ (list (vector->list (record-type-field-names rtd))))]
[else #f])
#f))
#f)))