Commit graph

275 commits

Author SHA1 Message Date
Paul Beckingham
6f294e2968 Debug: rc.sugar enables ID/UUID snytactic sugar
- This is not documented.  It is not for users.
2015-08-07 11:35:27 -04:00
Paul Beckingham
f9b5513882 Cleanup: Formatting code 2015-08-05 16:50:20 -04:00
Paul Beckingham
036eb6b010 TW-1647: descriptions that are stringified ids
- Thanks to Daniel Shahaf.
2015-08-04 23:40:27 -04:00
Paul Beckingham
0c85725a4c CLI2: Plain arg detection was failing if the arg was the last arg 2015-08-02 11:17:05 -04:00
Paul Beckingham
941e8c9f37 CLI2: When applying extra filters, insert at the beginning, thus avoiding '--' 2015-08-02 10:20:12 -04:00
Paul Beckingham
1921ed77d5 CLI2: Removed command-specific logic in addContextFilter
- This is now driven by command DNA.
2015-08-02 10:14:15 -04:00
Paul Beckingham
758df84539 Context: Now obeys command DNA
- Applying a context filter is now performed only when a command requests it.
2015-08-02 10:08:04 -04:00
Paul Beckingham
caab26247c TW-1642: After "--", an apostrophe unexpectedly ends the task description
- Thanks to Jeremy John Reeder.
2015-07-28 19:58:18 -04:00
Paul Beckingham
f2ecb61edf CLI2: PSEUDO args are no longer candidates for search terms 2015-07-27 02:36:35 -04:00
Paul Beckingham
9c8edc4121 CLI2: ::desugarFilterPlainArgs now needs to look for Lexer::Type::identifier 2015-07-27 02:18:36 -04:00
Paul Beckingham
16620bed45 CLI2: Demoting Lexer::Type::dom args that fail to canonicalize no longer makes sense 2015-07-27 02:13:43 -04:00
Paul Beckingham
7354a8f13f CLI2: Context not applied for certain commands and args
- The 'undo', 'export' and all helper commands are exempt from context
  filtering.
- Any command line containing a FILTER with Lexer:Type::set or Lexer::Type:uuid
  is also exempt from context filtering.
2015-07-25 17:23:06 -04:00
Paul Beckingham
6c31098ad2 CLI2: Context no longer applies to any helper command. 2015-07-25 01:01:24 -04:00
Paul Beckingham
24bb606a52 TW‐1566: Context is applied on 'task export'
- Thanks to Tomas Babej.
2015-07-23 07:25:35 -04:00
Paul Beckingham
ba155aead3 TW-1638 Undo doesn't work when a context is set
- Thanks to Jeremy John Reeder.
2015-07-22 11:37:10 -04:00
Paul Beckingham
7ee8ad4e44 TW-1634: due.not:<date> excludes only tasks scheduled at mitnight
- Thanks to Tomas Babej.
2015-07-19 14:48:35 -04:00
Paul Beckingham
251eedf7e5 CLI2: Dead code removal 2015-07-17 15:35:11 -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
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
cf816be717 CLI2: Removed incorrect comment 2015-07-13 16:46:07 -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
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
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
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
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
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
21be6862db CLI2: ::lexArguments now uses ::readWord to expand escapes 2015-07-10 13:15:16 -04:00
Paul Beckingham
5a21945a0d CLI2: Integrated Lexer::decomposePair 2015-07-08 09:48:15 -04:00
Paul Beckingham
abaf326855 CLI2: Added note about path exclusion 2015-07-06 16:03:24 -04:00
Paul Beckingham
0ee26a0cae CLI2: No longer attempts to canonicalize rc:<file> and rc.<name>:<value> 2015-07-06 12:14:52 -04:00
Paul Beckingham
dcb13bd2b4 CLI2: Integrated Lexer::decomposePair into A2::decompose 2015-07-06 12:13:46 -04:00
Paul Beckingham
023fd9d38a CLI2: Removed obsolete ::decomposeModSubstitutions 2015-07-05 16:31:30 -04:00
Paul Beckingham
af71af1085 CLI2: Removed obsolete ::decomposeModTags 2015-07-05 16:30:59 -04:00
Paul Beckingham
f5ece63ec0 CLI2: Removed obsolete ::decomposeModAttributes 2015-07-05 16:29:54 -04:00
Paul Beckingham
460f2aeea5 CLI2: Refactoring
- Whenever A2::attribute sees 'raw' being set, it automaticall decomposes the
  arg, which can now be removed from other methods.
- New ::canonicalizeNames method means that the ::decomposeMod* methods are no
  longer needed.
- Removed ::findOverrides which now does nothing.
2015-07-05 16:13:56 -04:00
Paul Beckingham
0c568580b3 CLI2: Removed obsolete ::isUUIDList
- Removed unsupported UUID lists, which shoudl have been removed earlier when
  Lexer::Type::list was dropped.
- Reversed logic in 'if' statements to perform the lowest cost comparison first.
2015-07-05 10:39:34 -04:00
Paul Beckingham
184fde0f5f CLI2: Skips first terminator, --, but not others 2015-07-04 16:39:15 -04:00
Paul Beckingham
a7982e434a CLI2: Quoted Lexer::Type::pair args are maximal 2015-07-04 15:33:44 -04:00
Paul Beckingham
796a26cad8 CLI2: Simplified ::lexArguments
- ::lexArguments no longer lexes arguments into multiple tokens, instead it
  simply assigns the type, if the argument is a single token.
2015-07-01 21:49:31 -04:00
Paul Beckingham
bce24da6a5 CLI2: Eliminated unnecessary ::findTerminator 2015-07-01 21:47:19 -04:00
Paul Beckingham
a2874f7f10 CLI2: Added more logic to ::lexArguments 2015-07-01 18:03:43 -04:00