Commit Graph

71 Commits

Author SHA1 Message Date
Paul Beckingham
8684639f72 Filter: Implemnted ::hasFilter to detect command line filters 2015-07-25 10:01:06 -04:00
Paul Beckingham
7aa101de58 Filter: Implemented ::hasModifications to detect command line modifications 2015-07-25 09:28:55 -04:00
Paul Beckingham
f0c8330ebf Filter: Added a mechanism to override ::safety 2015-07-12 22:02:11 -04:00
Paul Beckingham
f0d27dcaac Filter: Removed Eval::disambiguity 2015-07-01 17:53:09 -04:00
Paul Beckingham
5d02291077 Merge branch '2.4.5' of ssh://git.tasktools.org/tm/task into 2.4.5 2015-06-30 07:54:22 -04:00
Paul Beckingham
12bec38f12 Filter: Typo (thanks to Peter Rochen) 2015-06-30 07:53:26 -04:00
Paul Beckingham
358223a6b1 Filter: Corrected implementation of ::safety 2015-06-27 21:08:24 -04:00
Paul Beckingham
b67b2ccc96 CLI2: Added ::addContextFilter, and supporting processing 2015-06-27 15:53:24 -04:00
Paul Beckingham
737cb23546 CLI2: Eliminated CLI
- 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.
2015-06-24 13:23:56 -04:00
Paul Beckingham
6c0ba77204 CLI2: Added ::prepareFilter for the deferred parsing of filters 2015-06-19 10:15:01 -07:00
Paul Beckingham
e74c6963a9 C++11: Cleaned up program framework with range-based for 2015-05-11 17:50:53 -04:00
Tomas Babej
1465bcb918 Context: Do not apply context for the export command 2015-03-14 17:28:20 -04:00
Paul Beckingham
b7ad091d00 Updated copyright to 2015 2015-01-01 00:00:41 -05:00
Paul Beckingham
8795b0a692 TW-1447
- TW-1447 Not possible to filter on a UDA of type String (thanks to atomicules).
2014-12-25 17:18:44 -05:00
Paul Beckingham
d5c937ba8c Filter
- Diagnostics for filter eval were not enabled properly. Now rc.debug.parser=2
  will show all filter eval diagnostics.
2014-11-22 13:48:28 -05:00
Paul Beckingham
dc1e01b1c2 Filter
- Identifies Filter::subset as source of CLI::dump call, rather than the
  default label, which was confusing.
2014-11-22 12:24:55 -05:00
Paul Beckingham
fd518e3fce Filter
- Improved ::pendingOnly algorithm.
2014-11-10 18:11:13 -05:00
Paul Beckingham
771ec1d080 Filter
- Removed all Parser references.
2014-10-31 22:53:00 -04:00
Paul Beckingham
f804a43cee Filter
- Corrected use of rc.debug.parser.
- Added notes for fixing ::pendingOnly.
2014-10-31 22:31:58 -04:00
Paul Beckingham
74526ee564 CLI
- Converted ::safety from Parser to CLI.
- Updated unit tests to use the new template.
- Added tests to cover both values of rc.allow.empty.filter.
2014-10-26 09:02:51 -04:00
Paul Beckingham
b7efb753b5 Filter
- Rewrote ::pendingOnly to work with CLI instead of Parser.
2014-10-24 23:00:06 -04:00
Paul Beckingham
fab9fe2a7d Filter
- Modified algorithm for ::pendingOnly.
2014-10-23 00:36:04 -04:00
Paul Beckingham
b484abea4a CLI, Filter
- Moved parse tree dump into Context::debug output.
2014-10-20 01:01:27 -04:00
Paul Beckingham
fa011c5bfb Filter
- Modified diagnostics to observe rc.debug.parser.
2014-10-06 23:25:31 -04:00
Paul Beckingham
1ccc284cc7 Safety Valve Override
- Support 'allow.empty.filter', defaulting to 'yes', but if 'no' disallows the
  combination of a write command and an empty filter.  Ordinarily this is just
  a warning that requires confirmation (thanks to Lee Lieske).
2014-08-11 12:32:11 -04:00
Paul Beckingham
a3cfc2de7f Filter
- The 'ambiguity' control for Eval was being set *after* the expression was
  parsed, which was useless and misleading.
2014-07-03 15:27:00 -04:00
Paul Beckingham
456b982ced DOM
- Updated DOM to use Variant ovjects, which carry a type which improves
  expression evaluation.
2014-06-11 21:53:00 -04:00
Paul Beckingham
ddcadb35f7 Filter
- Set ambiguity to false, thus disabling recognition of certain date forms.
2014-06-08 14:17:50 -04:00
Paul Beckingham
e6df1b38e2 DOM
- Standardized DOM interface to return success/failure, with the possibility
  of blank values. This matches the Eval::source callback interface‥
- Added more unit tests.
2014-06-04 18:57:36 -04:00
Paul Beckingham
ba8c007ace Filter
- When a filter resolves an identifier through a DOM reference, it records
  the source. In other words, when 'priority' is resolved to 'H', the source
  reference ('priority') is stored in the variant. This is because different
  data attributes behave differently when compared.
2014-05-31 10:01:00 -04:00
Paul Beckingham
688dcb6cd3 Filter
- Fixed ::pendingOnly, which now has a clearly-defined set of rules.
2014-05-30 00:39:38 -04:00
Paul Beckingham
bba0b75a3b Eval
- Cleaned up debug FILTER diagnostics.
2014-05-26 12:16:44 -04:00
Paul Beckingham
79ac26cb02 Filter
- The domSource function is no longer static, and is prototyped in Filter.h
  for general use.
2014-05-25 16:57:46 -04:00
Paul Beckingham
949063102a Diagnostics
- Further removal of diagnostic output.
2014-05-25 14:59:09 -04:00
Paul Beckingham
c0c1eca0fc Filter
- Filter diagnostics include which data file was loaded.
2014-05-25 13:21:36 -04:00
Paul Beckingham
9bea83c2c3 Filter
- Generates debug message about filtering process.
2014-05-25 13:07:56 -04:00
Paul Beckingham
79abddd03d Parser
- Renamed A3t to Parser.
2014-05-25 09:44:22 -04:00
Paul Beckingham
f5a13e5e42 Filter
- Full transition to the new filtering mechanism, using the new expression
  evaluator. It is working well enough to start the dogfood.  Many tests
  now broken.
2014-05-25 08:51:56 -04:00
Paul Beckingham
1964ffc053 Filter
- Implemented the safety mechanism that checks for confirmation is a
  write command processes a filter, but the filter expression is blank.
  For example, running "task delete" would delete all tasks unless this
  safety check is in place.
2014-05-24 23:48:20 -04:00
Paul Beckingham
6cb64e370e Filter
- Added more stubbed transition code.
2014-05-24 15:16:07 -04:00
Paul Beckingham
7e8e48ff08 Filter
- Stubbed code for eventual elimination of E9 in Filter.
2014-05-24 14:15:39 -04:00
Paul Beckingham
2a72d0f1d6 Filter
- Added a static contextTask task reference instead of an iterator that
  domSource cannot dereference.  Idiot.
2014-05-24 13:33:15 -04:00
Paul Beckingham
7ffd391faa Filter
- Filter mismatch reports now only show in debug mode.
2014-05-11 14:46:46 -04:00
Paul Beckingham
8f02fb1b13 Filter
- Clearly marked the obsolete code.
2014-05-11 13:54:28 -04:00
Paul Beckingham
a97ce45cdf Eval
- Debug mode can now be disabled.
2014-05-11 10:15:10 -04:00
Paul Beckingham
656dcde272 Filter
- Implemented ::pendingOnly (was named ::shortcut), for detecting filters
  that do not need to access completed.data.
2014-05-02 23:39:03 -04:00
Paul Beckingham
dea9d3f4ef Filter
- rc.debug=1 propagates to Eval::debug.
- Corrected comments.
2014-04-27 12:49:54 -07:00
Paul Beckingham
899e65714a Filter
- Added domSource, and a context Task so that Eval can access attributes.
  Doesn't work.
2014-04-27 11:06:02 -07:00
Paul Beckingham
fe2634b472 Filter
- New Filter object to control filtering, instead of commands/Command.cpp.
2014-04-27 10:05:05 -07:00
Paul Beckingham
f971fcd110 Code Cleanup
- Obsoleted Filter.{h,cpp}.
- Obsoleted Sequence.{h,cpp}.
- Eliminated Context::autoFilter.
- Stubbed Expression::eval.
2011-06-15 23:45:50 -04:00