diff --git a/ChangeLog b/ChangeLog index 4b50821db..00d1eb771 100644 --- a/ChangeLog +++ b/ChangeLog @@ -81,6 +81,8 @@ - Added details in debug mode, for unrecognized data (thanks to Kosta Harlan). - Removed unused 'patterns' configuration variable. - Regular expressions are now enabled by default. +- New verbosity token 'filter' shows the complete filter used by the last + command. ------ current release --------------------------- diff --git a/NEWS b/NEWS index c444ad214..ead02d9a9 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,8 @@ New Features in taskwarrior 2.4.0 TAGGED. - The '_get' command properly uses exit codes. - Regular expressions are now enabled by default. + - The 'filter' verbosity token shows the complete filter used for hte last + command. New commands in taskwarrior 2.4.0 diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index 9b74abfa7..6199699c4 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -254,6 +254,7 @@ control specific occasions when output is generated. This list may contain: special Feedback when applying special tags project Feedback about project status changes sync Feedback about sync + filter Shows the filter used in the command Note that the "on" setting is equivalent to all the tokens being specified, and the "nothing" setting is equivalent to none of the tokens being specified. diff --git a/src/A3t.cpp b/src/A3t.cpp index 3baa88ad6..3ad1fda3c 100644 --- a/src/A3t.cpp +++ b/src/A3t.cpp @@ -554,18 +554,12 @@ const std::string A3t::getFilterExpression () if (sequence != "") sequence = "( " + sequence + " )"; + if (context.verbose ("filter")) + context.footnote ("Filter: " + sequence); + return sequence; - - - - - - - - - - +/* // Locate and extract the filter elements. std::string filter = ""; std::vector ::iterator prev = _tree->_branches.begin (); @@ -573,26 +567,16 @@ const std::string A3t::getFilterExpression () { if ((*i)->hasTag ("FILTER") && ! (*i)->hasTag ("PSEUDO")) { - // Two consecutive FILTER, non-OP arguments that are not "(" or ")" need - // an "and" operator inserted between them. - // - // ) --> ) and - // ( --> ( - // ) ( --> ) and ( - // --> and - // if (i != prev && (((*prev)->hasTag ("FILTER") && ! (*prev)->hasTag ("OP")) || (*prev)->attribute ("raw") == ")") && (! (*i)->hasTag ("OP") || (*i)->attribute ("raw") == "(")) { filter += " and"; } - else if ((*i)->hasTag ("ID") || (*i)->hasTag ("UUID")) { } - else if ((*i)->hasTag ("ATTMOD")) { } @@ -616,11 +600,7 @@ const std::string A3t::getFilterExpression () prev = i; } } - - if (sequence != "") - return "( " + sequence + " ) " + filter; - - return filter; +*/ } //////////////////////////////////////////////////////////////////////////////// diff --git a/src/Config.cpp b/src/Config.cpp index 131494fe7..f5c822050 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -79,7 +79,7 @@ std::string Config::_defaults = "#verbose=no # Provide regular feedback\n" "#verbose=nothing # Provide no feedback\n" "# # Comma-separated list. May contain any subset of:\n" - "#verbose=blank,header,footnote,label,new-id,affected,edit,special,project,sync\n" + "#verbose=blank,header,footnote,label,new-id,affected,edit,special,project,sync,filter\n" "confirmation=yes # Confirmation on delete, big changes\n" "indent.annotation=2 # Indent spaces for annotations\n" "indent.report=0 # Indent spaces for whole report\n" diff --git a/src/Context.cpp b/src/Context.cpp index 6cc592bea..b8edb65a2 100644 --- a/src/Context.cpp +++ b/src/Context.cpp @@ -515,7 +515,8 @@ bool Context::verbose (const std::string& token) verbosity[0] != "edit" && // verbosity[0] != "special" && // verbosity[0] != "project" && // - verbosity[0] != "sync") // + verbosity[0] != "sync" && // + verbosity[0] != "filter") // { verbosity.clear ();