Commit graph

6215 commits

Author SHA1 Message Date
Tomas Babej
a219bd30cf Task: Bump annotations with duplicate entry values
Since annotations are stored as a map, duplicate entry values lead to
data loss (i.e. annotations overriding each other on import). Perhaps
the choice of using a map internally should be reconsidered.

Closes #1938.
2021-06-19 12:29:41 -04:00
Tomas Babej
8b86f16f25 Variant: Do not use implicit fall-through
The code handling the comparison between the date and string types would
convert the variants to correct types, but only through multi-level
fall-through in the switch statement, which is always a bit of a
dangerous construct.

Added explicit return for the non-trivial case, preventing the need for
the fall-through.

Closes #2502.
2021-06-12 15:49:06 -04:00
Tomas Babej
c98fe5f34b
cmake: Remove recur2.cpp from CMakeLists 2021-06-12 10:40:47 -04:00
Tomas Babej
34ffd164bb
recur: Remove references to the new recurrence mechanism 2021-06-12 10:40:29 -04:00
Tomas Babej
4db7990df8
recur: Remove WIP recurrence overhaul implementation
The feature has been moved to 3.0 milestone. Also, we are now using
feature branches for development of new functionality, in order to make
the development branch more stable.
2021-06-12 10:37:23 -04:00
Tomas Babej
5e5a48606f CmdExec: Prevent user from executing an empty command
Closes #2503.
2021-06-10 21:44:07 -04:00
oxalica
2cb8f1d5ea Support relative include for themes in taskrc 2021-06-02 19:34:57 -04:00
oxalica
3672ed0c1b Remove build date/time from diagnostic message
This message does not really help, and makes the binary
non-deterministic.
2021-06-02 19:33:39 -04:00
begasus
4fff27f4bc Fix reference for errno.h on Haiku 2021-05-14 00:04:48 -04:00
Rosen Penev
73575f8d88 convert manual loops to std::count_if
Simpler and generates less assembly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-01 21:20:52 -04:00
Tomas Babej
62399239ca Filter: Make +ACTIVE trigger pendingOnly shortcut 2021-04-24 15:28:00 -04:00
Tomas Babej
523e2b40fe Filter: Consider presence of +PENDING tag signal to skip completed.data
This puts +PENDING at the same level of treatment as status:pending when
it comes to decision whether the data processed should be pending only.

The mechanism is by no means perfect and should be improved in the
future.
2021-04-24 15:28:00 -04:00
Tomas Babej
5e87be4641 Filter: Fix copy-paste error in pendingOnly 2021-04-24 15:28:00 -04:00
Tomas Babej
c7fd6b798b libshared: Bump version to support Pig.getUntilAscii 2021-04-24 10:47:28 -04:00
Tomas Babej
87d0499fc8 performance: Use ascii-only version of getUnitl for parsing attribute names
Not having to consider utf-8 characters has performance benefits.
2021-04-24 10:47:28 -04:00
Tomas Babej
95b135b59e DOM: Create a copy of Task object only if needed 2021-04-24 10:47:28 -04:00
Tomas Babej
87b0be9b6f performance: Pre-emptively reserve size of the values vector
Each token will add a corresponding Variant into the vector, so we can
avoid the performance penalty connected with dynamic resizes of the
vector.
2021-04-24 10:47:28 -04:00
Tomas Babej
312f77f703 performance: Do not use Pig to extract raw line content 2021-04-24 10:47:28 -04:00
Tomas Babej
e7487c8a63 performance: Avoid lexing input when not needed in getDOM
Lexing a token can be expensive operation. Perform lexing only if a
UUID/ID reference could have been provided.
2021-04-24 10:47:28 -04:00
Tomas Babej
c3f9d09d22 performance: Cache used command value
The detected command does not change once CLI2::analysis has been
performed. Cache the value of the command to avoid the need to
re-discover the correct value each time we're interested in it.
2021-04-24 10:47:28 -04:00
Tomas Babej
a19773873a performance: Cache CLI2::canonicalize lookups
Canonicalization of attributes or attribute prefixes happens once per
every single task considered in the filtering process. It maps short,
prefixed names to their full-length versions, for example:

"pro" -> "project" in the expression "project:Home"

It follows that such process is not task-dependant and as such the
lookups can be cached.
2021-04-24 10:47:28 -04:00
Rosen Penev
ab7f5b0b51 clang-tidy: loop conversion
Found with modernize-loop-convert

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-04-23 09:13:22 -04:00
Rosen Penev
15f0ab87e0 clang-tidy: use const references
Found with performance-for-range-copy

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-04-23 01:59:45 -04:00
Rosen Penev
e84930be8d clang-tidy: use auto
Found with modernize-use-auto

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-04-23 01:39:23 -04:00
Rosen Penev
d0c4350c2f clang-tidy: add missing reserve calls
Found with performance-inefficient-vector-operation

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-04-23 00:22:43 -04:00
Rosen Penev
3cafb5257e clang-tidy: use = default
Found with modernize-use-equals-default

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-04-23 00:15:06 -04:00
Rosen Penev
4aaaa8dcc8 clang-tidy: use bool literals
Found with modernize-use-bool-literals

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-04-23 00:11:52 -04:00
Rosen Penev
8ffb85b327 clang-tidy: use '' for single character find
Found with performance-faster-string-find

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-04-22 23:18:16 -04:00
Tomas Babej
44220287c4 CmdCalendar: Only display relevant parts of the legend 2021-04-21 23:44:36 -04:00
Tomas Babej
282f3d344a
CmdCalendar: Adjust styling 2021-04-21 23:09:08 -04:00
DanielMowitz
a16f3addc7 Made CmdCalendar.cpp even less redundant by only calling
config.get ("dateformat.holiday") once for every method.
2021-04-21 22:23:00 -04:00
DanielMowitz
23244e61a5 Renamed variables to be more consistent and improved readability. 2021-04-21 22:23:00 -04:00
DanielMowitz
f703bd5a74 Made CmdCalendar.cpp less redundant by only calling
Context::getContext().config once per method.
2021-04-21 22:23:00 -04:00
DanielMowitz
45c67fef6e Update CmdCalendar.cpp
Converted some tabs to spaces and added braces to a for loop.
2021-04-21 22:23:00 -04:00
DanielMowitz
374b97bb66 Implemented multi-day holidays. 2021-04-21 22:23:00 -04:00
DanielMowitz
dc5ebfa612 Made the code for colorizing the calendar a little more dry. 2021-04-21 22:23:00 -04:00
Tomas Babej
bd0d907335 CLI2: Apply desugaring of plain filter args to date args
This ensures that commands like `task marc` perform description
substring search on `marc`.

Closes #2451.
2021-04-14 02:44:33 -04:00
Tomas Babej
475a16b3d4 CLI2: Fix docstring for desugarFilterPlainArgs
Desugaring is applied also for tokens of Lexer::type::identifier, make
sure the docstring correctly documents that.
2021-04-14 02:44:33 -04:00
Paolo Capriotti
856b589bac Parse 'context' verbose token correctly 2021-04-11 20:32:42 -04:00
Max Rossmannek
6546c050c5 Un-wait a waiting task when deleted 2021-04-06 23:34:32 -04:00
Max Rossmannek
33dcea68f5 Un-wait a waiting task when done
Implements #2322
2021-04-06 23:34:32 -04:00
DanielMowitz
fb6c42f375 Change nagging behavior
Don't nag if the specified set of tasks consists only of highest urgency tasks.
2021-04-04 22:06:07 -04:00
Tomas Babej
693f2f74cd CmdEdit: Respect bulk option
Since 'task edit' is a data-modification operation (that is particularly
hard to cancel mid-way), it should also respect the 'bulk' option like
all the other modification operations (mod, start...).

Closes #2428.
2021-04-03 17:57:08 -04:00
Tomas Babej
fe6a6ca93b compatibility: Explicitly specify template type to support older compilers
This makes curret development branch buildable on Ubuntu 18 / Centos 7 /
SUSE 15.
2021-04-03 15:01:39 -04:00
Tomas Babej
c701137313 CmdContext: Report context as not found if nothing was deleted 2021-04-03 15:01:39 -04:00
Tomas Babej
1bba59e972 CLI2: Move the recursion block to the right place in addContext 2021-04-03 15:01:39 -04:00
Tomas Babej
201b1c37b4 CmdContext: Allow user to define read-only / write-only contexts 2021-04-03 15:01:39 -04:00
Tomas Babej
4de23a3e20 CmdContext: Remove all types of context when deleting 2021-04-03 15:01:39 -04:00
Tomas Babej
062878022b CmdContext: Expand information provided in 'context show' 2021-04-03 15:01:39 -04:00
Tomas Babej
a558ffcd42 CmdContext: List info about both read and write context 2021-04-03 15:01:39 -04:00