doing 2.1.103 → 2.1.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +3 -1
  5. data/bin/commands/view.rb +5 -0
  6. data/bin/doing +5 -0
  7. data/docs/doc/Array.html +1 -1
  8. data/docs/doc/BooleanTermParser/Clause.html +1 -1
  9. data/docs/doc/BooleanTermParser/Operator.html +1 -1
  10. data/docs/doc/BooleanTermParser/Query.html +1 -1
  11. data/docs/doc/BooleanTermParser/QueryParser.html +1 -1
  12. data/docs/doc/BooleanTermParser/QueryTransformer.html +1 -1
  13. data/docs/doc/BooleanTermParser.html +1 -1
  14. data/docs/doc/Doing/ArrayCleanup.html +1 -1
  15. data/docs/doc/Doing/ArrayNestedHash.html +1 -1
  16. data/docs/doc/Doing/ArrayTags.html +1 -1
  17. data/docs/doc/Doing/ByDayExport.html +1 -1
  18. data/docs/doc/Doing/CSVExport.html +1 -1
  19. data/docs/doc/Doing/CalendarImport.html +1 -1
  20. data/docs/doc/Doing/Change.html +1 -1
  21. data/docs/doc/Doing/Changes.html +1 -1
  22. data/docs/doc/Doing/ChronifyArray.html +1 -1
  23. data/docs/doc/Doing/ChronifyNumeric.html +1 -1
  24. data/docs/doc/Doing/ChronifyString.html +1 -1
  25. data/docs/doc/Doing/Color.html +1 -1
  26. data/docs/doc/Doing/Completion/BashCompletions.html +1 -1
  27. data/docs/doc/Doing/Completion/FigCompletions.html +1 -1
  28. data/docs/doc/Doing/Completion/FishCompletions.html +1 -1
  29. data/docs/doc/Doing/Completion/StringUtils.html +1 -1
  30. data/docs/doc/Doing/Completion/ZshCompletions.html +1 -1
  31. data/docs/doc/Doing/Completion.html +1 -1
  32. data/docs/doc/Doing/Configuration.html +2 -1
  33. data/docs/doc/Doing/DayOneRenderer.html +1 -1
  34. data/docs/doc/Doing/DayoneExport.html +1 -1
  35. data/docs/doc/Doing/DoingExport.html +1 -1
  36. data/docs/doc/Doing/DoingImport.html +1 -1
  37. data/docs/doc/Doing/Entry.html +1 -1
  38. data/docs/doc/Doing/Errors/DoingNoTraceError.html +1 -1
  39. data/docs/doc/Doing/Errors/DoingRuntimeError.html +1 -1
  40. data/docs/doc/Doing/Errors/DoingStandardError.html +1 -1
  41. data/docs/doc/Doing/Errors/EmptyInput.html +1 -1
  42. data/docs/doc/Doing/Errors/HistoryLimitError.html +1 -1
  43. data/docs/doc/Doing/Errors/InvalidPlugin.html +1 -1
  44. data/docs/doc/Doing/Errors/MissingBackupFile.html +1 -1
  45. data/docs/doc/Doing/Errors/NoResults.html +1 -1
  46. data/docs/doc/Doing/Errors/PluginException.html +1 -1
  47. data/docs/doc/Doing/Errors/UserCancelled.html +1 -1
  48. data/docs/doc/Doing/Errors/WrongCommand.html +1 -1
  49. data/docs/doc/Doing/Errors.html +1 -1
  50. data/docs/doc/Doing/HTMLExport.html +1 -1
  51. data/docs/doc/Doing/Hooks.html +1 -1
  52. data/docs/doc/Doing/Item.html +1 -1
  53. data/docs/doc/Doing/ItemDates.html +1 -1
  54. data/docs/doc/Doing/ItemQuery.html +1 -1
  55. data/docs/doc/Doing/ItemState.html +1 -1
  56. data/docs/doc/Doing/ItemTags.html +1 -1
  57. data/docs/doc/Doing/Items.html +1 -1
  58. data/docs/doc/Doing/JSONExport.html +1 -1
  59. data/docs/doc/Doing/JSONImport.html +1 -1
  60. data/docs/doc/Doing/Logger.html +1 -1
  61. data/docs/doc/Doing/MarkdownExport.html +1 -1
  62. data/docs/doc/Doing/Note.html +1 -1
  63. data/docs/doc/Doing/Pager.html +1 -1
  64. data/docs/doc/Doing/Plugins.html +1 -1
  65. data/docs/doc/Doing/Prompt.html +1 -1
  66. data/docs/doc/Doing/PromptChoose.html +1 -1
  67. data/docs/doc/Doing/PromptFZF.html +1 -1
  68. data/docs/doc/Doing/PromptInput.html +1 -1
  69. data/docs/doc/Doing/PromptSTD.html +1 -1
  70. data/docs/doc/Doing/PromptYN.html +1 -1
  71. data/docs/doc/Doing/Section.html +1 -1
  72. data/docs/doc/Doing/StringHighlight.html +1 -1
  73. data/docs/doc/Doing/StringNormalize.html +1 -1
  74. data/docs/doc/Doing/StringQuery.html +1 -1
  75. data/docs/doc/Doing/StringTags.html +1 -1
  76. data/docs/doc/Doing/StringTransform.html +1 -1
  77. data/docs/doc/Doing/StringTruncate.html +1 -1
  78. data/docs/doc/Doing/StringURL.html +1 -1
  79. data/docs/doc/Doing/SymbolNormalize.html +1 -1
  80. data/docs/doc/Doing/TaskPaperExport.html +1 -1
  81. data/docs/doc/Doing/TemplateExport.html +1 -1
  82. data/docs/doc/Doing/TemplateString.html +1 -1
  83. data/docs/doc/Doing/TimingImport.html +1 -1
  84. data/docs/doc/Doing/Types.html +11 -1
  85. data/docs/doc/Doing/Util/Backup.html +1 -1
  86. data/docs/doc/Doing/Util.html +1 -1
  87. data/docs/doc/Doing/Version.html +1 -1
  88. data/docs/doc/Doing/WWID.html +3 -3
  89. data/docs/doc/Doing.html +2 -2
  90. data/docs/doc/FalseClass.html +1 -1
  91. data/docs/doc/GLI/Commands/Help.html +1 -1
  92. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
  93. data/docs/doc/GLI/Commands.html +1 -1
  94. data/docs/doc/GLI.html +1 -1
  95. data/docs/doc/Hash.html +1 -1
  96. data/docs/doc/Numeric.html +1 -1
  97. data/docs/doc/Object.html +1 -1
  98. data/docs/doc/PhraseParser/Operator.html +1 -1
  99. data/docs/doc/PhraseParser/PhraseClause.html +1 -1
  100. data/docs/doc/PhraseParser/Query.html +1 -1
  101. data/docs/doc/PhraseParser/QueryParser.html +1 -1
  102. data/docs/doc/PhraseParser/QueryTransformer.html +1 -1
  103. data/docs/doc/PhraseParser/TermClause.html +1 -1
  104. data/docs/doc/PhraseParser.html +1 -1
  105. data/docs/doc/Status.html +1 -1
  106. data/docs/doc/String.html +1 -1
  107. data/docs/doc/Symbol.html +1 -1
  108. data/docs/doc/Time.html +1 -1
  109. data/docs/doc/TrueClass.html +1 -1
  110. data/docs/doc/_index.html +1 -1
  111. data/docs/doc/file.README.html +4 -2
  112. data/docs/doc/index.html +4 -2
  113. data/docs/doc/top-level-namespace.html +1 -1
  114. data/doing.rdoc +65 -1
  115. data/lib/completion/_doing.zsh +9 -9
  116. data/lib/completion/doing.bash +16 -16
  117. data/lib/completion/doing.fish +8 -0
  118. data/lib/completion/doing.ts +90 -0
  119. data/lib/doing/add_options.rb +4 -0
  120. data/lib/doing/configuration.rb +1 -0
  121. data/lib/doing/plugins/export/template_export.rb +3 -1
  122. data/lib/doing/types.rb +2 -0
  123. data/lib/doing/version.rb +1 -1
  124. data/lib/doing/wwid/timers.rb +46 -8
  125. metadata +1 -1
@@ -71,7 +71,7 @@ you&#39;ve done.</strong></p>
71
71
 
72
72
  <!--README-->
73
73
 
74
- <p>The current version of <code>doing</code> is &lt;!--VER--&gt;2.1.99&lt;!--END VER--&gt;.</p>
74
+ <p>The current version of <code>doing</code> is &lt;!--VER--&gt;2.1.103&lt;!--END VER--&gt;.</p>
75
75
 
76
76
  <p>Find all of the documentation in the <a href="https://github.com/ttscoff/doing/wiki">doing wiki</a>.</p>
77
77
 
@@ -106,6 +106,8 @@ analyzing the results.</p>
106
106
 
107
107
  <ul>
108
108
  <li>Totals output now supports <code>--by</code> grouping (for example <code>--by tags</code> and/or <code>--by section</code>, repeatable for ordering).</li>
109
+ <li>Totals output now supports <code>--totals_format</code> (for example <code>clock</code>, <code>hmclock</code>, and <code>averages</code>) with <code>totals_format</code> config fallback.</li>
110
+ <li>The <code>averages</code> totals format appends summary stats like <code>(&lt;hours&gt;h &lt;minutes&gt; min, &lt;avg&gt;h/day)</code> to <code>Total tracked</code>.</li>
109
111
  <li>Long flags with underscores also accept dashes (for example <code>--only_timed</code> or <code>--only-timed</code>).</li>
110
112
  <li>Underscored subcommands also accept dashed aliases (for example <code>doing tag_dir</code> or <code>doing tag-dir</code>).</li>
111
113
  </ul>
@@ -161,7 +163,7 @@ with changes. Please target the <code>develop</code> branch with pull requests.<
161
163
  </div></div>
162
164
 
163
165
  <div id="footer">
164
- Generated on Mon Mar 23 04:24:51 2026 by
166
+ Generated on Mon Mar 23 08:30:22 2026 by
165
167
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
166
168
  0.9.36 (ruby-4.0.2).
167
169
  </div>
data/docs/doc/index.html CHANGED
@@ -71,7 +71,7 @@ you&#39;ve done.</strong></p>
71
71
 
72
72
  <!--README-->
73
73
 
74
- <p>The current version of <code>doing</code> is &lt;!--VER--&gt;2.1.99&lt;!--END VER--&gt;.</p>
74
+ <p>The current version of <code>doing</code> is &lt;!--VER--&gt;2.1.103&lt;!--END VER--&gt;.</p>
75
75
 
76
76
  <p>Find all of the documentation in the <a href="https://github.com/ttscoff/doing/wiki">doing wiki</a>.</p>
77
77
 
@@ -106,6 +106,8 @@ analyzing the results.</p>
106
106
 
107
107
  <ul>
108
108
  <li>Totals output now supports <code>--by</code> grouping (for example <code>--by tags</code> and/or <code>--by section</code>, repeatable for ordering).</li>
109
+ <li>Totals output now supports <code>--totals_format</code> (for example <code>clock</code>, <code>hmclock</code>, and <code>averages</code>) with <code>totals_format</code> config fallback.</li>
110
+ <li>The <code>averages</code> totals format appends summary stats like <code>(&lt;hours&gt;h &lt;minutes&gt; min, &lt;avg&gt;h/day)</code> to <code>Total tracked</code>.</li>
109
111
  <li>Long flags with underscores also accept dashes (for example <code>--only_timed</code> or <code>--only-timed</code>).</li>
110
112
  <li>Underscored subcommands also accept dashed aliases (for example <code>doing tag_dir</code> or <code>doing tag-dir</code>).</li>
111
113
  </ul>
@@ -161,7 +163,7 @@ with changes. Please target the <code>develop</code> branch with pull requests.<
161
163
  </div></div>
162
164
 
163
165
  <div id="footer">
164
- Generated on Mon Mar 23 04:24:51 2026 by
166
+ Generated on Mon Mar 23 08:30:22 2026 by
165
167
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
166
168
  0.9.36 (ruby-4.0.2).
167
169
  </div>
@@ -216,7 +216,7 @@
216
216
  </div>
217
217
 
218
218
  <div id="footer">
219
- Generated on Mon Mar 23 04:24:51 2026 by
219
+ Generated on Mon Mar 23 08:30:22 2026 by
220
220
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
221
221
  0.9.36 (ruby-4.0.2).
222
222
  </div>
data/doing.rdoc CHANGED
@@ -5,7 +5,7 @@ record of what you've been doing, complete with tag-based time tracking. The
5
5
  command line tool allows you to add entries, annotate with tags and notes, and
6
6
  view your entries with myriad options, with a focus on a "natural" language syntax.
7
7
 
8
- v2.1.103
8
+ v2.1.105
9
9
 
10
10
  === Global Options
11
11
  === --config_file arg
@@ -1025,6 +1025,14 @@ Title string to be used for output formats that require it
1025
1025
  [Default Value] None
1026
1026
 
1027
1027
 
1028
+ ===== --totals_format FORMAT
1029
+
1030
+ Time format for totals output (clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m|averages)
1031
+
1032
+ [Default Value] None
1033
+ [Must Match] (?i-mx:^(?:averages|clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m)$)
1034
+
1035
+
1028
1036
  ===== --val QUERY
1029
1037
 
1030
1038
  Perform a tag value query ("@done > two hours ago" or "@progress < 50").
@@ -1729,6 +1737,14 @@ Title string to be used for output formats that require it
1729
1737
  [Default Value] None
1730
1738
 
1731
1739
 
1740
+ ===== --totals_format FORMAT
1741
+
1742
+ Time format for totals output (clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m|averages)
1743
+
1744
+ [Default Value] None
1745
+ [Must Match] (?i-mx:^(?:averages|clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m)$)
1746
+
1747
+
1732
1748
  ===== --val QUERY
1733
1749
 
1734
1750
  Perform a tag value query ("@done > two hours ago" or "@progress < 50").
@@ -1888,6 +1904,14 @@ Title string to be used for output formats that require it
1888
1904
  [Default Value] None
1889
1905
 
1890
1906
 
1907
+ ===== --totals_format FORMAT
1908
+
1909
+ Time format for totals output (clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m|averages)
1910
+
1911
+ [Default Value] None
1912
+ [Must Match] (?i-mx:^(?:averages|clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m)$)
1913
+
1914
+
1891
1915
  ===== --[no-]duration
1892
1916
  Show elapsed time on entries without @done tag
1893
1917
 
@@ -2466,6 +2490,14 @@ Title string to be used for output formats that require it
2466
2490
  [Default Value] None
2467
2491
 
2468
2492
 
2493
+ ===== --totals_format FORMAT
2494
+
2495
+ Time format for totals output (clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m|averages)
2496
+
2497
+ [Default Value] None
2498
+ [Must Match] (?i-mx:^(?:averages|clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m)$)
2499
+
2500
+
2469
2501
  ===== --val QUERY
2470
2502
 
2471
2503
  Perform a tag value query ("@done > two hours ago" or "@progress < 50").
@@ -2628,6 +2660,14 @@ Title string to be used for output formats that require it
2628
2660
  [Default Value] None
2629
2661
 
2630
2662
 
2663
+ ===== --totals_format FORMAT
2664
+
2665
+ Time format for totals output (clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m|averages)
2666
+
2667
+ [Default Value] None
2668
+ [Must Match] (?i-mx:^(?:averages|clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m)$)
2669
+
2670
+
2631
2671
  ===== --val QUERY
2632
2672
 
2633
2673
  Perform a tag value query ("@done > two hours ago" or "@progress < 50").
@@ -3039,6 +3079,14 @@ Title string to be used for output formats that require it
3039
3079
  [Default Value] None
3040
3080
 
3041
3081
 
3082
+ ===== --totals_format FORMAT
3083
+
3084
+ Time format for totals output (clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m|averages)
3085
+
3086
+ [Default Value] None
3087
+ [Must Match] (?i-mx:^(?:averages|clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m)$)
3088
+
3089
+
3042
3090
  ===== --[no-]duration
3043
3091
  Show elapsed time on entries without @done tag
3044
3092
 
@@ -3254,6 +3302,14 @@ Override output format with a template string containing %placeholders
3254
3302
  [Default Value] None
3255
3303
 
3256
3304
 
3305
+ ===== --totals_format FORMAT
3306
+
3307
+ Time format for totals output (clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m|averages)
3308
+
3309
+ [Default Value] None
3310
+ [Must Match] (?i-mx:^(?:averages|clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m)$)
3311
+
3312
+
3257
3313
  ===== --val QUERY
3258
3314
 
3259
3315
  Perform a tag value query ("@done > two hours ago" or "@progress < 50").
@@ -3492,6 +3548,14 @@ Title string to be used for output formats that require it
3492
3548
  [Default Value] None
3493
3549
 
3494
3550
 
3551
+ ===== --totals_format FORMAT
3552
+
3553
+ Time format for totals output (clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m|averages)
3554
+
3555
+ [Default Value] None
3556
+ [Must Match] (?i-mx:^(?:averages|clock|hmclock|hm|dhm|ydhm|tight|natural|speech|m)$)
3557
+
3558
+
3495
3559
  ===== --[no-]duration
3496
3560
  Show elapsed time on entries without @done tag
3497
3561
 
@@ -117,10 +117,10 @@ function _doing() {
117
117
  args=( {'(--archive)-a','(-a)--archive'}"[Archive entries]" "--finished[Set finish date to specific date/time]:DATE_STRING:" "--auto[Auto-generate finish dates from next entry's start time]" "--started[Backdate completed date to date string [4pm|20m|2h|yesterday noon]]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--date[Include date]" "--from[Start and end times as a date/time range `doing done --from \"1am to 8am\"`]:TIME_RANGE:" {'(--interactive)-i','(-i)--interactive'}"[Select item(s) to finish from a menu of matching entries]" "--not[Finish items that *don't* match search/tag filters]" {'(--remove)-r','(-r)--remove'}"[Remove @done tag]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--search[Filter entries using a search query]:QUERY:" "--for[Set completion date to start date plus interval]:INTERVAL:" "--tag[Filter entries by tag]:TAG:" {'(--unfinished)-u','(-u)--unfinished'}"[Finish last entry]" "--update[Overwrite existing @done tag with new date]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
118
118
  ;;
119
119
  grep)
120
- args=( "--after[Search entries newer than date]:DATE_STRING:" "--before[Search entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" {'(--delete)-d','(-d)--delete'}"[Delete matching entries]" "--duration[Show elapsed time on entries without @done tag]" {'(--editor)-e','(-e)--editor'}"[Edit matching entries with vim]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Display an interactive menu of results to perform further operations]" "--not[Search items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact string matching]" )
120
+ args=( "--after[Search entries newer than date]:DATE_STRING:" "--before[Search entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" {'(--delete)-d','(-d)--delete'}"[Delete matching entries]" "--duration[Show elapsed time on entries without @done tag]" {'(--editor)-e','(-e)--editor'}"[Edit matching entries with vim]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Display an interactive menu of results to perform further operations]" "--not[Search items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--totals_format[Time format for totals output]:FORMAT:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact string matching]" )
121
121
  ;;
122
122
  search)
123
- args=( "--after[Search entries newer than date]:DATE_STRING:" "--before[Search entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" {'(--delete)-d','(-d)--delete'}"[Delete matching entries]" "--duration[Show elapsed time on entries without @done tag]" {'(--editor)-e','(-e)--editor'}"[Edit matching entries with vim]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Display an interactive menu of results to perform further operations]" "--not[Search items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact string matching]" )
123
+ args=( "--after[Search entries newer than date]:DATE_STRING:" "--before[Search entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" {'(--delete)-d','(-d)--delete'}"[Delete matching entries]" "--duration[Show elapsed time on entries without @done tag]" {'(--editor)-e','(-e)--editor'}"[Edit matching entries with vim]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Display an interactive menu of results to perform further operations]" "--not[Search items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--totals_format[Time format for totals output]:FORMAT:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact string matching]" )
124
124
  ;;
125
125
  help)
126
126
  args=( )
@@ -150,7 +150,7 @@ function _doing() {
150
150
  args=( {'(--noauto)-X','(-X)--noauto'}"[Exclude auto tags and default tags]" "--ask[Prompt for note via multi-line input]" "--since[Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]]:DATE_STRING:" {'(--editor)-e','(-e)--editor'}"[Edit entry with vim]" {'(--finish_last)-f','(-f)--finish_last'}"[Timed entry]" "--from[Set a start and optionally end time as a date range]:TIME_RANGE:" {'(--note)-n','(-n)--note'}"[Include a note]:TEXT:" {'(--section)-s','(-s)--section'}"[Section]:NAME:" )
151
151
  ;;
152
152
  on)
153
- args=( "--after[View entries after specified time]:TIME_STRING:" "--before[View entries before specified time]:TIME_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Time range to show `doing on --from \"12pm to 4pm\"`]:TIME_RANGE:" "--not[Show items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" "--search[Filter entries using a search query]:QUERY:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
153
+ args=( "--after[View entries after specified time]:TIME_STRING:" "--before[View entries before specified time]:TIME_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Time range to show `doing on --from \"12pm to 4pm\"`]:TIME_RANGE:" "--not[Show items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" "--search[Filter entries using a search query]:QUERY:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--totals_format[Time format for totals output]:FORMAT:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
154
154
  ;;
155
155
  open)
156
156
  args=( {'(--app)-a','(-a)--app'}"[Open with app name]:APP_NAME:" {'(--bundle_id)-b','(-b)--bundle_id'}"[Open with app bundle id]:BUNDLE_ID:" {'(--editor)-e','(-e)--editor'}"[Open with editor command]:COMMAND:" )
@@ -159,7 +159,7 @@ function _doing() {
159
159
  args=( {'(--column)-c','(-c)--column'}"[List in single column for completion]" {'(--type)-t','(-t)--type'}"[List plugins of type]:TYPE:" )
160
160
  ;;
161
161
  recent)
162
- args=( "--by[Totals grouping]:GROUP:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" {'(--interactive)-i','(-i)--interactive'}"[Select from a menu of matching entries to perform additional operations]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" )
162
+ args=( "--by[Totals grouping]:GROUP:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" {'(--interactive)-i','(-i)--interactive'}"[Select from a menu of matching entries to perform additional operations]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--totals_format[Time format for totals output]:FORMAT:" )
163
163
  ;;
164
164
  redo)
165
165
  args=( {'(--file)-f','(-f)--file'}"[Specify alternate doing file]:PATH:" {'(--interactive)-i','(-i)--interactive'}"[Select from an interactive menu]" )
@@ -180,10 +180,10 @@ function _doing() {
180
180
  args=( {'(--archive)-a','(-a)--archive'}"[Archive selected items]" "--after[Select entries newer than date]:DATE_STRING:" "--resume[Copy selection as a new entry with current time and no @done tag]" "--before[Select entries older than date]:DATE_STRING:" {'(--cancel)-c','(-c)--cancel'}"[Cancel selected items]" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" {'(--delete)-d','(-d)--delete'}"[Delete selected items]" {'(--editor)-e','(-e)--editor'}"[Edit selected item(s)]" {'(--finish)-f','(-f)--finish'}"[Add @done with current time to selected item(s)]" "--flag[Add flag to selected item(s)]" "--force[Perform action without confirmation]" "--from[Date range]:DATE_OR_RANGE:" {'(--move)-m','(-m)--move'}"[Move selected items to section]:SECTION:" "--menu[Use --no-menu to skip the interactive menu]" "--not[Select items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output entries to format]:FORMAT:" {'(--query)-q','(-q)--query'}"[Initial search query for filtering]:QUERY:" {'(--remove)-r','(-r)--remove'}"[Reverse -c]" {'(--section)-s','(-s)--section'}"[Select from a specific section]:SECTION:" "--save_to[Save selected entries to file using --output format]:FILE:" "--search[Filter entries using a search query]:QUERY:" {'(--tag)-t','(-t)--tag'}"[Tag selected entries]:TAG:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
181
181
  ;;
182
182
  show)
183
- args=( {'(--age)-a','(-a)--age'}"[Age]:AGE:" "--after[Show entries newer than date]:DATE_STRING:" "--before[Show entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" {'(--count)-c','(-c)--count'}"[Max count to show]:MAX:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" {'(--editor)-e','(-e)--editor'}"[Edit matching entries with vim]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Select from a menu of matching entries to perform additional operations]" {'(--menu)-m','(-m)--menu'}"[Select section or tag to display from a menu]" "--not[Show items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Only show entries within section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" "--search[Filter entries using a search query]:QUERY:" "--sort[Sort order]:ORDER:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
183
+ args=( {'(--age)-a','(-a)--age'}"[Age]:AGE:" "--after[Show entries newer than date]:DATE_STRING:" "--before[Show entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" {'(--count)-c','(-c)--count'}"[Max count to show]:MAX:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" {'(--editor)-e','(-e)--editor'}"[Edit matching entries with vim]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Select from a menu of matching entries to perform additional operations]" {'(--menu)-m','(-m)--menu'}"[Select section or tag to display from a menu]" "--not[Show items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Only show entries within section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" "--search[Filter entries using a search query]:QUERY:" "--sort[Sort order]:ORDER:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--totals_format[Time format for totals output]:FORMAT:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
184
184
  ;;
185
185
  since)
186
- args=( "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--not[Since items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" "--search[Filter entries using a search query]:QUERY:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
186
+ args=( "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--not[Since items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" "--search[Filter entries using a search query]:QUERY:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--totals_format[Time format for totals output]:FORMAT:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
187
187
  ;;
188
188
  tag)
189
189
  args=( {'(--autotag)-a','(-a)--autotag'}"[Autotag entries based on autotag configuration in ~/]" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" {'(--count)-c','(-c)--count'}"[How many recent entries to tag]:COUNT:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" {'(--date)-d','(-d)--date'}"[Include current date/time with tag]" "--force[Don't ask permission to tag all entries when count is 0]" {'(--interactive)-i','(-i)--interactive'}"[Select item(s) to tag from a menu of matching entries]" "--not[Tag items that *don't* match search/tag filters]" {'(--remove)-r','(-r)--remove'}"[Remove given tag(s)]" "--regex[Interpret tag string as regular expression]" "--rename[Replace existing tag with tag argument]:ORIG_TAG:" {'(--section)-s','(-s)--section'}"[Section]:SECTION_NAME:" "--search[Filter entries using a search query]:QUERY:" "--tag[Filter entries by tag]:TAG:" {'(--unfinished)-u','(-u)--unfinished'}"[Tag last entry]" {'(--value)-v','(-v)--value'}"[Include a value]:VALUE:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
@@ -201,7 +201,7 @@ function _doing() {
201
201
  args=( )
202
202
  ;;
203
203
  today)
204
- args=( "--after[View entries after specified time]:TIME_STRING:" "--before[View entries before specified time]:TIME_STRING:" "--by[Totals grouping]:GROUP:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Time range to show `doing today --from \"12pm to 4pm\"`]:TIME_RANGE:" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Specify a section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" )
204
+ args=( "--after[View entries after specified time]:TIME_STRING:" "--before[View entries before specified time]:TIME_STRING:" "--by[Totals grouping]:GROUP:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Time range to show `doing today --from \"12pm to 4pm\"`]:TIME_RANGE:" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Specify a section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--totals_format[Time format for totals output]:FORMAT:" )
205
205
  ;;
206
206
  todo)
207
207
  args=( "--ask[Prompt for note via multi-line input]" {'(--editor)-e','(-e)--editor'}"[Edit entry with vim]" {'(--note)-n','(-n)--note'}"[Note]:TEXT:" )
@@ -213,7 +213,7 @@ function _doing() {
213
213
  args=( "--beta[Check for pre-release version]" )
214
214
  ;;
215
215
  view)
216
- args=( "--after[Show entries newer than date]:DATE_STRING:" "--age[Age]:AGE:" "--before[Show entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" {'(--count)-c','(-c)--count'}"[Count to display]:COUNT:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--color[Include colors in output]" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Select from a menu of matching entries to perform additional operations]" "--not[Show items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--search[Filter entries using a search query]:QUERY:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show intervals with totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
216
+ args=( "--after[Show entries newer than date]:DATE_STRING:" "--age[Age]:AGE:" "--before[Show entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--by[Totals grouping]:GROUP:" {'(--count)-c','(-c)--count'}"[Count to display]:COUNT:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--color[Include colors in output]" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Select from a menu of matching entries to perform additional operations]" "--not[Show items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--search[Filter entries using a search query]:QUERY:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show intervals with totals at the end of output]" "--totals_format[Time format for totals output]:FORMAT:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
217
217
  ;;
218
218
  views)
219
219
  args=( {'(--column)-c','(-c)--column'}"[List in single column]" {'(--editor)-e','(-e)--editor'}"[Open YAML for view in editor]" {'(--output)-o','(-o)--output'}"[Output/edit view in alternative format]:FORMAT:" {'(--remove)-r','(-r)--remove'}"[Delete view config]" )
@@ -222,7 +222,7 @@ function _doing() {
222
222
  args=( "--after[Include entries newer than date]:DATE_STRING:" {'(--bool)-b','(-b)--bool'}"[Tag boolean]:BOOLEAN:" "--before[Include entries older than date]:DATE_STRING:" {'(--from)-f','(-f)--from'}"[Date range to include]:DATE_OR_RANGE:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section to rotate]:SECTION_NAME:" "--search[Search filter]:QUERY:" "--tag[Tag filter]:TAG:" )
223
223
  ;;
224
224
  yesterday)
225
- args=( "--after[View entries after specified time]:TIME_STRING:" "--before[View entries before specified time]:TIME_STRING:" "--by[Totals grouping]:GROUP:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Time range to show `doing yesterday --from \"12pm to 4pm\"`]:TIME_RANGE:" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Specify a section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" )
225
+ args=( "--after[View entries after specified time]:TIME_STRING:" "--before[View entries before specified time]:TIME_STRING:" "--by[Totals grouping]:GROUP:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Time range to show `doing yesterday --from \"12pm to 4pm\"`]:TIME_RANGE:" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Specify a section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--totals[Show time totals at the end of output]" "--totals_format[Time format for totals output]:FORMAT:" )
226
226
  ;;
227
227
  esac
228
228
 
@@ -121,9 +121,9 @@ _doing_finish() {
121
121
  _doing_grep() {
122
122
 
123
123
  if [[ "$token" == --* ]]; then
124
- COMPREPLY=( $( compgen -W '--after --before --bool --by --case --config_template --delete --duration --editor --from --hilite --interactive --not --output --only_timed --section --save --times --tag --tag_order --tag_sort --template --title --totals --val --exact' -- $token ) )
124
+ COMPREPLY=( $( compgen -W '--after --before --bool --by --case --config_template --delete --duration --editor --from --hilite --interactive --not --output --only_timed --section --save --times --tag --tag_order --tag_sort --template --title --totals --totals_format --val --exact' -- $token ) )
125
125
  elif [[ "$token" == -* ]]; then
126
- COMPREPLY=( $( compgen -W '-d -e -h -i -o -s -t -x --after --before --bool --by --case --config_template --delete --duration --editor --from --hilite --interactive --not --output --only_timed --section --save --times --tag --tag_order --tag_sort --template --title --totals --val --exact' -- $token ) )
126
+ COMPREPLY=( $( compgen -W '-d -e -h -i -o -s -t -x --after --before --bool --by --case --config_template --delete --duration --editor --from --hilite --interactive --not --output --only_timed --section --save --times --tag --tag_order --tag_sort --template --title --totals --totals_format --val --exact' -- $token ) )
127
127
 
128
128
  fi
129
129
  }
@@ -201,9 +201,9 @@ _doing_now() {
201
201
  _doing_on() {
202
202
 
203
203
  if [[ "$token" == --* ]]; then
204
- COMPREPLY=( $( compgen -W '--after --before --bool --by --case --config_template --duration --from --not --output --only_timed --section --save --search --times --tag --tag_order --tag_sort --template --title --totals --val --exact' -- $token ) )
204
+ COMPREPLY=( $( compgen -W '--after --before --bool --by --case --config_template --duration --from --not --output --only_timed --section --save --search --times --tag --tag_order --tag_sort --template --title --totals --totals_format --val --exact' -- $token ) )
205
205
  elif [[ "$token" == -* ]]; then
206
- COMPREPLY=( $( compgen -W '-o -s -t -x --after --before --bool --by --case --config_template --duration --from --not --output --only_timed --section --save --search --times --tag --tag_order --tag_sort --template --title --totals --val --exact' -- $token ) )
206
+ COMPREPLY=( $( compgen -W '-o -s -t -x --after --before --bool --by --case --config_template --duration --from --not --output --only_timed --section --save --search --times --tag --tag_order --tag_sort --template --title --totals --totals_format --val --exact' -- $token ) )
207
207
 
208
208
  fi
209
209
  }
@@ -231,9 +231,9 @@ _doing_plugins() {
231
231
  _doing_recent() {
232
232
 
233
233
  if [[ "$token" == --* ]]; then
234
- COMPREPLY=( $( compgen -W '--by --config_template --duration --interactive --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals' -- $token ) )
234
+ COMPREPLY=( $( compgen -W '--by --config_template --duration --interactive --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals --totals_format' -- $token ) )
235
235
  elif [[ "$token" == -* ]]; then
236
- COMPREPLY=( $( compgen -W '-i -o -s -t --by --config_template --duration --interactive --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals' -- $token ) )
236
+ COMPREPLY=( $( compgen -W '-i -o -s -t --by --config_template --duration --interactive --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals --totals_format' -- $token ) )
237
237
 
238
238
  fi
239
239
  }
@@ -286,9 +286,9 @@ local words=$(doing sections)
286
286
  IFS="$OLD_IFS"
287
287
 
288
288
  if [[ "$token" == --* ]]; then
289
- COMPREPLY=( $( compgen -W '--age --after --before --bool --by --count --case --config_template --duration --editor --from --hilite --interactive --menu --not --output --only_timed --section --save --search --sort --times --tag --tag_order --tag_sort --template --title --totals --val --exact' -- $token ) )
289
+ COMPREPLY=( $( compgen -W '--age --after --before --bool --by --count --case --config_template --duration --editor --from --hilite --interactive --menu --not --output --only_timed --section --save --search --sort --times --tag --tag_order --tag_sort --template --title --totals --totals_format --val --exact' -- $token ) )
290
290
  elif [[ "$token" == -* ]]; then
291
- COMPREPLY=( $( compgen -W '-a -c -e -h -i -m -o -s -t -x --age --after --before --bool --by --count --case --config_template --duration --editor --from --hilite --interactive --menu --not --output --only_timed --section --save --search --sort --times --tag --tag_order --tag_sort --template --title --totals --val --exact' -- $token ) )
291
+ COMPREPLY=( $( compgen -W '-a -c -e -h -i -m -o -s -t -x --age --after --before --bool --by --count --case --config_template --duration --editor --from --hilite --interactive --menu --not --output --only_timed --section --save --search --sort --times --tag --tag_order --tag_sort --template --title --totals --totals_format --val --exact' -- $token ) )
292
292
  else
293
293
  local nocasematchWasOff=0
294
294
  shopt nocasematch >/dev/null || nocasematchWasOff=1
@@ -311,9 +311,9 @@ IFS="$OLD_IFS"
311
311
  _doing_since() {
312
312
 
313
313
  if [[ "$token" == --* ]]; then
314
- COMPREPLY=( $( compgen -W '--bool --by --case --config_template --duration --not --output --only_timed --section --save --search --times --tag --tag_order --tag_sort --template --title --totals --val --exact' -- $token ) )
314
+ COMPREPLY=( $( compgen -W '--bool --by --case --config_template --duration --not --output --only_timed --section --save --search --times --tag --tag_order --tag_sort --template --title --totals --totals_format --val --exact' -- $token ) )
315
315
  elif [[ "$token" == -* ]]; then
316
- COMPREPLY=( $( compgen -W '-o -s -t -x --bool --by --case --config_template --duration --not --output --only_timed --section --save --search --times --tag --tag_order --tag_sort --template --title --totals --val --exact' -- $token ) )
316
+ COMPREPLY=( $( compgen -W '-o -s -t -x --bool --by --case --config_template --duration --not --output --only_timed --section --save --search --times --tag --tag_order --tag_sort --template --title --totals --totals_format --val --exact' -- $token ) )
317
317
 
318
318
  fi
319
319
  }
@@ -361,9 +361,9 @@ _doing_template() {
361
361
  _doing_today() {
362
362
 
363
363
  if [[ "$token" == --* ]]; then
364
- COMPREPLY=( $( compgen -W '--after --before --by --config_template --duration --from --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals' -- $token ) )
364
+ COMPREPLY=( $( compgen -W '--after --before --by --config_template --duration --from --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals --totals_format' -- $token ) )
365
365
  elif [[ "$token" == -* ]]; then
366
- COMPREPLY=( $( compgen -W '-o -s -t --after --before --by --config_template --duration --from --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals' -- $token ) )
366
+ COMPREPLY=( $( compgen -W '-o -s -t --after --before --by --config_template --duration --from --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals --totals_format' -- $token ) )
367
367
 
368
368
  fi
369
369
  }
@@ -406,9 +406,9 @@ local words=$(doing views)
406
406
  IFS="$OLD_IFS"
407
407
 
408
408
  if [[ "$token" == --* ]]; then
409
- COMPREPLY=( $( compgen -W '--after --age --before --bool --by --count --case --color --config_template --duration --from --hilite --interactive --not --output --only_timed --section --search --times --tag --tag_order --tag_sort --template --totals --val --exact' -- $token ) )
409
+ COMPREPLY=( $( compgen -W '--after --age --before --bool --by --count --case --color --config_template --duration --from --hilite --interactive --not --output --only_timed --section --search --times --tag --tag_order --tag_sort --template --totals --totals_format --val --exact' -- $token ) )
410
410
  elif [[ "$token" == -* ]]; then
411
- COMPREPLY=( $( compgen -W '-c -h -i -o -s -t -x --after --age --before --bool --by --count --case --color --config_template --duration --from --hilite --interactive --not --output --only_timed --section --search --times --tag --tag_order --tag_sort --template --totals --val --exact' -- $token ) )
411
+ COMPREPLY=( $( compgen -W '-c -h -i -o -s -t -x --after --age --before --bool --by --count --case --color --config_template --duration --from --hilite --interactive --not --output --only_timed --section --search --times --tag --tag_order --tag_sort --template --totals --totals_format --val --exact' -- $token ) )
412
412
  else
413
413
  local nocasematchWasOff=0
414
414
  shopt nocasematch >/dev/null || nocasematchWasOff=1
@@ -451,9 +451,9 @@ _doing_wiki() {
451
451
  _doing_yesterday() {
452
452
 
453
453
  if [[ "$token" == --* ]]; then
454
- COMPREPLY=( $( compgen -W '--after --before --by --config_template --duration --from --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals' -- $token ) )
454
+ COMPREPLY=( $( compgen -W '--after --before --by --config_template --duration --from --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals --totals_format' -- $token ) )
455
455
  elif [[ "$token" == -* ]]; then
456
- COMPREPLY=( $( compgen -W '-o -s -t --after --before --by --config_template --duration --from --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals' -- $token ) )
456
+ COMPREPLY=( $( compgen -W '-o -s -t --after --before --by --config_template --duration --from --output --only_timed --section --save --times --tag_order --tag_sort --template --title --totals --totals_format' -- $token ) )
457
457
 
458
458
  fi
459
459
  }
@@ -296,6 +296,7 @@ complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command grep search'
296
296
  complete -c doing -l template -f -r -n '__fish_doing_using_command grep search' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
297
297
  complete -c doing -l title -f -r -n '__fish_doing_using_command grep search' -d Title\ string\ to\ be\ used\ for\ output\ formats\ that\ require\ it
298
298
  complete -c doing -l totals -f -n '__fish_doing_using_command grep search' -d Show\ time\ totals\ at\ the\ end\ of\ output
299
+ complete -c doing -l totals_format -f -r -n '__fish_doing_using_command grep search' -d Time\ format\ for\ totals\ output
299
300
  complete -c doing -l val -f -r -n '__fish_doing_using_command grep search' -d Perform\ a\ tag\ value\ query
300
301
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command grep search' -d Force\ exact\ string\ matching
301
302
  complete -c doing -F -n '__fish_doing_using_command import'
@@ -392,6 +393,7 @@ complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command on' -d Sort\
392
393
  complete -c doing -l template -f -r -n '__fish_doing_using_command on' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
393
394
  complete -c doing -l title -f -r -n '__fish_doing_using_command on' -d Title\ string\ to\ be\ used\ for\ output\ formats\ that\ require\ it
394
395
  complete -c doing -l totals -f -n '__fish_doing_using_command on' -d Show\ time\ totals\ at\ the\ end\ of\ output
396
+ complete -c doing -l totals_format -f -r -n '__fish_doing_using_command on' -d Time\ format\ for\ totals\ output
395
397
  complete -c doing -l val -f -r -n '__fish_doing_using_command on' -d Perform\ a\ tag\ value\ query
396
398
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command on' -d Force\ exact\ search\ string\ matching
397
399
  complete -c doing -l app -s a -f -r -n '__fish_doing_using_command open' -d Open\ with\ app\ name
@@ -413,6 +415,7 @@ complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command recent' -d S
413
415
  complete -c doing -l template -f -r -n '__fish_doing_using_command recent' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
414
416
  complete -c doing -l title -f -r -n '__fish_doing_using_command recent' -d Title\ string\ to\ be\ used\ for\ output\ formats\ that\ require\ it
415
417
  complete -c doing -l totals -f -n '__fish_doing_using_command recent' -d Show\ time\ totals\ at\ the\ end\ of\ output
418
+ complete -c doing -l totals_format -f -r -n '__fish_doing_using_command recent' -d Time\ format\ for\ totals\ output
416
419
  complete -c doing -l file -s f -f -r -n '__fish_doing_using_command redo' -d Specify\ alternate\ doing\ file
417
420
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command redo' -d Select\ from\ an\ interactive\ menu
418
421
  complete -c doing -l bool -f -r -n '__fish_doing_using_command reset begin' -d Boolean\ used\ to\ combine\ multiple\ tags
@@ -489,6 +492,7 @@ complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command show' -d Sor
489
492
  complete -c doing -l template -f -r -n '__fish_doing_using_command show' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
490
493
  complete -c doing -l title -f -r -n '__fish_doing_using_command show' -d Title\ string\ to\ be\ used\ for\ output\ formats\ that\ require\ it
491
494
  complete -c doing -l totals -f -n '__fish_doing_using_command show' -d Show\ time\ totals\ at\ the\ end\ of\ output
495
+ complete -c doing -l totals_format -f -r -n '__fish_doing_using_command show' -d Time\ format\ for\ totals\ output
492
496
  complete -c doing -l val -f -r -n '__fish_doing_using_command show' -d Perform\ a\ tag\ value\ query
493
497
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command show' -d Force\ exact\ search\ string\ matching
494
498
  complete -c doing -l bool -f -r -n '__fish_doing_using_command since' -d Boolean\ used\ to\ combine\ multiple\ tags
@@ -509,6 +513,7 @@ complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command since' -d So
509
513
  complete -c doing -l template -f -r -n '__fish_doing_using_command since' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
510
514
  complete -c doing -l title -f -r -n '__fish_doing_using_command since' -d Title\ string\ to\ be\ used\ for\ output\ formats\ that\ require\ it
511
515
  complete -c doing -l totals -f -n '__fish_doing_using_command since' -d Show\ time\ totals\ at\ the\ end\ of\ output
516
+ complete -c doing -l totals_format -f -r -n '__fish_doing_using_command since' -d Time\ format\ for\ totals\ output
512
517
  complete -c doing -l val -f -r -n '__fish_doing_using_command since' -d Perform\ a\ tag\ value\ query
513
518
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command since' -d Force\ exact\ search\ string\ matching
514
519
  complete -c doing -l autotag -s a -f -n '__fish_doing_using_command tag' -d Autotag\ entries\ based\ on\ autotag\ configuration\ in\ \~/
@@ -565,6 +570,7 @@ complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command today' -d So
565
570
  complete -c doing -l template -f -r -n '__fish_doing_using_command today' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
566
571
  complete -c doing -l title -f -r -n '__fish_doing_using_command today' -d Title\ string\ to\ be\ used\ for\ output\ formats\ that\ require\ it
567
572
  complete -c doing -l totals -f -n '__fish_doing_using_command today' -d Show\ time\ totals\ at\ the\ end\ of\ output
573
+ complete -c doing -l totals_format -f -r -n '__fish_doing_using_command today' -d Time\ format\ for\ totals\ output
568
574
  complete -c doing -l ask -f -n '__fish_doing_using_command todo' -d Prompt\ for\ note\ via\ multi-line\ input
569
575
  complete -c doing -l editor -s e -f -n '__fish_doing_using_command todo' -d Edit\ entry\ with\ vim
570
576
  complete -c doing -l note -s n -f -r -n '__fish_doing_using_command todo' -d Note
@@ -597,6 +603,7 @@ complete -c doing -l tag_order -f -r -n '__fish_doing_using_command view' -d Ta
597
603
  complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command view' -d Sort\ tags\ by
598
604
  complete -c doing -l template -f -r -n '__fish_doing_using_command view' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
599
605
  complete -c doing -l totals -f -n '__fish_doing_using_command view' -d Show\ intervals\ with\ totals\ at\ the\ end\ of\ output
606
+ complete -c doing -l totals_format -f -r -n '__fish_doing_using_command view' -d Time\ format\ for\ totals\ output
600
607
  complete -c doing -l val -f -r -n '__fish_doing_using_command view' -d Perform\ a\ tag\ value\ query
601
608
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command view' -d Force\ exact\ search\ string\ matching
602
609
  complete -c doing -l column -s c -f -n '__fish_doing_using_command views' -d List\ in\ single\ column
@@ -627,6 +634,7 @@ complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command yesterday' -
627
634
  complete -c doing -l template -f -r -n '__fish_doing_using_command yesterday' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
628
635
  complete -c doing -l title -f -r -n '__fish_doing_using_command yesterday' -d Title\ string\ to\ be\ used\ for\ output\ formats\ that\ require\ it
629
636
  complete -c doing -l totals -f -n '__fish_doing_using_command yesterday' -d Show\ time\ totals\ at\ the\ end\ of\ output
637
+ complete -c doing -l totals_format -f -r -n '__fish_doing_using_command yesterday' -d Time\ format\ for\ totals\ output
630
638
  complete -f -c doing -s o -l output -x -n '__fish_doing_using_command grep search last on recent select show since today view views yesterday' -a '(__fish_doing_export_plugin)'
631
639
  complete -f -c doing -s b -l bool -x -n '__fish_doing_using_command again resume archive move autotag cancel finish grep search last mark flag note on reset begin rotate show since tag tags view wiki' -a 'and or not pattern'
632
640
  complete -f -c doing -l case -x -n '__fish_doing_using_command again resume archive move cancel finish grep search import last mark flag note on reset begin rotate select show since tag tags view' -a 'case-sensitive ignore smart'