ttdl (4.7.0) unstable; urgency=medium * New command-line options `--init` and `--init-local` to create a default configuration file in the user's configuration or the current working directory respectively. -- Vladimir Markelov Mon, 25 Nov 2024 11:03:41 -0800 ttdl (4.6.0) unstable; urgency=medium * New command-line option `--interactive`/`-i` for command `edit`. When it is set, and editor is defined, all options that modifies tasks are ignored and TTDL opens an editor with tasks that were filtered by the command line options. After closing the editor, if the tasks are changed and the text is not empty, TTDL updated the selected tasks. Example: - `ttdl edit -i` - open all tasks to edit in an external editor - `ttdl edit +proj -i` - open all tasks related to the project `proj` in an external editor. -- Vladimir Markelov Sun, 24 Nov 2024 16:41:04 -0800 ttdl (4.5.0) unstable; urgency=medium * When editing a task or adding a new one, you can use simple expressions for date-like tags `due` and `t`: - `ttdl add "water plants t:2024-11-10 dur:t+5d` - `ttdl edit 1 --set-due=due+5d -- Vladimir Markelov Sun, 17 Nov 2024 17:10:16 -0800 ttdl (4.4.1) unstable; urgency=medium * On completing a recurrent task, the tags `tmr` and `spent` are removed from the newly created task. -- Vladimir Markelov Sat, 24 Aug 2024 20:23:11 -0700 ttdl (4.4.0) unstable; urgency=medium * Allow setting task completion date even if creation date is undefined. By default, TTDL works in the same way. You can enable setting completion date always by either modifying the configuration file (set option `global.add_completion_date_always` to `true`) or by passing a command-line option `--add-completion-date-always` -- Vladimir Markelov Wed, 17 Jul 2024 21:22:22 -0700 ttdl (4.3.0) unstable; urgency=medium * New option `--keep-tags` or `-k` for edit mode. If the option is set, the command must contain a new subject text. A modified todo keeps all properties (project, context, tags, hashtags), but the regular text is replaced with the new subject * Update packages and fix clippy warnings -- Vladimir Markelov Fri, 10 May 2024 16:52:01 -0700 ttdl (4.2.1) unstable; urgency=medium * Forbid executing some operations if no filter is specified in command line. When running without specifying what tasks to process, the commands rm, edit, postpone, done, undone interrupt the application with an error -- Vladimir Markelov Thu, 29 Feb 2024 19:23:11 -0800 ttdl (4.2.0) unstable; urgency=medium * New recurrence interval: business days. It works as the day interval but all Sundays and Saturdays are skipped. * Now the character `~` can be used in configuration file to set todo and done files. `~` is a shortcut for user's home directory. Thanks to Enno Zickler(@ezickler) for contribution. * Updated docs: - Added description of strict and non-strict recurrences - Added ArchLinux installation intstructions. Thanks to Justin (@just1602) -- Vladimir Markelov Wed, 14 Feb 2024 22:06:02 -0800 ttdl (4.1.0) unstable; urgency=medium * New command-line and configuraton option `priority-on-done`. The option defines what to do with task priority when the task is completed: keep: default mode - do nothing with priority move: place the priority after completion date erase: remove the priority tag: remove the priority and add a tag 'pri:' with the priority value Note that all modes, except 'erase' are reversible and properly restore task priority when the task is uncompleted -- Vladimir Markelov Thu, 27 Jul 2023 19:40:31 -0700 ttdl (4.0.0) unstable; urgency=medium * New incompatible output format: - column width is not constant, its width fits the longest column value - columns are shown in the same order as they mentioned in the settings * Fixed incorrect syntax highlighting: project and tag colors were exchanged * Fixed removing threshold from subject when it is shown in a column * New command-line option `auto-hide-cols`: automatically hide columns which have no values * New command-line option `auto-show-cols`: automatically show tags, context, and project in separate columns * New command-line option `always-hide-cols`: never show the mentioned tags in separate columns. The option is good when used together with the option `auto-show-cols` -- Vladimir Markelov Thu, 27 Jul 2023 19:40:31 -0700 ttdl (3.10.0) unstable; urgency=medium * Fixed broken custom formatting: when a plugin changed any tag value, the tag was duplicated in the subject * Custom formatting behavior change: if a user wants to remove a tag from the subject, a plugin must set the empty value for the tag. Removing tag from the hashmap does not remove the tag from the subject any longer * Few small fixes in the example configuration ttdl.toml: corrected powershell command-line options and fields example section -- Vladimir Markelov Mon, 26 Jun 2023 10:58:13 -0700 ttdl (3.9.0) unstable; urgency=medium * Flag `--calendar` supports years (in a range -2..2). Now you can print the current year with `ttdl --calendar=1y` * Flag `--calendar` accept ranges: `ttdl --calendar=-2m..2m` * Added missing color reset when printing calendar: sometimes today's background was applied to an empty line after the month and sometimes month names were printed with week number color * New available columns `Project` and `Context`. They display task's projects and contexts respectively. Both are hidden by default. They can be shown by changing config or passing in command-line: `ttdl --fields=prj,ctx` * Tags, projects, and contexts can be hidden if they are already printed in their own columns. By default, the feature is off. To enable hiding, either pass command-line option `--clean-subject` or modify the configuration variable `global.clean_subject` -- Vladimir Markelov Sat, 06 May 2023 15:47:09 -0700 ttdl (3.8.0) unstable; urgency=medium * Now `--calendar` prints in more human-friendly way: with month names, week nubmers and each month is printed in its own column * Flag `--calendar` now accept wider interval for months. The current limit of months to print is `24` (increased for the previous value `3`) -- Vladimir Markelov Sun, 23 Apr 2023 15:15:58 -0700 ttdl (3.7.0) unstable; urgency=medium * Use `None` as a default foreground color - better support for light teminal colorschemes * Add a setting `default_fg` to `colors` section. It allows a user to define a custom default foreground color -- Vladimir Markelov Sat, 11 Mar 2023 15:27:34 -0800 ttdl (3.6.5) unstable; urgency=medium * Fix crashing `add` command when command-line option `--dry-run` is used -- Vladimir Markelov Sat, 04 Mar 2023 11:12:21 -0800 ttdl (3.6.3) unstable; urgency=medium * Improve 32-bit compiler support -- Vladimir Markelov Tue, 31 Jan 2023 22:00:33 -0800 ttdl (3.6.2) unstable; urgency=medium * Empy todos are hidden by default. To show empty todos, use the command-line option `--all` * Command `clean`(`archive`) removes empty todos as well. To keep empty todos, pass the command-line option `--keep-empty` -- Vladimir Markelov Sun, 29 Jan 2023 14:11:01 -0800 ttdl (3.6.1) unstable; urgency=medium * The command-line option `--syntax` did not work in `--compact` mode -- Vladimir Markelov Sat, 28 Jan 2023 16:10:01 -0800 ttdl (3.6.0) unstable; urgency=medium * New feature: custom columns: define custom columns with highlight rules in `ttdl.toml` and display them with `--fields=field-name` option. Custom columns shows values of selected tags. * Switch to 2021 Rust edition -- Vladimir Markelov Sat, 31 Dec 2022 12:08:30 -0800 ttdl (3.5.0) unstable; urgency=medium * Added command-line options to modify arbitrary tags: `--set-tag` and `--del-tag` * Added command-line options to manage hashtags: `--set-hashtag`, `--del-hashtag`, and `--repl-hashtags` * Added command-line option to filter by hashtags: `--hashtag`. Meta values like `any` and `none` are supported as it is done for tags. * Allow command `stats` to be used for `done.txt`. Now two commands works with `done.txt`: list and stats * Fixed incorrect calculation of overdue tasks: they were calculated only for active todos, so completed and overdue todos were counted as non-overdue ones * Removed `missing threshold` from `stats`. It was a misleading value because it was impossible to miss any threshold. Threshold is a date until which the todo is omitted from the default `list` output * Fixed incorrect detection of the number of overdue todos. The old algorithm compared due date and today's date always. But for completed todos it results in false positives. New detection algorithm for overdue: - a todo is active and its due date is earlier than today's date - a todo is done and it has finish date set, and the finish date goes after todo's due date In all other cases a todo is not considered an overdue one. * Add syntax highlighting for subject. The feature is disabled by default. When enabled, the default colors for: - tags = Cyan - hashtags = Bright Cyan - projects = Bright Green - contexts = Green * New command-line options `syntax` to enable syntax highlighting, and `no-syntax` to disable it * Updated example `ttdl.toml`: introduced a section `[syntax]` to tune up subject syntax highlighting -- Vladimir Markelov Tue, 27 Dec 2022 16:50:41 -0800 ttdl (3.4.6) unstable; urgency=medium * Clippy fixes -- Vladimir Markelov Sun, 18 Dec 2022 14:58:18 -0800 ttdl (3.4.5) unstable; urgency=medium * Fixed: `postpone` did not change due date. Only `--dry-run` worked as expected * Upgrade dependencies -- Vladimir Markelov Fri, 14 Oct 2022 21:09:18 -0700 ttdl (3.4.3) unstable; urgency=medium * On completing a recurrent todo copied creation date from an original todo. Now the creation date of the new todo is set to today's date * Command-line option '--all' now shows todos with a threshold date set in the future -- Vladimir Markelov Tue, 30 Aug 2022 15:38:35 -0700 ttdl (3.4.2) unstable; urgency=medium * Fix the remaining error output on "Broken Pipe" (issue #59) -- Vladimir Markelov Sat, 27 Aug 2022 17:05:00 -0700 ttdl (3.4.1) unstable; urgency=medium * Fix panic when using TTDL with head, grep and alike tools (issue #59) -- Vladimir Markelov Wed, 10 Aug 2022 21:58:02 -0700 ttdl (3.4.0) unstable; urgency=medium * Fix `set-rec` command: it modified todo's recurrent date only if the todo was marked as a done one -- Vladimir Markelov Sun, 24 Jul 2022 11:13:25 -0700 ttdl (3.3.0) unstable; urgency=medium * New task view mode `--calendar=` where `range` is a single value which denotes how long the calendar is. The value uses the same syntax as todo value `recurrent` with some extra contractions. -- Vladimir Markelov Fri, 08 Jul 2022 19:28:27 -0700 ttdl (3.2.0) unstable; urgency=medium * Upgrade 'todo_lib' to version '5.0' * Replace 'failure' crate with 'thiserror' one -- Vladimir Markelov Sun, 12 Jun 2022 00:20:58 -0700 ttdl (3.1.0) unstable; urgency=medium * Now threshold dates moves to the future like due dates when a todo is completed * On completion of a recurrent todo, its due and threshold dates are not modified. The todo is marked completed and a new todo is created with changed due and threshold dates. -- Vladimir Markelov Sun, 17 Oct 2021 11:53:01 -0700 ttdl (3.0.2) unstable; urgency=medium * Fixed: ID '1' was always ignored when list of IDs was passed to TTDL * Fixed: generate list of unique IDs. Before '1,2,2' or '1,1-3' sent duplicated ID with number '2' to todo_lib. * New: list and ranges of IDs can be mixed * New: range of IDs now detect low and high ends automatically. Now `list 1-3` and `list 3-1` prints the same tasks in the same order. -- Vladimir Markelov Thu, 14 Oct 2021 00:22:30 -0700 ttdl (3.0.1) unstable; urgency=medium * Fix regression: filter "due=none..4d" did not include tasks with empty due dates -- Vladimir Markelov Wed, 13 Oct 2021 11:38:51 -0700 ttdl (3.0.0) unstable; urgency=medium * All ranges are now exclusive ones as the documentation states. Before the fix, ranges with `none` as one end were non-exclusive ones * Support tag `h` to hide any todo from the output. If value of the tag is not `0`, the todo is excluded from all operations (except auto-compelete functions) * Added a way to exclude todos what contains certain projects, contexts or tags from the list. Prepend `-` to a value to mark it as an exclusion. -- Vladimir Markelov Sun, 03 Oct 2021 11:10:19 -0700 ttdl (2.0.2) unstable; urgency=medium * Upgrade packages * Update README -- Vladimir Markelov Sat, 01 May 2021 17:50:19 -0700 ttdl (2.0.0) unstable; urgency=medium * Replace todotxt library with another one * Now project and context names are case-sensitive * All tags are preserved in a todo's subject (they were appended to the subject in the previous library) * Completing a todo with recurrence and threshodl do not chaneg theshold * Todo completion follows strict flag('+' character before a recurrence - e.g, "rec:+1m"): if strict flag is present, the next date is recurrence plus due date, otherwise recurrence plus the current date * A tag cannot have empty value. Setting empty value to a tag removes the tag from the subject completely * If a todo's text starts with two dates, and the todo is incomplete, only the first is parsed as creation date, and the rest goes to subject -- Vladimir Markelov Thu, 11 Feb 2021 22:40:34 -0800 ttdl (1.0.0) unstable; urgency=medium * Todos can be filtered by tag names * New options to filter by projects(--project), contexts(--context), and tags(--tag) in addition to original filtering with `@` and `+`. * New strict mode(disabled by default, enabled via configuration file or command-line option) -- Vladimir Markelov Tue, 29 Dec 2020 20:23:43 -0800 ttdl (0.10.4) unstable; urgency=medium * Enable range filter for threshold date * Fix conflict between two CLI options: there were `-A/--completed` and `--completed`. It resulted in the error `invalid date range` for any value after `--completed`. Now the former one is `-A/--only-completed` * Bump packages * Few clippy fixes -- Vladimir Markelov Fri, 25 Dec 2020 17:20:17 -0800 ttdl (0.10.2) unstable; urgency=medium * Add `none` as a valid value for a range end. Using `none` in a range makes the range an open one. The result is the combination of two lists: an open one with real date, and all todos that have the date undefined. Example: `list --due=none..tomorrow` shows all todos that are overdue, due today or tomorrow, and that do not have a due date -- Vladimir Markelov Sat, 08 Aug 2020 19:39:38 -0700 ttdl (0.10.1) unstable; urgency=medium * Add `soon` as a valid value for a range end. `-soon` works as well. The value of `soon` depends on the configuration value `ranges.soon`. If the value of config is zero, the value defaults to 7. * Add `overdue` as a valid value for a range end for consistency. Any range with a due is the same as an open range without 'overdue' part. -- Vladimir Markelov Thu, 30 Jul 2020 21:56:09 -0700 ttdl (0.10.0) unstable; urgency=medium * New feature: allow range in due date filter. Both ends of a range are inclusive. Range can be opened from one end, ends are separated either with ".." or with ":" * New feature: in addition to due and threshold dates, now it is possible to filter by creation and finish dates * New command-line arguments for filtering: '--created' and '--finished' -- Vladimir Markelov Sat, 25 Jul 2020 20:43:17 -0700 ttdl (0.9.0) unstable; urgency=medium * New feature: allow using human-readable dates when setting due and threshold dates in todo's text and for --set-due/--set-threshold commands. Since this version it is possible to, e.g., write "due:1w" to set the due date in a week from the current date. * New commands 'listprojects' and 'listcontexts' to list all project/context tags. Supports the same filters as the "list" command. * Remove 'Threshold' and 'Spent' columns from default output. -- Vladimir Markelov Sat, 11 Jul 2020 12:43:11 -0700 ttdl (0.8.0) unstable; urgency=medium * New feature: custom formatting a todo with external apps(plugins) -- Vladimir Markelov Thu, 16 Jan 2020 22:59:17 -0800 ttdl (0.7.4) unstable; urgency=medium * Default sorting mode can be set in application config file. Section 'global', property 'sort': list of fields separated with comma -- Vladimir Markelov Fri, 19 Jul 2019 22:27:52 -0700 ttdl (0.7.3) unstable; urgency=medium * Fixed crash when option --set-pri is used without a value: '--set-pri=' * Option '--set-pri=' equals '--set-pri=none' -- Vladimir Markelov Wed, 10 Apr 2019 20:17:23 -0700 ttdl (0.7.1) unstable; urgency=medium * New command line option --todo-file to pass a path to file contains todo list. If the path is a directory, "todo.txt" is added automatically * New command line option --done-file to pass a path to file contains archived todos. If the path is a directory, "done.txt" is added automatically. If the path contains only file name, it inherits directory from the path to todo list. -- Vladimir Markelov Wed, 20 Feb 2019 22:32:54 -0800 ttdl (0.7.0) unstable; urgency=medium * Breaking change: now configuration must be in application subdirectory "ttdl" instead of old way - in the root of user configuration folder * New command line option -c|--config to pass a path to configuration file -- Vladimir Markelov Sun, 17 Feb 2019 01:07:35 -0800 ttdl (0.6.0) unstable; urgency=medium * New command 'postpone' to push task's due date * New configuration options to hilite create date of todos that are older than a given time interval -- Vladimir Markelov Tue, 29 Jan 2019 22:15:33 -0800 ttdl (0.5.0) unstable; urgency=medium * Added 256-indexed and RGB colors support in config * Added time tracking support: - new commands 'start' and 'stop' to start and stop timer - new column 'spent' - time spent for a todo - new symbol in 'Done' column 'T' - marking a todo active(running) * New command 'stats' to display short and detailed statistics: - short includes minimal information: total number of all, done, overdue, and missed threshold todos - detailed shows totals grouped by project and contexts. Detailed includes total time spent for a given project or context -- Vladimir Markelov Sun, 20 Jan 2019 21:39:57 -0800 ttdl (0.4.0) unstable; urgency=medium * A list of IDs can be set in command line: "ttdl list 2,3,4" * Fix adding todos that start with project or context * Two new commands: append and prepend * Option '--human' supports list of field to show in relative format. Empty list means show all dates as relative ones -- Vladimir Markelov Sun, 13 Jan 2019 21:17:51 -0800 ttdl (0.3.2) unstable; urgency=medium * Change command detection rule: If the first word is not a command, and the subject is not empty then the command is Add; If the first word is not a command and there is no subject then the command is List; * New option: 'version' - show application version -- Vladimir Markelov Wed, 09 Jan 2019 21:43:01 -0800