- 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.
- 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.
- 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.
- Eliminated some calls to context.config from Task‥cpp, reducing the coupling.
If context can be eliminated from Task.cpp, via statically initialized
variables, then Taskwarrior and the task server can share Task.{ḩ,cpp} which
would be an enormous saving in effort.
(cherry picked from commit 215b03b1a7f47299a0d3e64331c7e3c962b4caf0)
- Added a detailed sync summary message, indicating what happened.
- Improved and localized the feedback messages for the sync command.
- Added color to the add/modify feedback, matching the merge command.
- Enabled the sync timer for debugging output.
- Prevent any verbose information to be printed with the 'ids', 'uuids' and
helper subcommands.
- Unit tests.
- Precise this behavior in the man pages.
- Fixed bug #552, where 'rc.verbose=off' suppressed warnings (thanks to Peter
De Poorter).
- Fixed bug #863, which suppressed report labels with rc.verbose=off (thanks to
Michelle Crane).
- Added feature #632, which allows environment variables TASKRC and TASKDATA
to override .taskrc and .task directory locations (thanks to Steve Rader).
- Added unit tests.
+
- Change the was performance measurements are taken. This in preparation
to automated daily perf charts, leading to efforts to speed up certain
operations.
- Created A3.{h,cpp} which will be a simpler, lightweight version of
Arguments.{h,cpp} that does less, but does it better.
- Created E9.{h,cpp} which will be a better implementation of
Expression.{h,cpp} that does less, but does it better.
- Integrated A3 into Context::initialize, and Arguments and A3 will
coexist until A3 surpasses Arguments.
- Added Context::getColumns to return a vector of column names.
This is to help a shift toward using the Column objects to assist
in the parsing/validation of data entry/modifications.
- Added Column::modifiable to delegate an attributes readable/writeable
state. This means the columns will be in charge of their own
mutability, which will simplify and generalize Command::modify_task.