{"action":"created","issue":{"url":"https://api.github.com/repos/mjdescy/TodoTxtMac/issues/65","labels_url":"https://api.github.com/repos/mjdescy/TodoTxtMac/issues/65/labels{/name}","comments_url":"https://api.github.com/repos/mjdescy/TodoTxtMac/issues/65/comments","events_url":"https://api.github.com/repos/mjdescy/TodoTxtMac/issues/65/events","html_url":"https://github.com/mjdescy/TodoTxtMac/issues/65","id":60543733,"number":65,"title":"Completed tasks without date","user":{"login":"gagern","id":190759,"avatar_url":"https://avatars.githubusercontent.com/u/190759?v=3","gravatar_id":"","url":"https://api.github.com/users/gagern","html_url":"https://github.com/gagern","followers_url":"https://api.github.com/users/gagern/followers","following_url":"https://api.github.com/users/gagern/following{/other_user}","gists_url":"https://api.github.com/users/gagern/gists{/gist_id}","starred_url":"https://api.github.com/users/gagern/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gagern/subscriptions","organizations_url":"https://api.github.com/users/gagern/orgs","repos_url":"https://api.github.com/users/gagern/repos","events_url":"https://api.github.com/users/gagern/events{/privacy}","received_events_url":"https://api.github.com/users/gagern/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mjdescy/TodoTxtMac/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":{"login":"mjdescy","id":6806258,"avatar_url":"https://avatars.githubusercontent.com/u/6806258?v=3","gravatar_id":"","url":"https://api.github.com/users/mjdescy","html_url":"https://github.com/mjdescy","followers_url":"https://api.github.com/users/mjdescy/followers","following_url":"https://api.github.com/users/mjdescy/following{/other_user}","gists_url":"https://api.github.com/users/mjdescy/gists{/gist_id}","starred_url":"https://api.github.com/users/mjdescy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjdescy/subscriptions","organizations_url":"https://api.github.com/users/mjdescy/orgs","repos_url":"https://api.github.com/users/mjdescy/repos","events_url":"https://api.github.com/users/mjdescy/events{/privacy}","received_events_url":"https://api.github.com/users/mjdescy/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2015-03-10T18:12:01Z","updated_at":"2015-03-10T20:36:03Z","closed_at":null,"body":"[Your parsing of the file format](https://github.com/mjdescy/TodoTxtMac/blob/df60ab2c908874739d97128f2c131c4f50d3e09b/TodoTxtMac/TTMTask.m#L56) doesn't follow [the todo.txt specs](https://github.com/ginatrapani/todo.txt-cli/wiki/The-Todo.txt-Format):\r\n\r\n1. You don't recognize a completed task as ocmplete if it doesn't have a done date. The `CompletedPattern` should make the date (and one space) optional.\r\n2. In many places you allow `\\s` where the spec requires a space. This might break interoperability."},"comment":{"url":"https://api.github.com/repos/mjdescy/TodoTxtMac/issues/comments/78142503","html_url":"https://github.com/mjdescy/TodoTxtMac/issues/65#issuecomment-78142503","issue_url":"https://api.github.com/repos/mjdescy/TodoTxtMac/issues/65","id":78142503,"user":{"login":"mjdescy","id":6806258,"avatar_url":"https://avatars.githubusercontent.com/u/6806258?v=3","gravatar_id":"","url":"https://api.github.com/users/mjdescy","html_url":"https://github.com/mjdescy","followers_url":"https://api.github.com/users/mjdescy/followers","following_url":"https://api.github.com/users/mjdescy/following{/other_user}","gists_url":"https://api.github.com/users/mjdescy/gists{/gist_id}","starred_url":"https://api.github.com/users/mjdescy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjdescy/subscriptions","organizations_url":"https://api.github.com/users/mjdescy/orgs","repos_url":"https://api.github.com/users/mjdescy/repos","events_url":"https://api.github.com/users/mjdescy/events{/privacy}","received_events_url":"https://api.github.com/users/mjdescy/received_events","type":"User","site_admin":false},"created_at":"2015-03-10T20:36:03Z","updated_at":"2015-03-10T20:36:03Z","body":"Hi, @gagern. Thanks for your feedback. I tried to follow the todo.txt format to the letter, though we all make mistakes. I'll respond to each of your points in turn.\r\n\r\n# 1. TodoTxtMac doesn't recognize a completed task without a due date. \r\n\r\nThis is due to my interpretation of the todo.txt spec that you linked to. I interpret the \"Complete Tasks: 2 Format Rules\" section of the format spec to mean that both Rule 1 (lowercase x) and Rule 2 (completion date) must be met for a task to be considered complete. There is language in those sections that supports this interpretation: \r\n\r\n1.  \"Two things indicate that a task has been completed.\" It's \"two things\", not one of two things. I interpret that as two things AND-ed together, as in both the leading \"x\" and space, and the completion date.\r\n\r\n2. \"With the completed date (required), if you’ve used the prepended date (optional), you can calculate how many days it took to complete a task.\" Note the parenthetical \"required\" as it applies to completion date.\r\n\r\nUpon a really close reading, it looks like the spec can be interpreted differently. That, and the spec has changed over time, including several times since I first coded TodoTxtMac. It's a moving target. I am pretty comfortable with my interpretation of the spec as it stands at this time, however.\r\n\r\n# 2. In many places you allow \\s where the spec requires a space. This might break interoperability.\r\n\r\nIt sounds like you're suggesting that \\s is too lenient and will match non-space whitespace characters. You are correct, and that might warrant a change. I don't think interoperability will be affected too much either way. At least within TodoTxtMac, it would be atypical for users to be able to enter line breaks or tabs (or other whitespace characters) into the task (the editor makes that sort of thing hard to do). I may experiment with replacing \\s in the regular expressions with a \" \" or \"[ ]\"."}}