Provide a todo.txt format-compliant object representation of tasks and task lists.
- Provide a modern .NET implementation that improves on the ones used in Todotxt.net and TodoTxtLib.
- Fully implement the todo.txt format specifications.
- Include support for threshold date and arbitrary tags, on top of the standard todo.txt format specifications.
- Optimize classes for performance rather than in-memory footprint.
- Fully support data bindings, including sending notifications of property changes.
- Include exhaustive unit tests of the Task and TaskList objects.
- Support a property indicating the Task's position in a file or list.
- Use regular expressions for todo.txt format parsing.
- Minimize re-running regular expression pattern matching unless the Task is modified. That is, class properties are saved to instance variables, rather than evaluated each time they are needed.
- Notify consumers of property changes, to support data binding.
- Provide methods for updating all properties.
- Do not provide methods for building tasks from component parts.
- Notify consumers of task list changes, by sending CollectionChanged notifications, to support data binding.
- Send CollectionChanged notifications when task properties are changed (for in-place modifications to the Task objects within the task list).
- Provide methods for reading/writing task list to file/stream.
- Support task list sorting.
- Support task list filtering.
- Encapsulate methods for loading and saving todo.txt files.
- Encapsulate functionality for watching the todo.txt file for external modifications, and optionally reloading the file when it is externally modified.
- Support an optional auto-save function, triggered by changes to the task list.