From 26ec23620d50be79ea664a9095b3653be79e3874 Mon Sep 17 00:00:00 2001 From: Quey-Liang Kao Date: Mon, 14 Aug 2017 15:45:22 +0800 Subject: Implement the "ln" feature: Listing notes of a todo --- todolist/parser.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'todolist/parser.go') diff --git a/todolist/parser.go b/todolist/parser.go index 207791d..1c3b7f8 100644 --- a/todolist/parser.go +++ b/todolist/parser.go @@ -84,11 +84,18 @@ func (p *Parser) Contexts(input string) []string { } func (p *Parser) ParseNotes(todo *Todo, input string) string { - r, _ := regexp.Compile(`(\w+) \d+\s+(.*)?`) + r, _ := regexp.Compile(`(\w+) \d+\s*(.*)?`) matches := r.FindStringSubmatch(input) - if matches[1] == "an" { + switch matches[1] { + case "an": todo.Notes = append(todo.Notes, matches[2]) return "add" + case "ln": + groups := map[string][]*Todo{} + groups[""] = append(groups[""], todo) + formatter := NewFormatter(&GroupedTodos{Groups: groups}) + formatter.PrintNotes() + return "list" } fmt.Println("Could not match command or id") -- cgit v1.3