summaryrefslogtreecommitdiffstats
path: root/undone/main.scm
diff options
context:
space:
mode:
Diffstat (limited to 'undone/main.scm')
-rw-r--r--undone/main.scm22
1 files changed, 11 insertions, 11 deletions
diff --git a/undone/main.scm b/undone/main.scm
index 9f3cfa8..e916ad2 100644
--- a/undone/main.scm
+++ b/undone/main.scm
@@ -5,15 +5,21 @@
(define-syntax define-view
(lambda (x)
- (syntax-case x ()
- ((_ name doc exps exps* ...)
+ (syntax-case x (with)
+ ((_ name doc fmt fields fields* ...)
(with-syntax ((viewname
(datum->syntax
x (symbol-append (syntax->datum #'name) '-view))))
- #'(begin
+ #`(begin
(define (viewname)
doc
- exps exps* ...)
+ (map (lambda (item)
+ (format #t fmt
+ #,@(map
+ (lambda (field)
+ #`(cdr (assq (quote #,field) item)))
+ #'(fields fields* ...))))
+ todo-list))
(set! view-list
(append view-list
(list (cons 'name viewname))))))))))
@@ -77,13 +83,7 @@
(define-view default
"Default todo-list view, show only the title."
- (map (lambda (todo)
- (display (cdr (assq 'content todo))))
- todo-list))
-
-(define-view raw
- "Just a test view, see everything in todo-list."
- (format #t "~y" todo-list))
+ "~a" content)
(define (view args)
"Show a list of todo items."