jschlatow / taskopen

Tool for taking notes and open urls with taskwarrior
GNU General Public License v2.0
364 stars 31 forks source link

RFE: taskopen -G <field> #43

Closed linuxcaffe closed 3 years ago

linuxcaffe commented 11 years ago

-G as in Group

This option is an adjunct to sorting, and breaks listings on change of < field >, into logical groups

linuxcaffe commented 11 years ago

Although grouping could be done on any field, some typical candidates might be project, priority, or label.

In the case of project/ sub-project, groupings might change behavior depending on the context. for example, consider a scenario where several projects have several sub-projects.

proj:foo.this proj:foo.that proj:foo.theother proj:bar.this proj:bar,that proj:bar.theother

In a larger context, grouping by sub-project might produce a list that is too granular. In that case, projects should be grouped by top-level changes only, so that

taskopen -G project -l

might produce

Project bar
   all proj:bar items sorted by -s directive
Project foo
   all proj:foo items sorted by -s directive
No project
   items sorted by -s directive

but if a project is specified as part of the < filter >, then groupings should be broken down to sub-project

taskopen -G project -l proj:foo 

Project foo.that
      all proj:foo.that items sorted by -s directive
Project foo.theother
      all proj:foo.theother items sorted by -s directive
Project foo.this
      all proj:foo.this items sorted by -s directive