doing 2.1.23 → 2.1.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. checksums.yaml +4 -4
  2. data/.yardoc/checksums +17 -21
  3. data/.yardoc/object_types +0 -0
  4. data/.yardoc/objects/root.dat +0 -0
  5. data/CHANGELOG.md +329 -102
  6. data/Dockerfile +5 -5
  7. data/Dockerfile-2.6 +5 -5
  8. data/Dockerfile-2.7 +5 -4
  9. data/Dockerfile-3.0 +5 -4
  10. data/Gemfile.lock +1 -1
  11. data/README.md +1 -1
  12. data/Rakefile +3 -3
  13. data/bin/commands/add_section.rb +15 -0
  14. data/bin/commands/again.rb +57 -0
  15. data/bin/commands/archive.rb +55 -0
  16. data/bin/commands/cancel.rb +60 -0
  17. data/bin/commands/changes.rb +69 -0
  18. data/bin/commands/choose.rb +9 -0
  19. data/bin/commands/colors.rb +21 -0
  20. data/bin/commands/commands.rb +89 -0
  21. data/bin/commands/commands_accepting.rb +76 -0
  22. data/bin/commands/completion.rb +27 -0
  23. data/bin/commands/config.rb +245 -0
  24. data/bin/commands/done.rb +235 -0
  25. data/bin/commands/finish.rb +126 -0
  26. data/bin/commands/flag.rb +90 -0
  27. data/bin/commands/grep.rb +108 -0
  28. data/bin/commands/import.rb +71 -0
  29. data/bin/commands/install_fzf.rb +17 -0
  30. data/bin/commands/last.rb +81 -0
  31. data/bin/commands/meanwhile.rb +76 -0
  32. data/bin/commands/note.rb +91 -0
  33. data/bin/commands/now.rb +145 -0
  34. data/bin/commands/on.rb +65 -0
  35. data/bin/commands/open.rb +53 -0
  36. data/bin/commands/plugins.rb +23 -0
  37. data/bin/commands/recent.rb +77 -0
  38. data/bin/commands/redo.rb +26 -0
  39. data/bin/commands/reset.rb +73 -0
  40. data/bin/commands/rotate.rb +42 -0
  41. data/bin/commands/sections.rb +11 -0
  42. data/bin/commands/select.rb +105 -0
  43. data/bin/commands/show.rb +185 -0
  44. data/bin/commands/since.rb +63 -0
  45. data/bin/commands/tag.rb +149 -0
  46. data/bin/commands/tag_dir.rb +29 -0
  47. data/bin/commands/tags.rb +66 -0
  48. data/bin/commands/template.rb +61 -0
  49. data/bin/commands/today.rb +64 -0
  50. data/bin/commands/undo.rb +49 -0
  51. data/bin/commands/view.rb +201 -0
  52. data/bin/commands/views.rb +11 -0
  53. data/bin/commands/yesterday.rb +72 -0
  54. data/bin/doing +241 -3662
  55. data/docs/doc/Array.html +13 -449
  56. data/docs/doc/BooleanTermParser/Clause.html +5 -5
  57. data/docs/doc/BooleanTermParser/Operator.html +4 -4
  58. data/docs/doc/BooleanTermParser/Query.html +8 -8
  59. data/docs/doc/BooleanTermParser/QueryParser.html +2 -2
  60. data/docs/doc/BooleanTermParser/QueryTransformer.html +2 -2
  61. data/docs/doc/BooleanTermParser.html +1 -1
  62. data/docs/doc/Doing/Color.html +65 -59
  63. data/docs/doc/Doing/Completion.html +2 -2
  64. data/docs/doc/Doing/Configuration.html +49 -16
  65. data/docs/doc/Doing/Errors/DoingNoTraceError.html +2 -2
  66. data/docs/doc/Doing/Errors/DoingRuntimeError.html +2 -2
  67. data/docs/doc/Doing/Errors/DoingStandardError.html +2 -2
  68. data/docs/doc/Doing/Errors/EmptyInput.html +2 -2
  69. data/docs/doc/Doing/Errors/NoResults.html +2 -2
  70. data/docs/doc/Doing/Errors/PluginException.html +3 -3
  71. data/docs/doc/Doing/Errors/UserCancelled.html +2 -2
  72. data/docs/doc/Doing/Errors/WrongCommand.html +2 -2
  73. data/docs/doc/Doing/Errors.html +1 -1
  74. data/docs/doc/Doing/Hooks.html +6 -6
  75. data/docs/doc/Doing/Item.html +50 -16
  76. data/docs/doc/Doing/Items.html +10 -10
  77. data/docs/doc/Doing/LogAdapter.html +24 -24
  78. data/docs/doc/Doing/Note.html +7 -7
  79. data/docs/doc/Doing/Pager.html +4 -4
  80. data/docs/doc/Doing/Plugins.html +7 -7
  81. data/docs/doc/Doing/Prompt.html +59 -14
  82. data/docs/doc/Doing/Section.html +6 -6
  83. data/docs/doc/Doing/TemplateString.html +8 -8
  84. data/docs/doc/Doing/Types.html +46 -1
  85. data/docs/doc/Doing/Util/Backup.html +10 -10
  86. data/docs/doc/Doing/Util.html +15 -15
  87. data/docs/doc/Doing/WWID.html +73 -61
  88. data/docs/doc/Doing.html +3 -3
  89. data/docs/doc/FalseClass.html +235 -0
  90. data/docs/doc/GLI/Commands/Help.html +3 -3
  91. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +17 -17
  92. data/docs/doc/GLI/Commands.html +1 -1
  93. data/docs/doc/GLI.html +1 -1
  94. data/docs/doc/Hash.html +45 -11
  95. data/docs/doc/Numeric.html +5 -5
  96. data/docs/doc/Object.html +203 -0
  97. data/docs/doc/PhraseParser/Operator.html +4 -4
  98. data/docs/doc/PhraseParser/PhraseClause.html +5 -5
  99. data/docs/doc/PhraseParser/Query.html +10 -10
  100. data/docs/doc/PhraseParser/QueryParser.html +2 -2
  101. data/docs/doc/PhraseParser/QueryTransformer.html +2 -2
  102. data/docs/doc/PhraseParser/TermClause.html +5 -5
  103. data/docs/doc/PhraseParser.html +1 -1
  104. data/docs/doc/Status.html +7 -7
  105. data/docs/doc/String.html +306 -3111
  106. data/docs/doc/Symbol.html +45 -11
  107. data/docs/doc/Time.html +6 -6
  108. data/docs/doc/TrueClass.html +235 -0
  109. data/docs/doc/_index.html +37 -19
  110. data/docs/doc/class_list.html +1 -1
  111. data/docs/doc/file.README.html +2 -2
  112. data/docs/doc/index.html +2 -2
  113. data/docs/doc/method_list.html +240 -576
  114. data/docs/doc/top-level-namespace.html +2 -2
  115. data/doing.rdoc +289 -169
  116. data/example_plugin.rb +2 -2
  117. data/lib/completion/_doing.zsh +35 -31
  118. data/lib/completion/doing.bash +30 -19
  119. data/lib/completion/doing.fish +81 -67
  120. data/lib/doing/array/array.rb +4 -0
  121. data/lib/doing/array/nested_hash.rb +17 -0
  122. data/lib/doing/{array.rb → array/tags.rb} +7 -25
  123. data/lib/doing/changelog/change.rb +26 -11
  124. data/lib/doing/changelog/changes.rb +14 -4
  125. data/lib/doing/{array_chronify.rb → chronify/array.rb} +0 -0
  126. data/lib/doing/chronify/chronify.rb +5 -0
  127. data/lib/doing/{numeric_chronify.rb → chronify/numeric.rb} +0 -0
  128. data/lib/doing/{string_chronify.rb → chronify/string.rb} +0 -0
  129. data/lib/doing/colors.rb +115 -54
  130. data/lib/doing/completion/fish_completion.rb +2 -1
  131. data/lib/doing/configuration.rb +9 -6
  132. data/lib/doing/good.rb +72 -0
  133. data/lib/doing/hash.rb +4 -0
  134. data/lib/doing/help_monkey_patch.rb +6 -5
  135. data/lib/doing/hooks.rb +3 -3
  136. data/lib/doing/item.rb +19 -15
  137. data/lib/doing/items.rb +2 -2
  138. data/lib/doing/log_adapter.rb +35 -2
  139. data/lib/doing/normalize.rb +188 -0
  140. data/lib/doing/pager.rb +1 -0
  141. data/lib/doing/plugins/export/dayone_export.rb +1 -1
  142. data/lib/doing/plugins/export/html_export.rb +1 -1
  143. data/lib/doing/plugins/export/json_export.rb +1 -1
  144. data/lib/doing/plugins/export/markdown_export.rb +1 -1
  145. data/lib/doing/plugins/export/template_export.rb +3 -1
  146. data/lib/doing/plugins/import/calendar_import.rb +1 -1
  147. data/lib/doing/plugins/import/doing_import.rb +1 -1
  148. data/lib/doing/plugins/import/timing_import.rb +1 -1
  149. data/lib/doing/prompt.rb +9 -3
  150. data/lib/doing/string/highlight.rb +95 -0
  151. data/lib/doing/string/query.rb +129 -0
  152. data/lib/doing/string/string.rb +12 -0
  153. data/lib/doing/string/tags.rb +164 -0
  154. data/lib/doing/string/transform.rb +168 -0
  155. data/lib/doing/string/truncate.rb +75 -0
  156. data/lib/doing/string/url.rb +82 -0
  157. data/lib/doing/template_string.rb +2 -24
  158. data/lib/doing/types.rb +9 -0
  159. data/lib/doing/util.rb +20 -16
  160. data/lib/doing/version.rb +1 -1
  161. data/lib/doing/wwid.rb +91 -51
  162. data/lib/doing.rb +5 -6
  163. data/lib/examples/commands/wiki.rb +6 -7
  164. data/lib/examples/plugins/wiki_export/wiki_export.rb +1 -1
  165. data/lib/helpers/threaded_tests.rb +69 -79
  166. data/lib/helpers/threaded_tests_string.rb +50 -0
  167. data/scripts/deploy.rb +107 -0
  168. data/scripts/runtests.sh +4 -0
  169. metadata +65 -8
  170. data/lib/doing/string.rb +0 -765
  171. data/lib/doing/symbol.rb +0 -28
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.23
8
+ v2.1.27
9
9
 
10
10
  === Global Options
11
11
  === --config_file arg
@@ -90,11 +90,12 @@ Add a new section to the "doing" file
90
90
  ==== Command: <tt>again|resume </tt>
91
91
  Repeat last entry as new entry
92
92
 
93
- This command is designed to allow multiple time intervals to be created for an entry by duplicating it with a new start (and end, eventually) time
93
+ This command is designed to allow multiple time intervals to be created
94
+ for an entry by duplicating it with a new start (and end, eventually) time
94
95
  ===== Options
95
96
  ===== -b|--back|--started DATE_STRING
96
97
 
97
- Backdate start date by interval or set to time [4pm|20m|2h|"yesterday noon"]
98
+ Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
98
99
 
99
100
  [Default Value] None
100
101
 
@@ -103,7 +104,7 @@ Backdate start date by interval or set to time [4pm|20m|2h|"yesterday noon"]
103
104
 
104
105
  Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
105
106
 
106
- [Default Value] PATTERN
107
+ [Default Value] pattern
107
108
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
108
109
 
109
110
 
@@ -112,7 +113,7 @@ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
112
113
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
113
114
 
114
115
  [Default Value] smart
115
- [Must Match] (?-mix:^[csi])
116
+ [Must Match] (?i-mx:^[cis].*?$)
116
117
 
117
118
 
118
119
  ===== --in SECTION_NAME
@@ -124,7 +125,7 @@ Add new entry to section (default: same section as repeated entry)
124
125
 
125
126
  ===== -n|--note TEXT
126
127
 
127
- Add a note
128
+ Include a note
128
129
 
129
130
  [Default Value] None
130
131
 
@@ -138,34 +139,40 @@ Get last entry from a specific section
138
139
 
139
140
  ===== --search QUERY
140
141
 
141
- Repeat last entry matching search. Surround with
142
- slashes for regex (e.g. "/query/"), start with a single quote for exact match ("'query").
142
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
143
+ start with single quote for exact match ("'query")
143
144
 
144
145
  [Default Value] None
145
146
 
146
147
 
147
148
  ===== --tag TAG
148
149
 
149
- Repeat last entry matching tags. Combine multiple tags with a comma. Wildcards allowed (*, ?)
150
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
150
151
 
151
152
  [Default Value] None
152
153
 
153
154
 
154
155
  ===== --val QUERY
155
156
 
156
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
157
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
158
+ May be used multiple times, combined with --bool
157
159
 
158
160
  [Default Value] None
159
161
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
160
162
 
161
163
 
164
+ ===== -X|--noauto
165
+ Exclude auto tags and default tags
166
+
167
+
168
+
162
169
  ===== --ask
163
170
  Prompt for note via multi-line input
164
171
 
165
172
 
166
173
 
167
174
  ===== -e|--editor
168
- Edit duplicated entry with vim before adding
175
+ Edit entry with vim
169
176
 
170
177
 
171
178
 
@@ -175,7 +182,7 @@ Select item to resume from a menu of matching entries
175
182
 
176
183
 
177
184
  ===== --not
178
- Resume items that *don't* match search/tag filters
185
+ Repeat items that *don't* match search/tag filters
179
186
 
180
187
 
181
188
 
@@ -192,19 +199,25 @@ or start with an "@" to move entries matching a tag.
192
199
 
193
200
  Default with no argument moves items from the "Currently" section to Archive.
194
201
  ===== Options
202
+ ===== --after DATE_STRING
203
+
204
+ Archive entries newer than date (natural language).
205
+
206
+ [Default Value] None
207
+
208
+
195
209
  ===== --before DATE_STRING
196
210
 
197
- Archive entries older than date
198
- (Flexible date format, e.g. 1/27/2021, 2020-07-19, or Monday 3pm)
211
+ Archive entries older than date (natural language).
199
212
 
200
213
  [Default Value] None
201
214
 
202
215
 
203
216
  ===== --bool BOOLEAN
204
217
 
205
- Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
218
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
206
219
 
207
- [Default Value] PATTERN
220
+ [Default Value] pattern
208
221
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
209
222
 
210
223
 
@@ -213,7 +226,14 @@ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
213
226
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
214
227
 
215
228
  [Default Value] smart
216
- [Must Match] (?-mix:^[csi])
229
+ [Must Match] (?i-mx:^[cis].*?$)
230
+
231
+
232
+ ===== --from DATE_OR_RANGE
233
+
234
+ Date range (natural language) to archive: `doing archive --from "1/1/21 to 12/31/21"`.
235
+
236
+ [Default Value] None
217
237
 
218
238
 
219
239
  ===== -k|--keep X
@@ -226,7 +246,8 @@ How many items to keep (ignored if archiving by tag or search)
226
246
 
227
247
  ===== --search QUERY
228
248
 
229
- Search filter
249
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
250
+ start with single quote for exact match ("'query")
230
251
 
231
252
  [Default Value] None
232
253
 
@@ -240,14 +261,15 @@ Move entries to
240
261
 
241
262
  ===== --tag TAG
242
263
 
243
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?). Added for compatibility with other commands
264
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
244
265
 
245
266
  [Default Value] None
246
267
 
247
268
 
248
269
  ===== --val QUERY
249
270
 
250
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
271
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
272
+ May be used multiple times, combined with --bool
251
273
 
252
274
  [Default Value] None
253
275
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -259,7 +281,7 @@ Label moved items with @from(SECTION_NAME)
259
281
 
260
282
 
261
283
  ===== --not
262
- Show items that *don't* match search string
284
+ Archive items that *don't* match search/tag filters
263
285
 
264
286
 
265
287
 
@@ -331,13 +353,14 @@ Autotag last entry (or entries) not marked @done
331
353
  ==== Command: <tt>cancel COUNT</tt>
332
354
  End last X entries with no time tracked
333
355
 
334
- Adds @done tag without datestamp so no elapsed time is recorded. Alias for `doing finish --no-date`
356
+ Adds @done tag without datestamp so no elapsed time is recorded.
357
+ Alias for `doing finish --no-date`
335
358
  ===== Options
336
359
  ===== --bool BOOLEAN
337
360
 
338
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
361
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
339
362
 
340
- [Default Value] PATTERN
363
+ [Default Value] pattern
341
364
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
342
365
 
343
366
 
@@ -346,7 +369,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to
346
369
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
347
370
 
348
371
  [Default Value] smart
349
- [Must Match] (?-mix:^[csi])
372
+ [Must Match] (?i-mx:^[cis].*?$)
350
373
 
351
374
 
352
375
  ===== -s|--section NAME
@@ -358,21 +381,23 @@ Section
358
381
 
359
382
  ===== --search QUERY
360
383
 
361
- Cancel the last X entries matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
384
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
385
+ start with single quote for exact match ("'query")
362
386
 
363
387
  [Default Value] None
364
388
 
365
389
 
366
390
  ===== --tag TAG
367
391
 
368
- Cancel the last X entries containing TAG. Separate multiple tags with comma (--tag=tag1,tag2). Wildcards allowed (*, ?)
392
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
369
393
 
370
394
  [Default Value] None
371
395
 
372
396
 
373
397
  ===== --val QUERY
374
398
 
375
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
399
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
400
+ May be used multiple times, combined with --bool
376
401
 
377
402
  [Default Value] None
378
403
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -389,7 +414,7 @@ Select item(s) to cancel from a menu of matching entries
389
414
 
390
415
 
391
416
  ===== --not
392
- Finish items that *don't* match search/tag filters
417
+ Cancel items that *don't* match search/tag filters
393
418
 
394
419
 
395
420
 
@@ -429,24 +454,44 @@ Show changelogs matching search terms (uses pattern-based searching).
429
454
  [Default Value] None
430
455
 
431
456
 
457
+ ===== -C|--changes
458
+ Only output changes, no version numbers, headers, or dates
459
+
460
+
461
+
432
462
  ===== -a|--all
433
463
  Display all versions
434
464
 
435
465
 
436
466
 
437
- ==== Command: <tt>choose </tt>
438
- Select a section to display from a menu
467
+ ===== -m|--md|--markdown
468
+ Output raw Markdown
469
+
439
470
 
440
471
 
441
472
  ==== Command: <tt>colors </tt>
442
473
  List available color variables for configuration templates and views
443
474
 
444
475
 
476
+ ==== Command: <tt>commands </tt>
477
+ Enable and disable Doing commands
478
+
479
+
480
+ ===== Commands
481
+ ====== Command: <tt>add|enable COMMAND [COMMAND...]</tt>
482
+ Enable Doing commands
483
+
484
+ Run without arguments to select commands from a list.
485
+ ====== Command: <tt>remove|disable </tt>
486
+ Disable Doing commands
487
+
488
+
489
+ [Default Command] add
445
490
  ==== Command: <tt>completion </tt>
446
491
  Generate shell completion scripts
447
492
 
448
- Generates the necessary scripts to add command line completion to various shells, so typing 'doing' and hitting
449
- tab will offer completions of subcommands and their options.
493
+ Generates the necessary scripts to add command line completion to various shells,
494
+ so typing 'doing' and hitting tab will offer completions of subcommands and their options.
450
495
  ===== Options
451
496
  ===== -f|--file PATH
452
497
 
@@ -572,7 +617,7 @@ Set finish date to specific date/time (natural langauge parsed, e.g. --at=1:30pm
572
617
 
573
618
  ===== -b|--back|--started DATE_STRING
574
619
 
575
- Backdate start date by interval or set to time [4pm|20m|2h|"yesterday noon"]
620
+ Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
576
621
 
577
622
  [Default Value] None
578
623
 
@@ -609,6 +654,11 @@ Set completion date to start date plus interval (XX[mhd] or HH:MM).
609
654
  [Default Value] None
610
655
 
611
656
 
657
+ ===== -X|--noauto
658
+ Exclude auto tags and default tags
659
+
660
+
661
+
612
662
  ===== -a|--archive
613
663
  Immediately archive the entry
614
664
 
@@ -625,7 +675,7 @@ Include date
625
675
 
626
676
 
627
677
  ===== -e|--editor
628
- Edit entry with vim (with no arguments, edits the last entry)
678
+ Edit entry with vim
629
679
 
630
680
 
631
681
 
@@ -660,9 +710,9 @@ Backdate completed date to date string [4pm|20m|2h|yesterday noon]
660
710
 
661
711
  ===== --bool BOOLEAN
662
712
 
663
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
713
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
664
714
 
665
- [Default Value] PATTERN
715
+ [Default Value] pattern
666
716
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
667
717
 
668
718
 
@@ -671,7 +721,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to
671
721
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
672
722
 
673
723
  [Default Value] smart
674
- [Must Match] (?-mix:^[csi])
724
+ [Must Match] (?i-mx:^[cis].*?$)
675
725
 
676
726
 
677
727
  ===== -s|--section NAME
@@ -683,7 +733,8 @@ Section
683
733
 
684
734
  ===== --search QUERY
685
735
 
686
- Finish the last X entries matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
736
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
737
+ start with single quote for exact match ("'query")
687
738
 
688
739
  [Default Value] None
689
740
 
@@ -697,15 +748,15 @@ Set the completed date to the start date plus XX[hmd]
697
748
 
698
749
  ===== --tag TAG
699
750
 
700
- Finish the last X entries containing TAG.
701
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
751
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
702
752
 
703
753
  [Default Value] None
704
754
 
705
755
 
706
756
  ===== --val QUERY
707
757
 
708
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
758
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
759
+ May be used multiple times, combined with --bool
709
760
 
710
761
  [Default Value] None
711
762
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -739,7 +790,7 @@ Finish items that *don't* match search/tag filters
739
790
 
740
791
 
741
792
  ===== -r|--remove
742
- Remove done tag
793
+ Remove @done tag
743
794
 
744
795
 
745
796
 
@@ -748,6 +799,11 @@ Finish last entry (or entries) not already marked @done
748
799
 
749
800
 
750
801
 
802
+ ===== --update
803
+ Overwrite existing @done tag with new date
804
+
805
+
806
+
751
807
  ===== -x|--exact
752
808
  Force exact search string matching (case sensitive)
753
809
 
@@ -762,23 +818,25 @@ To search with regular expressions, single quote the string and surround with sl
762
818
  ===== Options
763
819
  ===== --after DATE_STRING
764
820
 
765
- Search entries newer than date. If this is only a time (8am, 1:30pm, 15:00), all dates will be included, but entries will be filtered by time of day
821
+ Search entries newer than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
822
+ dates will be included, but entries will be filtered by time of day
766
823
 
767
824
  [Default Value] None
768
825
 
769
826
 
770
827
  ===== --before DATE_STRING
771
828
 
772
- Search entries older than date. If this is only a time (8am, 1:30pm, 15:00), all dates will be included, but entries will be filtered by time of day
829
+ Search entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
830
+ dates will be included, but entries will be filtered by time of day
773
831
 
774
832
  [Default Value] None
775
833
 
776
834
 
777
- ===== --bool arg
835
+ ===== --bool BOOLEAN
778
836
 
779
837
  Combine multiple tags or value queries using AND, OR, or NOT
780
838
 
781
- [Default Value] AND
839
+ [Default Value] pattern
782
840
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
783
841
 
784
842
 
@@ -787,7 +845,7 @@ Combine multiple tags or value queries using AND, OR, or NOT
787
845
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
788
846
 
789
847
  [Default Value] smart
790
- [Must Match] (?-mix:^[csi])
848
+ [Must Match] (?i-mx:^[cis].*?$)
791
849
 
792
850
 
793
851
  ===== --config_template TEMPLATE_KEY
@@ -799,12 +857,11 @@ Output using a template from configuration
799
857
 
800
858
  ===== --from DATE_OR_RANGE
801
859
 
802
- Date range to show, or a single day to filter date on.
803
- Date range argument should be quoted. Date specifications can be natural language.
804
- To specify a range, use "to" or "through": `doing search --from "monday 8am to friday 5pm"`.
860
+ Date range (natural language) to search, or a single day to filter on.
861
+ To specify a range, use "to": `doing grep --from "monday 8am to friday 5pm"`.
805
862
 
806
- If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
807
- by time of day.
863
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
864
+ by time of day.
808
865
 
809
866
  [Default Value] None
810
867
 
@@ -828,7 +885,7 @@ Section
828
885
  Sort tags by (name|time)
829
886
 
830
887
  [Default Value] name
831
- [Must Match] (?i-mx:^(?:name|time)$)
888
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
832
889
 
833
890
 
834
891
  ===== --template TEMPLATE_STRING
@@ -913,14 +970,16 @@ Imports entries from other sources. Available plugins: calendar, capturething, d
913
970
  ===== Options
914
971
  ===== --after DATE_STRING
915
972
 
916
- Import entries newer than date
973
+ Import entries newer than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
974
+ dates will be included, but entries will be filtered by time of day
917
975
 
918
976
  [Default Value] None
919
977
 
920
978
 
921
979
  ===== --before DATE_STRING
922
980
 
923
- Import entries older than date
981
+ Import entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
982
+ dates will be included, but entries will be filtered by time of day
924
983
 
925
984
  [Default Value] None
926
985
 
@@ -930,14 +989,16 @@ Import entries older than date
930
989
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
931
990
 
932
991
  [Default Value] smart
933
- [Must Match] (?-mix:^[csi])
992
+ [Must Match] (?i-mx:^[cis].*?$)
934
993
 
935
994
 
936
- ===== -f|--from DATE_OR_RANGE
995
+ ===== --from DATE_OR_RANGE
996
+
997
+ Date range (natural language) to import, or a single day to filter on.
998
+ To specify a range, use "to": `doing import --from "monday 8am to friday 5pm"`.
937
999
 
938
- Date range to import. Date range argument should be quoted. Date specifications can be natural language.
939
- To specify a range, use "to" or "through": `--from "monday to friday"` or `--from 10/1 to 10/31`.
940
- Has no effect unless the import plugin has implemented date range filtering.
1000
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
1001
+ by time of day.
941
1002
 
942
1003
  [Default Value] None
943
1004
 
@@ -958,7 +1019,8 @@ Target section
958
1019
 
959
1020
  ===== --search QUERY
960
1021
 
961
- Only import items matching search. Surround with slashes for regex (/query/), start with single quote for exact match ("'query")
1022
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1023
+ start with single quote for exact match ("'query")
962
1024
 
963
1025
  [Default Value] None
964
1026
 
@@ -1010,9 +1072,9 @@ allowing `doing last` to target historical entries.
1010
1072
  ===== Options
1011
1073
  ===== --bool BOOLEAN
1012
1074
 
1013
- Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1075
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1014
1076
 
1015
- [Default Value] PATTERN
1077
+ [Default Value] pattern
1016
1078
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1017
1079
 
1018
1080
 
@@ -1021,7 +1083,7 @@ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1021
1083
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1022
1084
 
1023
1085
  [Default Value] smart
1024
- [Must Match] (?-mix:^[csi])
1086
+ [Must Match] (?i-mx:^[cis].*?$)
1025
1087
 
1026
1088
 
1027
1089
  ===== --config_template TEMPLATE_KEY
@@ -1040,14 +1102,15 @@ Specify a section
1040
1102
 
1041
1103
  ===== --search QUERY
1042
1104
 
1043
- Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
1105
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1106
+ start with single quote for exact match ("'query")
1044
1107
 
1045
1108
  [Default Value] None
1046
1109
 
1047
1110
 
1048
1111
  ===== --tag TAG
1049
1112
 
1050
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?)
1113
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1051
1114
 
1052
1115
  [Default Value] None
1053
1116
 
@@ -1061,7 +1124,8 @@ Override output format with a template string containing %placeholders
1061
1124
 
1062
1125
  ===== --val QUERY
1063
1126
 
1064
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1127
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1128
+ May be used multiple times, combined with --bool
1065
1129
 
1066
1130
  [Default Value] None
1067
1131
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1088,7 +1152,7 @@ Highlight search matches in output. Only affects command line output
1088
1152
 
1089
1153
 
1090
1154
  ===== --not
1091
- Show items that *don't* match search string or tag filter
1155
+ Show items that *don't* match search/tag filters
1092
1156
 
1093
1157
 
1094
1158
 
@@ -1133,9 +1197,9 @@ Mark last entry as flagged
1133
1197
  ===== Options
1134
1198
  ===== --bool BOOLEAN
1135
1199
 
1136
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1200
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1137
1201
 
1138
- [Default Value] PATTERN
1202
+ [Default Value] pattern
1139
1203
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1140
1204
 
1141
1205
 
@@ -1152,7 +1216,7 @@ How many recent entries to tag (0 for all)
1152
1216
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1153
1217
 
1154
1218
  [Default Value] smart
1155
- [Must Match] (?-mix:^[csi])
1219
+ [Must Match] (?i-mx:^[cis].*?$)
1156
1220
 
1157
1221
 
1158
1222
  ===== -s|--section SECTION_NAME
@@ -1164,22 +1228,23 @@ Section
1164
1228
 
1165
1229
  ===== --search QUERY
1166
1230
 
1167
- Flag the last entry matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
1231
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1232
+ start with single quote for exact match ("'query")
1168
1233
 
1169
1234
  [Default Value] None
1170
1235
 
1171
1236
 
1172
1237
  ===== --tag TAG
1173
1238
 
1174
- Flag the last entry containing TAG.
1175
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
1239
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1176
1240
 
1177
1241
  [Default Value] None
1178
1242
 
1179
1243
 
1180
1244
  ===== --val QUERY
1181
1245
 
1182
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1246
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1247
+ May be used multiple times, combined with --bool
1183
1248
 
1184
1249
  [Default Value] None
1185
1250
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1201,7 +1266,7 @@ Select item(s) to flag from a menu of matching entries
1201
1266
 
1202
1267
 
1203
1268
  ===== --not
1204
- Flag items that *don't* match search/tag/date filters
1269
+ Flag items that *don't* match search/tag filters
1205
1270
 
1206
1271
 
1207
1272
 
@@ -1237,7 +1302,7 @@ Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
1237
1302
 
1238
1303
  ===== -n|--note TEXT
1239
1304
 
1240
- Note
1305
+ Include a note
1241
1306
 
1242
1307
  [Default Value] None
1243
1308
 
@@ -1249,6 +1314,11 @@ Section
1249
1314
  [Default Value] None
1250
1315
 
1251
1316
 
1317
+ ===== -X|--noauto
1318
+ Exclude auto tags and default tags
1319
+
1320
+
1321
+
1252
1322
  ===== -a|--archive
1253
1323
  Archive previous @meanwhile entry
1254
1324
 
@@ -1275,9 +1345,9 @@ If -r is provided with no other arguments, the last note is removed.
1275
1345
  ===== Options
1276
1346
  ===== --bool BOOLEAN
1277
1347
 
1278
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1348
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1279
1349
 
1280
- [Default Value] PATTERN
1350
+ [Default Value] pattern
1281
1351
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1282
1352
 
1283
1353
 
@@ -1286,7 +1356,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to
1286
1356
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1287
1357
 
1288
1358
  [Default Value] smart
1289
- [Must Match] (?-mix:^[csi])
1359
+ [Must Match] (?i-mx:^[cis].*?$)
1290
1360
 
1291
1361
 
1292
1362
  ===== -s|--section NAME
@@ -1298,21 +1368,23 @@ Section
1298
1368
 
1299
1369
  ===== --search QUERY
1300
1370
 
1301
- Add/remove note from last entry matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
1371
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1372
+ start with single quote for exact match ("'query")
1302
1373
 
1303
1374
  [Default Value] None
1304
1375
 
1305
1376
 
1306
1377
  ===== --tag TAG
1307
1378
 
1308
- Add/remove note from last entry matching tag. Wildcards allowed (*, ?)
1379
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1309
1380
 
1310
1381
  [Default Value] None
1311
1382
 
1312
1383
 
1313
1384
  ===== --val QUERY
1314
1385
 
1315
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1386
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1387
+ May be used multiple times, combined with --bool
1316
1388
 
1317
1389
  [Default Value] None
1318
1390
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1334,7 +1406,7 @@ Select item for new note from a menu of matching entries
1334
1406
 
1335
1407
 
1336
1408
  ===== --not
1337
- Add note to item that *doesn't* match search/tag filters
1409
+ Note items that *don't* match search/tag filters
1338
1410
 
1339
1411
 
1340
1412
 
@@ -1361,7 +1433,15 @@ Run with --editor to create a new entry using vim.
1361
1433
  ===== Options
1362
1434
  ===== -b|--back|--started DATE_STRING
1363
1435
 
1364
- Backdate start time [4pm|20m|2h|"yesterday noon"]
1436
+ Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
1437
+
1438
+ [Default Value] None
1439
+
1440
+
1441
+ ===== --from TIME_RANGE
1442
+
1443
+ Set a start and optionally end time as a date range ("from 1pm to 2:30pm").
1444
+ If an end time is provided, a dated @done tag will be added
1365
1445
 
1366
1446
  [Default Value] None
1367
1447
 
@@ -1380,6 +1460,11 @@ Section
1380
1460
  [Default Value] None
1381
1461
 
1382
1462
 
1463
+ ===== -X|--noauto
1464
+ Exclude auto tags and default tags
1465
+
1466
+
1467
+
1383
1468
  ===== --ask
1384
1469
  Prompt for note via multi-line input
1385
1470
 
@@ -1428,7 +1513,7 @@ Section
1428
1513
  Sort tags by (name|time)
1429
1514
 
1430
1515
  [Default Value] name
1431
- [Must Match] (?i-mx:^(?:name|time)$)
1516
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
1432
1517
 
1433
1518
 
1434
1519
  ===== --template TEMPLATE_STRING
@@ -1526,7 +1611,7 @@ Section
1526
1611
  Sort tags by (name|time)
1527
1612
 
1528
1613
  [Default Value] name
1529
- [Must Match] (?i-mx:^(?:name|time)$)
1614
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
1530
1615
 
1531
1616
 
1532
1617
  ===== --template TEMPLATE_STRING
@@ -1556,6 +1641,23 @@ Show intervals with totals at the end of output
1556
1641
 
1557
1642
 
1558
1643
 
1644
+ ==== Command: <tt>redo COUNT</tt>
1645
+ Redo an undo command
1646
+
1647
+ Shortcut for `doing undo -r`, reverses the last undo command. Specify a count to redo multiple undos
1648
+ ===== Options
1649
+ ===== -f|--file PATH
1650
+
1651
+ Specify alternate doing file
1652
+
1653
+ [Default Value] None
1654
+
1655
+
1656
+ ===== -i|--[no-]interactive
1657
+ Select from an interactive menu
1658
+
1659
+
1660
+
1559
1661
  ==== Command: <tt>reset|begin [DATE_STRING]</tt>
1560
1662
  Reset the start time of an entry
1561
1663
 
@@ -1565,9 +1667,9 @@ If a date string is provided as an argument, the start time will be set to the p
1565
1667
  ===== Options
1566
1668
  ===== --bool BOOLEAN
1567
1669
 
1568
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1670
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1569
1671
 
1570
- [Default Value] PATTERN
1672
+ [Default Value] pattern
1571
1673
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1572
1674
 
1573
1675
 
@@ -1576,7 +1678,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to
1576
1678
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1577
1679
 
1578
1680
  [Default Value] smart
1579
- [Must Match] (?-mix:^[csi])
1681
+ [Must Match] (?i-mx:^[cis].*?$)
1580
1682
 
1581
1683
 
1582
1684
  ===== -s|--section NAME
@@ -1588,21 +1690,23 @@ Limit search to section
1588
1690
 
1589
1691
  ===== --search QUERY
1590
1692
 
1591
- Reset last entry matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
1693
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1694
+ start with single quote for exact match ("'query")
1592
1695
 
1593
1696
  [Default Value] None
1594
1697
 
1595
1698
 
1596
1699
  ===== --tag TAG
1597
1700
 
1598
- Reset last entry matching tag. Wildcards allowed (*, ?)
1701
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1599
1702
 
1600
1703
  [Default Value] None
1601
1704
 
1602
1705
 
1603
1706
  ===== --val QUERY
1604
1707
 
1605
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1708
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1709
+ May be used multiple times, combined with --bool
1606
1710
 
1607
1711
  [Default Value] None
1608
1712
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1650,9 +1754,9 @@ Rotate entries older than date
1650
1754
 
1651
1755
  ===== --bool BOOLEAN
1652
1756
 
1653
- Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1757
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1654
1758
 
1655
- [Default Value] PATTERN
1759
+ [Default Value] pattern
1656
1760
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1657
1761
 
1658
1762
 
@@ -1661,7 +1765,7 @@ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1661
1765
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1662
1766
 
1663
1767
  [Default Value] smart
1664
- [Must Match] (?-mix:^[csi])
1768
+ [Must Match] (?i-mx:^[cis].*?$)
1665
1769
 
1666
1770
 
1667
1771
  ===== -k|--keep X
@@ -1681,28 +1785,30 @@ Section to rotate
1681
1785
 
1682
1786
  ===== --search QUERY
1683
1787
 
1684
- Search filter
1788
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1789
+ start with single quote for exact match ("'query")
1685
1790
 
1686
1791
  [Default Value] None
1687
1792
 
1688
1793
 
1689
1794
  ===== --tag TAG
1690
1795
 
1691
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?). Added for compatibility with other commands
1796
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1692
1797
 
1693
1798
  [Default Value] None
1694
1799
 
1695
1800
 
1696
1801
  ===== --val QUERY
1697
1802
 
1698
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1803
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1804
+ May be used multiple times, combined with --bool
1699
1805
 
1700
1806
  [Default Value] None
1701
1807
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
1702
1808
 
1703
1809
 
1704
1810
  ===== --not
1705
- Rotate items that *don't* match search string or tag filter
1811
+ Rotate items that *don't* match search/tag filters
1706
1812
 
1707
1813
 
1708
1814
 
@@ -1740,14 +1846,16 @@ sbtrkt fuzzy-match Items that match s*b*t*r*k*t
1740
1846
  ===== Options
1741
1847
  ===== --after DATE_STRING
1742
1848
 
1743
- Select from entries newer than date. If this is only a time (8am, 1:30pm, 15:00), all dates will be included, but entries will be filtered by time of day
1849
+ Select entries newer than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
1850
+ dates will be included, but entries will be filtered by time of day
1744
1851
 
1745
1852
  [Default Value] None
1746
1853
 
1747
1854
 
1748
1855
  ===== --before DATE_STRING
1749
1856
 
1750
- Select from entries older than date. If this is only a time (8am, 1:30pm, 15:00), all dates will be included, but entries will be filtered by time of day
1857
+ Select entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
1858
+ dates will be included, but entries will be filtered by time of day
1751
1859
 
1752
1860
  [Default Value] None
1753
1861
 
@@ -1757,17 +1865,16 @@ Select from entries older than date. If this is only a time (8am, 1:30pm, 15:00)
1757
1865
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1758
1866
 
1759
1867
  [Default Value] smart
1760
- [Must Match] (?-mix:^[csi])
1868
+ [Must Match] (?i-mx:^[cis].*?$)
1761
1869
 
1762
1870
 
1763
1871
  ===== --from DATE_OR_RANGE
1764
1872
 
1765
- Date range to show, or a single day to filter date on.
1766
- Date range argument should be quoted. Date specifications can be natural language.
1767
- To specify a range, use "to" or "through": `doing select --from "monday 8am to friday 5pm"`.
1873
+ Date range (natural language) to select, or a single day to filter on.
1874
+ To specify a range, use "to": `doing select --from "monday 8am to friday 5pm"`.
1768
1875
 
1769
- If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
1770
- by time of day.
1876
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
1877
+ by time of day.
1771
1878
 
1772
1879
  [Default Value] None
1773
1880
 
@@ -1788,7 +1895,8 @@ Output entries to format (csv|dayone|dayone-days|dayone-entries|doing|html|json|
1788
1895
 
1789
1896
  ===== -q|--query QUERY
1790
1897
 
1791
- Initial search query for filtering. Matching is fuzzy. For exact matching, start query with a single quote, e.g. `--query "'search"
1898
+ Initial search query for filtering. Matching is fuzzy. For exact matching, start query with a single quote,
1899
+ e.g. `--query "'search"
1792
1900
 
1793
1901
  [Default Value] None
1794
1902
 
@@ -1809,7 +1917,8 @@ Save selected entries to file using --output format
1809
1917
 
1810
1918
  ===== --search QUERY
1811
1919
 
1812
- Select from entries matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
1920
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1921
+ start with single quote for exact match ("'query")
1813
1922
 
1814
1923
  [Default Value] None
1815
1924
 
@@ -1823,7 +1932,8 @@ Tag selected entries
1823
1932
 
1824
1933
  ===== --val QUERY
1825
1934
 
1826
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1935
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1936
+ May be used multiple times, combined with --bool
1827
1937
 
1828
1938
  [Default Value] None
1829
1939
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1835,7 +1945,8 @@ Archive selected items
1835
1945
 
1836
1946
 
1837
1947
  ===== --again|--resume
1838
- Copy selection as a new entry with current time and no @done tag. Only works with single selections. Can be combined with --editor.
1948
+ Copy selection as a new entry with current time and no @done tag.
1949
+ Only works with single selections. Can be combined with --editor.
1839
1950
 
1840
1951
 
1841
1952
 
@@ -1870,7 +1981,8 @@ Perform action without confirmation
1870
1981
 
1871
1982
 
1872
1983
  ===== --[no-]menu
1873
- Use --no-menu to skip the interactive menu. Use with --query to filter items and act on results automatically. Test with `--output doing` to preview matches
1984
+ Use --no-menu to skip the interactive menu. Use with --query to filter items and act on results automatically.
1985
+ Test with `--output doing` to preview matches
1874
1986
 
1875
1987
 
1876
1988
 
@@ -1908,24 +2020,26 @@ Age (oldest|newest)
1908
2020
 
1909
2021
  ===== --after DATE_STRING
1910
2022
 
1911
- Show entries newer than date. If this is only a time (8am, 1:30pm, 15:00), all dates will be included, but entries will be filtered by time of day
2023
+ Show entries newer than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
2024
+ dates will be included, but entries will be filtered by time of day
1912
2025
 
1913
2026
  [Default Value] None
1914
2027
 
1915
2028
 
1916
- ===== -b|--bool BOOLEAN
2029
+ ===== --before DATE_STRING
1917
2030
 
1918
- Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans
2031
+ Show entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
2032
+ dates will be included, but entries will be filtered by time of day
1919
2033
 
1920
- [Default Value] PATTERN
1921
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2034
+ [Default Value] None
1922
2035
 
1923
2036
 
1924
- ===== --before DATE_STRING
2037
+ ===== --bool BOOLEAN
1925
2038
 
1926
- Show entries older than date. If this is only a time (8am, 1:30pm, 15:00), all dates will be included, but entries will be filtered by time of day
2039
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1927
2040
 
1928
- [Default Value] None
2041
+ [Default Value] pattern
2042
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1929
2043
 
1930
2044
 
1931
2045
  ===== -c|--count MAX
@@ -1941,7 +2055,7 @@ Max count to show
1941
2055
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1942
2056
 
1943
2057
  [Default Value] smart
1944
- [Must Match] (?-mix:^[csi])
2058
+ [Must Match] (?i-mx:^[cis].*?$)
1945
2059
 
1946
2060
 
1947
2061
  ===== --config_template TEMPLATE_KEY
@@ -1953,12 +2067,11 @@ Output using a template from configuration
1953
2067
 
1954
2068
  ===== --from DATE_OR_RANGE
1955
2069
 
1956
- Date range to show, or a single day to filter date on.
1957
- Date range argument should be quoted. Date specifications can be natural language.
1958
- To specify a range, use "to" or "through": `doing show --from "monday 8am to friday 5pm"`.
2070
+ Date range (natural language) to show, or a single day to filter on.
2071
+ To specify a range, use "to": `doing show --from "monday 8am to friday 5pm"`.
1959
2072
 
1960
- If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
1961
- by time of day.
2073
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
2074
+ by time of day.
1962
2075
 
1963
2076
  [Default Value] None
1964
2077
 
@@ -1980,14 +2093,15 @@ Sort order (asc/desc)
1980
2093
 
1981
2094
  ===== --search QUERY
1982
2095
 
1983
- Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
2096
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2097
+ start with single quote for exact match ("'query")
1984
2098
 
1985
2099
  [Default Value] None
1986
2100
 
1987
2101
 
1988
2102
  ===== --tag TAG
1989
2103
 
1990
- Tag filter, combine multiple tags with a comma. Use `--tag pick` for a menu of available tags. Wildcards allowed (*, ?). Added for compatibility with other commands
2104
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1991
2105
 
1992
2106
  [Default Value] None
1993
2107
 
@@ -2005,7 +2119,7 @@ Tag sort direction (asc|desc)
2005
2119
  Sort tags by (name|time)
2006
2120
 
2007
2121
  [Default Value] name
2008
- [Must Match] (?i-mx:^(?:name|time))
2122
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2009
2123
 
2010
2124
 
2011
2125
  ===== --template TEMPLATE_STRING
@@ -2017,7 +2131,8 @@ Override output format with a template string containing %placeholders
2017
2131
 
2018
2132
  ===== --val QUERY
2019
2133
 
2020
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2134
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2135
+ May be used multiple times, combined with --bool
2021
2136
 
2022
2137
  [Default Value] None
2023
2138
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2044,7 +2159,7 @@ Select section or tag to display from a menu
2044
2159
 
2045
2160
 
2046
2161
  ===== --not
2047
- Show items that *don't* match search/tag/date filters
2162
+ Show items that *don't* match search/tag filters
2048
2163
 
2049
2164
 
2050
2165
 
@@ -2100,7 +2215,7 @@ Section
2100
2215
  Sort tags by (name|time)
2101
2216
 
2102
2217
  [Default Value] name
2103
- [Must Match] (?i-mx:^(?:name|time)$)
2218
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2104
2219
 
2105
2220
 
2106
2221
  ===== --template TEMPLATE_STRING
@@ -2144,9 +2259,9 @@ Add (or remove) tags from the last entry, or from multiple entries
2144
2259
  ===== Options
2145
2260
  ===== --bool BOOLEAN
2146
2261
 
2147
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
2262
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2148
2263
 
2149
- [Default Value] PATTERN
2264
+ [Default Value] pattern
2150
2265
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2151
2266
 
2152
2267
 
@@ -2163,7 +2278,7 @@ How many recent entries to tag (0 for all)
2163
2278
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
2164
2279
 
2165
2280
  [Default Value] smart
2166
- [Must Match] (?-mix:^[csi])
2281
+ [Must Match] (?i-mx:^[cis].*?$)
2167
2282
 
2168
2283
 
2169
2284
  ===== --rename ORIG_TAG
@@ -2182,15 +2297,15 @@ Section
2182
2297
 
2183
2298
  ===== --search QUERY
2184
2299
 
2185
- Tag entries matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
2300
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2301
+ start with single quote for exact match ("'query")
2186
2302
 
2187
2303
  [Default Value] None
2188
2304
 
2189
2305
 
2190
2306
  ===== --tag TAG
2191
2307
 
2192
- Tag the last X entries containing TAG.
2193
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
2308
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2194
2309
 
2195
2310
  [Default Value] None
2196
2311
 
@@ -2204,7 +2319,8 @@ Include a value, e.g. @tag(value)
2204
2319
 
2205
2320
  ===== --val QUERY
2206
2321
 
2207
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2322
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2323
+ May be used multiple times, combined with --bool
2208
2324
 
2209
2325
  [Default Value] None
2210
2326
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2276,7 +2392,7 @@ List all tags in the current Doing file
2276
2392
 
2277
2393
  Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2278
2394
 
2279
- [Default Value] PATTERN
2395
+ [Default Value] pattern
2280
2396
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2281
2397
 
2282
2398
 
@@ -2285,7 +2401,7 @@ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2285
2401
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
2286
2402
 
2287
2403
  [Default Value] smart
2288
- [Must Match] (?-mix:^[csi])
2404
+ [Must Match] (?i-mx:^[cis].*?$)
2289
2405
 
2290
2406
 
2291
2407
  ===== -o|--order ORDER
@@ -2305,8 +2421,8 @@ Section
2305
2421
 
2306
2422
  ===== --search QUERY
2307
2423
 
2308
- Get tags for items matching search. Surround with
2309
- slashes for regex (e.g. "/query/"), start with a single quote for exact match ("'query").
2424
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2425
+ start with single quote for exact match ("'query")
2310
2426
 
2311
2427
  [Default Value] None
2312
2428
 
@@ -2321,14 +2437,15 @@ Sort by name or count
2321
2437
 
2322
2438
  ===== --tag TAG
2323
2439
 
2324
- Get tags for entries matching tags. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2440
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2325
2441
 
2326
2442
  [Default Value] None
2327
2443
 
2328
2444
 
2329
2445
  ===== --val QUERY
2330
2446
 
2331
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2447
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2448
+ May be used multiple times, combined with --bool
2332
2449
 
2333
2450
  [Default Value] None
2334
2451
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2350,7 +2467,7 @@ Output in a single line with @ symbols. Ignored if --counts is specified.
2350
2467
 
2351
2468
 
2352
2469
  ===== --not
2353
- Get tags from items that *don't* match search/tag filters
2470
+ Show items that *don't* match search/tag filters
2354
2471
 
2355
2472
 
2356
2473
 
@@ -2444,7 +2561,7 @@ Specify a section
2444
2561
  Sort tags by (name|time)
2445
2562
 
2446
2563
  [Default Value] name
2447
- [Must Match] (?i-mx:^(?:name|time)$)
2564
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2448
2565
 
2449
2566
 
2450
2567
  ===== --template TEMPLATE_STRING
@@ -2509,7 +2626,8 @@ Command line options override view configuration.
2509
2626
  ===== Options
2510
2627
  ===== --after DATE_STRING
2511
2628
 
2512
- View entries newer than date. If this is only a time (8am, 1:30pm, 15:00), all dates will be included, but entries will be filtered by time of day
2629
+ Show entries newer than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
2630
+ dates will be included, but entries will be filtered by time of day
2513
2631
 
2514
2632
  [Default Value] None
2515
2633
 
@@ -2521,19 +2639,20 @@ Age (oldest|newest)
2521
2639
  [Default Value] newest
2522
2640
 
2523
2641
 
2524
- ===== -b|--bool BOOLEAN
2642
+ ===== --before DATE_STRING
2525
2643
 
2526
- Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans
2644
+ Show entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
2645
+ dates will be included, but entries will be filtered by time of day
2527
2646
 
2528
- [Default Value] PATTERN
2529
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2647
+ [Default Value] None
2530
2648
 
2531
2649
 
2532
- ===== --before DATE_STRING
2650
+ ===== --bool BOOLEAN
2533
2651
 
2534
- View entries older than date. If this is only a time (8am, 1:30pm, 15:00), all dates will be included, but entries will be filtered by time of day
2652
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2535
2653
 
2536
- [Default Value] None
2654
+ [Default Value] pattern
2655
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2537
2656
 
2538
2657
 
2539
2658
  ===== -c|--count COUNT
@@ -2549,17 +2668,16 @@ Count to display
2549
2668
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
2550
2669
 
2551
2670
  [Default Value] smart
2552
- [Must Match] (?-mix:^[csi])
2671
+ [Must Match] (?i-mx:^[cis].*?$)
2553
2672
 
2554
2673
 
2555
2674
  ===== --from DATE_OR_RANGE
2556
2675
 
2557
- Date range to show, or a single day to filter date on.
2558
- Date range argument should be quoted. Date specifications can be natural language.
2559
- To specify a range, use "to" or "through": `doing view --from "monday 8am to friday 5pm" view_name`.
2676
+ Date range (natural language) to show, or a single day to filter on.
2677
+ To specify a range, use "to": `doing view --from "monday 8am to friday 5pm"`.
2560
2678
 
2561
- If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
2562
- by time of day.
2679
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
2680
+ by time of day.
2563
2681
 
2564
2682
  [Default Value] None
2565
2683
 
@@ -2580,14 +2698,15 @@ Section
2580
2698
 
2581
2699
  ===== --search QUERY
2582
2700
 
2583
- Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
2701
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2702
+ start with single quote for exact match ("'query")
2584
2703
 
2585
2704
  [Default Value] None
2586
2705
 
2587
2706
 
2588
2707
  ===== --tag TAG
2589
2708
 
2590
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?)
2709
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2591
2710
 
2592
2711
  [Default Value] None
2593
2712
 
@@ -2605,12 +2724,13 @@ Tag sort direction (asc|desc)
2605
2724
  Sort tags by (name|time)
2606
2725
 
2607
2726
  [Default Value] None
2608
- [Must Match] (?i-mx:^(?:name|time)$)
2727
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2609
2728
 
2610
2729
 
2611
2730
  ===== --val QUERY
2612
2731
 
2613
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2732
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2733
+ May be used multiple times, combined with --bool
2614
2734
 
2615
2735
  [Default Value] None
2616
2736
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2637,7 +2757,7 @@ Select from a menu of matching entries to perform additional operations
2637
2757
 
2638
2758
 
2639
2759
  ===== --not
2640
- Show items that *don't* match search string
2760
+ Show items that *don't* match search/tag filters
2641
2761
 
2642
2762
 
2643
2763
 
@@ -2795,7 +2915,7 @@ Tag sort direction (asc|desc)
2795
2915
  Sort tags by (name|time)
2796
2916
 
2797
2917
  [Default Value] name
2798
- [Must Match] (?i-mx:^(?:name|time)$)
2918
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2799
2919
 
2800
2920
 
2801
2921
  ===== --template TEMPLATE_STRING