- This is a large commit, as all the changes are centered around the elimination
of CLI.
- CLI is no longer compiled.
- Context no longer maintains CLI + CLI2.
- Filter now walks the parse tree and sends to Eval a
std::vector <std::pair <std::string, Lexer::Type>> containing only args tagged
with FILTER.
- Filter more efficiently sets/unsets Eval::debug, by doing it less often.
- The filterExpr.length() check is no longer meaningful, and instead the size of
the std::vector above is used.
- Filter::pendingOnly performs better analysis.
- Filter::safety makes use of the std::vector size also.
- Task::modify makes use of 'canonical' rather than 'name', which is a policy
change, not a fix.
- The old CLI object has three static methods that are used for extracting
information from the command line before parsing takes place. These include
rc.name:value and rc:value and code that applies those overrides to
Context::Config. These methods are moved to CLI2 - being static it makes no
difference where they reside.
- Context::initialize now calls the CLI2 versions only.
- Make "project" verbosity imply "footnote", since verbose project
info is shown using footnotes. Fixes failing test in verbose.t.
- Convert "verbosity" variable to std::set for increased readability.
- 9e6c6ecb93 introduced a change that
can lead to the wrong task being edited when GC is manually turned
off. Fix this by taking the user's GC setting into account.
- 'priority.long' and 'priority.short' formats now map to 'priority', and
generate a warning.
- Man page updated.
- Converted priority urgency coefficients to UDA equivalents.
- Converted priority color rules to UDA color rules.
- Removed 'default.priority' support.
- Removed special sort handling for 'priority' field in Variant, added special
UDA sort handling.
- Removed ColPriority.{h,cpp} source files.
- Removed asorted newly-unused variables.
- The 'show' command now highlights unused priority settings.
- Removed unused localized priority-relateѕ strings.
- Added legacy mapping for columns and sort columns for 'priority.long' and
'priority.short' columns in report definitions.
- Removed priority color rules implementation.
- Removed obsolete tests for #860, #990, custom.priority_long.t.
- Updated various tests that set priority default, colors.
- Fix completed/deleted tasks getting an ID when GC is going to be run,
previously resulting in invalid IDs being displayed in reports that
show non-pending tasks.
A side effect of this fix is that it is sometimes not possible to
filter by ID when running a report right after calling done/delete.
This problem existed before; this change makes it happen on the first
report instead of the second, so it is more consistently broken.
Commands that modify tasks are not affected, making this an annoying
yet harmless defect.
- Added a strict analysis mode that throws errors. In non-strict mode no errors
are thrown because parsing is incomplete most of the time, and only the final
pass needs to be strict.
- Updated ::getOverride to scan all args, display the debug feedback, and derive
the home dir.
- Removed Parser::getOverrides calls from Context.
- Cleaned up dead code in Context::initialize.