Commit graph

4416 commits

Author SHA1 Message Date
Paul Beckingham
6890fd32c7 Task: Duration handling improvements
- Separated handling for 'recur' (store in raw form) and type 'duration'
  attributes (store formatted).
- Added missing storage handling for type duration attributes.
2015-07-16 16:15:47 -04:00
Paul Beckingham
76d3efe313 Lexer: Improved termination for UUID types 2015-07-16 16:15:07 -04:00
Paul Beckingham
82802f7f47 CmdInfo: Properly formats ISO durations 2015-07-16 16:14:34 -04:00
Paul Beckingham
ac011807d2 ISO: Changed the incorrect 'P0S' to the correct 'PT0S' 2015-07-16 16:14:17 -04:00
Paul Beckingham
3a9505f56c DOM: Durations may now be ISO8601p or Duration 2015-07-16 16:12:31 -04:00
Paul Beckingham
6aaa7c5074 CLI2: Some plain args were not spotted
- A plain arg can be Lexer::Type::word or Lexer::Type::dom.
2015-07-16 16:07:41 -04:00
Wilhelm Schuermann
8613a49f6e Import: Allow importing JSON arrays
- "export" defaults to JSON array output now.  Make "import" read it
  instead of throwing an error.
2015-07-16 12:37:38 +02:00
Paul Beckingham
b92802c2fb Entities: There is no spoon^H^H^H^H^Huda entity
- The code was trying to canonicalize 'attribute' and 'uda' separately,
  but there are no 'uda' entities.
2015-07-15 19:40:13 -04:00
Paul Beckingham
264dae02bc TW-1592: Able to add duplicate tags using 'tags:<value>'
- Thanks to Tomas Babej.
2015-07-15 13:48:47 -04:00
Paul Beckingham
695185e62e Duration: No longer accepts 123e456d as a duration
- Prohibits the use of [eE] in the units.
- Permits use of [+-] only in the first position.
2015-07-15 07:43:08 -04:00
Paul Beckingham
cf816be717 CLI2: Removed incorrect comment 2015-07-13 16:46:07 -04:00
Paul Beckingham
2355738c7a Duration: May also terminate on Lexer::singleCharOperator 2015-07-13 16:45:34 -04:00
Paul Beckingham
1ec029be9b Lexer: Relocated instantiation closer to first use 2015-07-13 16:44:55 -04:00
Paul Beckingham
a7eb32272c TW-1419: On add '-tag' is considered a tag removal, which makes no sense. 2015-07-13 14:24:24 -04:00
Paul Beckingham
326367a36e TW-1488: You have more urgent tasks
- Thanks to Stefan Betz, Denis Kasak.
2015-07-13 11:40:42 -04:00
Paul Beckingham
0990b0d582 TW-1575: task log mangles URLs when quoted
- Thanks to Luke Macken.
2015-07-13 10:41:55 -04:00
Paul Beckingham
78bfe98070 TW-1632: Japanese translation for Taskwarrior(150713)
- Thanks to ribbon.
2015-07-13 09:43:28 -04:00
Paul Beckingham
43e7aace46 Improvement: TW-1615
- TW-1615 Japanese translation for Taskwarrior(150513) (thanks to ribbon).
2015-07-13 08:15:27 -04:00
Paul Beckingham
a09a2bc241 CLI2: Added conditional expression eval
- Only non-'string' type attributes ('numeric', 'date', 'duration') support the
  evaluation of values in FILTER arguments, for example:
    due.before:now+1d
  If evaluation is supported, values need to be lexed into tokens, and if there
  are multiple tokens, parenthesize the set.
2015-07-13 01:09:11 -04:00
Paul Beckingham
9f2efa67c2 CLI2: Reduced verbosity of debug output 2015-07-13 00:22:19 -04:00
Paul Beckingham
d2f5937344 CLI2: Fixed bug that allowed numbers to be interpreted as IDs
- For a WRITECMD with no FILTER args, if a Lexer::Type::number exists as a
  MODIFICATION, and that number is an unsigned integer, then promote it to
  an ID. Added eceptions for the 'add' and 'log' command.

  This feature allows for the continued use of 'task done 1', which should
  be deprecated.
2015-07-12 23:32:26 -04:00
Paul Beckingham
012affa46a CmdUnique: New helper command to generate unique value lists 2015-07-12 22:03:00 -04:00
Paul Beckingham
f0c8330ebf Filter: Added a mechanism to override ::safety 2015-07-12 22:02:11 -04:00
Paul Beckingham
694323a8f1 CLI2: Implemented ::lexFilterArgs
- Now spots filter elements that need to be Lexed.
2015-07-12 17:57:52 -04:00
Paul Beckingham
c2c53fa668 CLI2: Tags args 'UNKNOWN' to help spot an worthless use case 2015-07-12 17:56:59 -04:00
Paul Beckingham
f09a39f043 CLI2: Cleaned up formatting 2015-07-12 17:56:40 -04:00
Paul Beckingham
b7c1658a6e CLI2: Trim incoming raw args 2015-07-12 17:32:10 -04:00
Paul Beckingham
6b78abced2 CLI2: Tightened selection of MODIFICATION Lexer::Type::number upgrade to ID
- When a write command contains no ID/UUID, looking for Lexer::Type::number
  arguments that are tagged as MODIFICATIONS is now limited to only positive
  integers that are found.
2015-07-12 16:12:32 -04:00
Paul Beckingham
81fc158dc9 CLI2: Better algorithm for ::desugarFilterPlainArgs which appears to work well 2015-07-12 14:07:48 -04:00
Paul Beckingham
f240c783cb Config: The 'completed' report haѕ a column labeled 'took'!?
- Good grief.
2015-07-11 22:34:27 -04:00
Paul Beckingham
e930bb0ba9 Columns: Removed _fixed_width for indicator columns
- Column indicator formats (depends.indicator, for example), should not set the
  ::_fixed_width flag because then the column does not have the opportunity to
  be suppressed via rc.print.empty.colums=1.
2015-07-11 22:09:15 -04:00
Paul Beckingham
29d6eceda1 CLI2: ::desugarFilterAttributes now relies on earlier parsing 2015-07-11 17:13:18 -04:00
Paul Beckingham
3f3d698a28 CLI2: Integrated Lexer::decomposePattern 2015-07-11 17:10:10 -04:00
Paul Beckingham
d0e4f4ca10 Lexer: Implemented ::decomposePattern 2015-07-11 17:09:29 -04:00
Paul Beckingham
1f8a66b7f3 CLI2: Integrated Lexer::decomposeSubstitution
- Task::modify now considers the 'g' at the end of a substitution to be a
  string of characters, which may contain 'g'. No other flags are currently
  supported.
2015-07-11 16:44:13 -04:00
Paul Beckingham
1bef45ff47 Lexer: Added ::decomposeSubstitution and more flexible ::dequote
- ::dequote can now be given a string of valid quote characters, which defaults
  to '".
- ::decomposeSubstitution properly parses the /from/to/g construct allowing for
  escaped characters (\/).
- The 'g' at the end of a substitution is now considered to be a string of flag
  characters, which may contain 'g'. No other flag values are currently
  supported.
2015-07-11 16:40:52 -04:00
Paul Beckingham
d6d01ee1bf CLI2: Fixed bug where only the first lexeme was used
- For quoted Lexer::Type::pair arguments, use the whole quoted arg, not merely
  the first lexeme.
2015-07-11 14:31:09 -04:00
Paul Beckingham
6d9d896a37 CLI2: ::lexArguments auto-quotes orignally quoted args, but didn't dequote after 2015-07-11 13:47:26 -04:00
Paul Beckingham
642f378462 Lexer:: Implemented ::isHardBoundary to detect filter tokens 2015-07-11 13:12:09 -04:00
Tomas Babej
15dea00eeb Task: Do not include recurring tasks into OVERDUE virtual tag 2015-07-11 11:46:51 -04:00
Paul Beckingham
8afc7443e4 Lexer: Fixed bug that allowed unterminated quotes strings, again 2015-07-11 11:25:24 -04:00
Paul Beckingham
d3971d2384 Lexer: Replaced ::isString implementation with a call to ::readWord 2015-07-11 11:06:43 -04:00
Paul Beckingham
b7438edfd5 Lexer: Fixed bug that allowed unterminated quotes strings 2015-07-11 10:56:55 -04:00
Paul Beckingham
daba36860b Lexer: Modified ::isSubstitution to use ::readWord 2015-07-11 10:27:23 -04:00
Paul Beckingham
096737bd02 Lexer: Modified ::isPattern to use ::readWord 2015-07-11 10:27:06 -04:00
Paul Beckingham
4d82dd7985 Task: Lexer::Type::word arguments are dequoted before being stored 2015-07-10 13:15:42 -04:00
Paul Beckingham
21be6862db CLI2: ::lexArguments now uses ::readWord to expand escapes 2015-07-10 13:15:16 -04:00
Paul Beckingham
a86edaa6b2 Lexer: Converted ::isPair to use ::readWord
- With ::isPair using ::readWord, attribute values may now contain escaped
  entities such as \t, \uNNNN, and U+NNNN.
- Removed distinct handling for <name><sep><value>, rc<sep><value> and
  rc.<name><sep><value> - all generic now.
2015-07-10 11:24:57 -04:00
Paul Beckingham
45aaa530ac Lexer: Skipping whitespace on ::readWord at SOL was a mistake 2015-07-10 11:23:57 -04:00
Paul Beckingham
e55528e21e Lexer: ::readWord now skips leading whiteSpace 2015-07-08 11:24:46 -04:00