taskfinder 0.5.0

Find tasks within a particular set of files.
# taskfinder

Find tasks within a particular set of files.

This is still an early work in progress, but you can install with `cargo install taskfinder`.

See `tf --help` once installed.

How tasks get identified and extracted from files:
  * the term "TODO" (in caps) must be in the text of the file
  * `[ ]` or `[]` identifies an incomplete task
  * `[X]` or `[x]` is a completed task
  * `[/]` is a partially completed task

By default, files are defined as .md and .txt files in your home directory. However, both the directory and the extensions are configurable. Upon first run, this program will create a configuration file at $HOME/taskfinder/config.toml. Edit the file to change these defaults. Also configurable are:
  * how many days constitutes a file being stale
  * whether to include completed tasks by default
  * the text in a file that indicates a priority level ("priority markers")

## Tags and Priorities

The program looks for these at the level of the file, not the task. 

Tags are actually just whatever string you pass, so you may follow whatever convention you like. I use the form "@sometag": `tf -t @sometag`.

Similar to tags, priorities can be a string you define. By default, they are, from highest to lowest priority: `pri@1`, `pri@2`, `pri@3`, `pri@4`, `pri@5`. To change these, modify the `priority_markers` list in the configuration file. Note, however: **there must be five of them**.

Results will automatically be sorted by these priorities, with the tasks from files without one of these markers shown last.

To view only one group of these priorities, use the `-p` flag: `tf -p 1` to show the highest priority tasks.

## Due dates

There is preliminary support for due dates. If a task (see above on how a task is identified) contains a due date (in the form "due:YYYY-MM-DD"), it will be highlighted. Additionally, if you 
use the `--due` flag, only files/tasks with due dates will be shown.

## Staleness

If a file is considered stale (last modified more than `days_to_stale` days ago, with default of 365 initially set in the config file), no tasks from it will be returned, unless the `--stale` flag is used. A file can also be explicitly marked as stale by including the text "@stale" within it.