aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/describe.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/vcomponent/describe.scm')
-rw-r--r--module/vcomponent/describe.scm42
1 files changed, 22 insertions, 20 deletions
diff --git a/module/vcomponent/describe.scm b/module/vcomponent/describe.scm
index f6c77f55..69084679 100644
--- a/module/vcomponent/describe.scm
+++ b/module/vcomponent/describe.scm
@@ -7,31 +7,33 @@
(define ii (make-string indent #\space))
(define iii (make-string (1+ indent) #\space))
- (define maxlen (find-max (hash-map->list
- (lambda (a _) (string-length (symbol->string a)))
- (properties vcomponent))))
+ (define maxlen (find-max (map
+ (lambda (a) (string-length (symbol->string a)))
+ (map car (properties vcomponent)))))
(format #t "~aBEGIN ~a~%" ii (type vcomponent))
- (hash-for-each (lambda (key values)
- (define (out vline)
- (format #t "~a~a = ~a"
- iii
- (trim-to-width (symbol->string key) maxlen)
- (trim-to-width
- (format #f "~a" (value vline))
- (- 80 indent maxlen)))
- (awhen (parameters vline)
- (display " ;")
- (for (key value) in it
- (format #t " ~a=~a" key value)))
- (newline))
- (if (list? values)
- (for-each out values)
- (out values)))
- (properties vcomponent))
+ (for-each (lambda (kv)
+ (let* ((key . values) kv)
+ (define (out vline)
+ (format #t "~a~a = ~a"
+ iii
+ (trim-to-width (symbol->string key) maxlen)
+ (trim-to-width
+ (format #f "~a" (value vline))
+ (- 80 indent maxlen)))
+ (awhen (parameters vline)
+ (display " ;")
+ (for (key value) in it
+ (format #t " ~a=~a" key value)))
+ (newline))
+ (if (list? values)
+ (for-each out values)
+ (out values))))
+ (properties vcomponent))
(for child in (children vcomponent)
+
(describe child (+ indent 2)))
(format #t "~aEND ~a~%" ii (type vcomponent)))