doing 2.1.24 → 2.1.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) 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 +325 -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 +73 -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 +297 -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 +16 -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/configuration.rb +9 -6
  131. data/lib/doing/good.rb +72 -0
  132. data/lib/doing/hash.rb +4 -0
  133. data/lib/doing/help_monkey_patch.rb +6 -5
  134. data/lib/doing/hooks.rb +3 -3
  135. data/lib/doing/item.rb +19 -15
  136. data/lib/doing/items.rb +2 -2
  137. data/lib/doing/log_adapter.rb +35 -2
  138. data/lib/doing/normalize.rb +188 -0
  139. data/lib/doing/pager.rb +1 -0
  140. data/lib/doing/plugins/export/dayone_export.rb +1 -1
  141. data/lib/doing/plugins/export/html_export.rb +1 -1
  142. data/lib/doing/plugins/export/json_export.rb +1 -1
  143. data/lib/doing/plugins/export/markdown_export.rb +1 -1
  144. data/lib/doing/plugins/export/template_export.rb +3 -1
  145. data/lib/doing/plugins/import/calendar_import.rb +1 -1
  146. data/lib/doing/plugins/import/doing_import.rb +1 -1
  147. data/lib/doing/plugins/import/timing_import.rb +1 -1
  148. data/lib/doing/prompt.rb +9 -3
  149. data/lib/doing/string/highlight.rb +95 -0
  150. data/lib/doing/string/query.rb +129 -0
  151. data/lib/doing/string/string.rb +12 -0
  152. data/lib/doing/string/tags.rb +164 -0
  153. data/lib/doing/string/transform.rb +168 -0
  154. data/lib/doing/string/truncate.rb +75 -0
  155. data/lib/doing/string/url.rb +82 -0
  156. data/lib/doing/template_string.rb +2 -24
  157. data/lib/doing/types.rb +9 -0
  158. data/lib/doing/util.rb +20 -16
  159. data/lib/doing/version.rb +1 -1
  160. data/lib/doing/wwid.rb +91 -51
  161. data/lib/doing.rb +5 -6
  162. data/lib/examples/commands/wiki.rb +6 -7
  163. data/lib/examples/plugins/wiki_export/wiki_export.rb +1 -1
  164. data/lib/helpers/threaded_tests.rb +69 -79
  165. data/lib/helpers/threaded_tests_string.rb +50 -0
  166. data/scripts/deploy.rb +107 -0
  167. data/scripts/runtests.sh +4 -0
  168. metadata +65 -8
  169. data/lib/doing/string.rb +0 -765
  170. 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.24
8
+ v2.1.28
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,52 @@ Show changelogs matching search terms (uses pattern-based searching).
429
454
  [Default Value] None
430
455
 
431
456
 
457
+ ===== --sort ORDER
458
+
459
+ Sort order (asc/desc)
460
+
461
+ [Default Value] desc
462
+ [Must Match] (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
463
+
464
+
465
+ ===== -C|--changes
466
+ Only output changes, no version numbers, headers, or dates
467
+
468
+
469
+
432
470
  ===== -a|--all
433
471
  Display all versions
434
472
 
435
473
 
436
474
 
437
- ==== Command: <tt>choose </tt>
438
- Select a section to display from a menu
475
+ ===== -m|--md|--markdown
476
+ Output raw Markdown
477
+
439
478
 
440
479
 
441
480
  ==== Command: <tt>colors </tt>
442
481
  List available color variables for configuration templates and views
443
482
 
444
483
 
484
+ ==== Command: <tt>commands </tt>
485
+ Enable and disable Doing commands
486
+
487
+
488
+ ===== Commands
489
+ ====== Command: <tt>add|enable COMMAND [COMMAND...]</tt>
490
+ Enable Doing commands
491
+
492
+ Run without arguments to select commands from a list.
493
+ ====== Command: <tt>remove|disable </tt>
494
+ Disable Doing commands
495
+
496
+
497
+ [Default Command] add
445
498
  ==== Command: <tt>completion </tt>
446
499
  Generate shell completion scripts
447
500
 
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.
501
+ Generates the necessary scripts to add command line completion to various shells,
502
+ so typing 'doing' and hitting tab will offer completions of subcommands and their options.
450
503
  ===== Options
451
504
  ===== -f|--file PATH
452
505
 
@@ -572,7 +625,7 @@ Set finish date to specific date/time (natural langauge parsed, e.g. --at=1:30pm
572
625
 
573
626
  ===== -b|--back|--started DATE_STRING
574
627
 
575
- Backdate start date by interval or set to time [4pm|20m|2h|"yesterday noon"]
628
+ Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
576
629
 
577
630
  [Default Value] None
578
631
 
@@ -609,6 +662,11 @@ Set completion date to start date plus interval (XX[mhd] or HH:MM).
609
662
  [Default Value] None
610
663
 
611
664
 
665
+ ===== -X|--noauto
666
+ Exclude auto tags and default tags
667
+
668
+
669
+
612
670
  ===== -a|--archive
613
671
  Immediately archive the entry
614
672
 
@@ -625,7 +683,7 @@ Include date
625
683
 
626
684
 
627
685
  ===== -e|--editor
628
- Edit entry with vim (with no arguments, edits the last entry)
686
+ Edit entry with vim
629
687
 
630
688
 
631
689
 
@@ -660,9 +718,9 @@ Backdate completed date to date string [4pm|20m|2h|yesterday noon]
660
718
 
661
719
  ===== --bool BOOLEAN
662
720
 
663
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
721
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
664
722
 
665
- [Default Value] PATTERN
723
+ [Default Value] pattern
666
724
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
667
725
 
668
726
 
@@ -671,7 +729,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to
671
729
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
672
730
 
673
731
  [Default Value] smart
674
- [Must Match] (?-mix:^[csi])
732
+ [Must Match] (?i-mx:^[cis].*?$)
675
733
 
676
734
 
677
735
  ===== -s|--section NAME
@@ -683,7 +741,8 @@ Section
683
741
 
684
742
  ===== --search QUERY
685
743
 
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")
744
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
745
+ start with single quote for exact match ("'query")
687
746
 
688
747
  [Default Value] None
689
748
 
@@ -697,15 +756,15 @@ Set the completed date to the start date plus XX[hmd]
697
756
 
698
757
  ===== --tag TAG
699
758
 
700
- Finish the last X entries containing TAG.
701
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
759
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
702
760
 
703
761
  [Default Value] None
704
762
 
705
763
 
706
764
  ===== --val QUERY
707
765
 
708
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
766
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
767
+ May be used multiple times, combined with --bool
709
768
 
710
769
  [Default Value] None
711
770
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -739,7 +798,7 @@ Finish items that *don't* match search/tag filters
739
798
 
740
799
 
741
800
  ===== -r|--remove
742
- Remove done tag
801
+ Remove @done tag
743
802
 
744
803
 
745
804
 
@@ -748,6 +807,11 @@ Finish last entry (or entries) not already marked @done
748
807
 
749
808
 
750
809
 
810
+ ===== --update
811
+ Overwrite existing @done tag with new date
812
+
813
+
814
+
751
815
  ===== -x|--exact
752
816
  Force exact search string matching (case sensitive)
753
817
 
@@ -762,23 +826,25 @@ To search with regular expressions, single quote the string and surround with sl
762
826
  ===== Options
763
827
  ===== --after DATE_STRING
764
828
 
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
829
+ Search entries newer 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
766
831
 
767
832
  [Default Value] None
768
833
 
769
834
 
770
835
  ===== --before DATE_STRING
771
836
 
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
837
+ Search entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
838
+ dates will be included, but entries will be filtered by time of day
773
839
 
774
840
  [Default Value] None
775
841
 
776
842
 
777
- ===== --bool arg
843
+ ===== --bool BOOLEAN
778
844
 
779
845
  Combine multiple tags or value queries using AND, OR, or NOT
780
846
 
781
- [Default Value] AND
847
+ [Default Value] pattern
782
848
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
783
849
 
784
850
 
@@ -787,7 +853,7 @@ Combine multiple tags or value queries using AND, OR, or NOT
787
853
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
788
854
 
789
855
  [Default Value] smart
790
- [Must Match] (?-mix:^[csi])
856
+ [Must Match] (?i-mx:^[cis].*?$)
791
857
 
792
858
 
793
859
  ===== --config_template TEMPLATE_KEY
@@ -799,12 +865,11 @@ Output using a template from configuration
799
865
 
800
866
  ===== --from DATE_OR_RANGE
801
867
 
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"`.
868
+ Date range (natural language) to search, or a single day to filter on.
869
+ To specify a range, use "to": `doing grep --from "monday 8am to friday 5pm"`.
805
870
 
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.
871
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
872
+ by time of day.
808
873
 
809
874
  [Default Value] None
810
875
 
@@ -828,7 +893,7 @@ Section
828
893
  Sort tags by (name|time)
829
894
 
830
895
  [Default Value] name
831
- [Must Match] (?i-mx:^(?:name|time)$)
896
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
832
897
 
833
898
 
834
899
  ===== --template TEMPLATE_STRING
@@ -913,14 +978,16 @@ Imports entries from other sources. Available plugins: calendar, capturething, d
913
978
  ===== Options
914
979
  ===== --after DATE_STRING
915
980
 
916
- Import entries newer than date
981
+ Import entries newer 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
917
983
 
918
984
  [Default Value] None
919
985
 
920
986
 
921
987
  ===== --before DATE_STRING
922
988
 
923
- Import entries older than date
989
+ Import entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
990
+ dates will be included, but entries will be filtered by time of day
924
991
 
925
992
  [Default Value] None
926
993
 
@@ -930,14 +997,16 @@ Import entries older than date
930
997
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
931
998
 
932
999
  [Default Value] smart
933
- [Must Match] (?-mix:^[csi])
1000
+ [Must Match] (?i-mx:^[cis].*?$)
934
1001
 
935
1002
 
936
- ===== -f|--from DATE_OR_RANGE
1003
+ ===== --from DATE_OR_RANGE
1004
+
1005
+ Date range (natural language) to import, or a single day to filter on.
1006
+ To specify a range, use "to": `doing import --from "monday 8am to friday 5pm"`.
937
1007
 
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.
1008
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
1009
+ by time of day.
941
1010
 
942
1011
  [Default Value] None
943
1012
 
@@ -958,7 +1027,8 @@ Target section
958
1027
 
959
1028
  ===== --search QUERY
960
1029
 
961
- Only import items matching search. Surround with slashes for regex (/query/), start with single quote for exact match ("'query")
1030
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1031
+ start with single quote for exact match ("'query")
962
1032
 
963
1033
  [Default Value] None
964
1034
 
@@ -1010,9 +1080,9 @@ allowing `doing last` to target historical entries.
1010
1080
  ===== Options
1011
1081
  ===== --bool BOOLEAN
1012
1082
 
1013
- Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1083
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1014
1084
 
1015
- [Default Value] PATTERN
1085
+ [Default Value] pattern
1016
1086
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1017
1087
 
1018
1088
 
@@ -1021,7 +1091,7 @@ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1021
1091
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1022
1092
 
1023
1093
  [Default Value] smart
1024
- [Must Match] (?-mix:^[csi])
1094
+ [Must Match] (?i-mx:^[cis].*?$)
1025
1095
 
1026
1096
 
1027
1097
  ===== --config_template TEMPLATE_KEY
@@ -1040,14 +1110,15 @@ Specify a section
1040
1110
 
1041
1111
  ===== --search QUERY
1042
1112
 
1043
- Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
1113
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1114
+ start with single quote for exact match ("'query")
1044
1115
 
1045
1116
  [Default Value] None
1046
1117
 
1047
1118
 
1048
1119
  ===== --tag TAG
1049
1120
 
1050
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?)
1121
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1051
1122
 
1052
1123
  [Default Value] None
1053
1124
 
@@ -1061,7 +1132,8 @@ Override output format with a template string containing %placeholders
1061
1132
 
1062
1133
  ===== --val QUERY
1063
1134
 
1064
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1135
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1136
+ May be used multiple times, combined with --bool
1065
1137
 
1066
1138
  [Default Value] None
1067
1139
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1088,7 +1160,7 @@ Highlight search matches in output. Only affects command line output
1088
1160
 
1089
1161
 
1090
1162
  ===== --not
1091
- Show items that *don't* match search string or tag filter
1163
+ Show items that *don't* match search/tag filters
1092
1164
 
1093
1165
 
1094
1166
 
@@ -1133,9 +1205,9 @@ Mark last entry as flagged
1133
1205
  ===== Options
1134
1206
  ===== --bool BOOLEAN
1135
1207
 
1136
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1208
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1137
1209
 
1138
- [Default Value] PATTERN
1210
+ [Default Value] pattern
1139
1211
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1140
1212
 
1141
1213
 
@@ -1152,7 +1224,7 @@ How many recent entries to tag (0 for all)
1152
1224
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1153
1225
 
1154
1226
  [Default Value] smart
1155
- [Must Match] (?-mix:^[csi])
1227
+ [Must Match] (?i-mx:^[cis].*?$)
1156
1228
 
1157
1229
 
1158
1230
  ===== -s|--section SECTION_NAME
@@ -1164,22 +1236,23 @@ Section
1164
1236
 
1165
1237
  ===== --search QUERY
1166
1238
 
1167
- Flag the last entry matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
1239
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1240
+ start with single quote for exact match ("'query")
1168
1241
 
1169
1242
  [Default Value] None
1170
1243
 
1171
1244
 
1172
1245
  ===== --tag TAG
1173
1246
 
1174
- Flag the last entry containing TAG.
1175
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
1247
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1176
1248
 
1177
1249
  [Default Value] None
1178
1250
 
1179
1251
 
1180
1252
  ===== --val QUERY
1181
1253
 
1182
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1254
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1255
+ May be used multiple times, combined with --bool
1183
1256
 
1184
1257
  [Default Value] None
1185
1258
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1201,7 +1274,7 @@ Select item(s) to flag from a menu of matching entries
1201
1274
 
1202
1275
 
1203
1276
  ===== --not
1204
- Flag items that *don't* match search/tag/date filters
1277
+ Flag items that *don't* match search/tag filters
1205
1278
 
1206
1279
 
1207
1280
 
@@ -1237,7 +1310,7 @@ Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
1237
1310
 
1238
1311
  ===== -n|--note TEXT
1239
1312
 
1240
- Note
1313
+ Include a note
1241
1314
 
1242
1315
  [Default Value] None
1243
1316
 
@@ -1249,6 +1322,11 @@ Section
1249
1322
  [Default Value] None
1250
1323
 
1251
1324
 
1325
+ ===== -X|--noauto
1326
+ Exclude auto tags and default tags
1327
+
1328
+
1329
+
1252
1330
  ===== -a|--archive
1253
1331
  Archive previous @meanwhile entry
1254
1332
 
@@ -1275,9 +1353,9 @@ If -r is provided with no other arguments, the last note is removed.
1275
1353
  ===== Options
1276
1354
  ===== --bool BOOLEAN
1277
1355
 
1278
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1356
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1279
1357
 
1280
- [Default Value] PATTERN
1358
+ [Default Value] pattern
1281
1359
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1282
1360
 
1283
1361
 
@@ -1286,7 +1364,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to
1286
1364
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1287
1365
 
1288
1366
  [Default Value] smart
1289
- [Must Match] (?-mix:^[csi])
1367
+ [Must Match] (?i-mx:^[cis].*?$)
1290
1368
 
1291
1369
 
1292
1370
  ===== -s|--section NAME
@@ -1298,21 +1376,23 @@ Section
1298
1376
 
1299
1377
  ===== --search QUERY
1300
1378
 
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")
1379
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1380
+ start with single quote for exact match ("'query")
1302
1381
 
1303
1382
  [Default Value] None
1304
1383
 
1305
1384
 
1306
1385
  ===== --tag TAG
1307
1386
 
1308
- Add/remove note from last entry matching tag. Wildcards allowed (*, ?)
1387
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1309
1388
 
1310
1389
  [Default Value] None
1311
1390
 
1312
1391
 
1313
1392
  ===== --val QUERY
1314
1393
 
1315
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1394
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1395
+ May be used multiple times, combined with --bool
1316
1396
 
1317
1397
  [Default Value] None
1318
1398
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1334,7 +1414,7 @@ Select item for new note from a menu of matching entries
1334
1414
 
1335
1415
 
1336
1416
  ===== --not
1337
- Add note to item that *doesn't* match search/tag filters
1417
+ Note items that *don't* match search/tag filters
1338
1418
 
1339
1419
 
1340
1420
 
@@ -1361,7 +1441,15 @@ Run with --editor to create a new entry using vim.
1361
1441
  ===== Options
1362
1442
  ===== -b|--back|--started DATE_STRING
1363
1443
 
1364
- Backdate start time [4pm|20m|2h|"yesterday noon"]
1444
+ Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
1445
+
1446
+ [Default Value] None
1447
+
1448
+
1449
+ ===== --from TIME_RANGE
1450
+
1451
+ Set a start and optionally end time as a date range ("from 1pm to 2:30pm").
1452
+ If an end time is provided, a dated @done tag will be added
1365
1453
 
1366
1454
  [Default Value] None
1367
1455
 
@@ -1380,6 +1468,11 @@ Section
1380
1468
  [Default Value] None
1381
1469
 
1382
1470
 
1471
+ ===== -X|--noauto
1472
+ Exclude auto tags and default tags
1473
+
1474
+
1475
+
1383
1476
  ===== --ask
1384
1477
  Prompt for note via multi-line input
1385
1478
 
@@ -1428,7 +1521,7 @@ Section
1428
1521
  Sort tags by (name|time)
1429
1522
 
1430
1523
  [Default Value] name
1431
- [Must Match] (?i-mx:^(?:name|time)$)
1524
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
1432
1525
 
1433
1526
 
1434
1527
  ===== --template TEMPLATE_STRING
@@ -1526,7 +1619,7 @@ Section
1526
1619
  Sort tags by (name|time)
1527
1620
 
1528
1621
  [Default Value] name
1529
- [Must Match] (?i-mx:^(?:name|time)$)
1622
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
1530
1623
 
1531
1624
 
1532
1625
  ===== --template TEMPLATE_STRING
@@ -1556,6 +1649,23 @@ Show intervals with totals at the end of output
1556
1649
 
1557
1650
 
1558
1651
 
1652
+ ==== Command: <tt>redo COUNT</tt>
1653
+ Redo an undo command
1654
+
1655
+ Shortcut for `doing undo -r`, reverses the last undo command. Specify a count to redo multiple undos
1656
+ ===== Options
1657
+ ===== -f|--file PATH
1658
+
1659
+ Specify alternate doing file
1660
+
1661
+ [Default Value] None
1662
+
1663
+
1664
+ ===== -i|--[no-]interactive
1665
+ Select from an interactive menu
1666
+
1667
+
1668
+
1559
1669
  ==== Command: <tt>reset|begin [DATE_STRING]</tt>
1560
1670
  Reset the start time of an entry
1561
1671
 
@@ -1565,9 +1675,9 @@ If a date string is provided as an argument, the start time will be set to the p
1565
1675
  ===== Options
1566
1676
  ===== --bool BOOLEAN
1567
1677
 
1568
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1678
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1569
1679
 
1570
- [Default Value] PATTERN
1680
+ [Default Value] pattern
1571
1681
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1572
1682
 
1573
1683
 
@@ -1576,7 +1686,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to
1576
1686
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1577
1687
 
1578
1688
  [Default Value] smart
1579
- [Must Match] (?-mix:^[csi])
1689
+ [Must Match] (?i-mx:^[cis].*?$)
1580
1690
 
1581
1691
 
1582
1692
  ===== -s|--section NAME
@@ -1588,21 +1698,23 @@ Limit search to section
1588
1698
 
1589
1699
  ===== --search QUERY
1590
1700
 
1591
- Reset last entry matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
1701
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1702
+ start with single quote for exact match ("'query")
1592
1703
 
1593
1704
  [Default Value] None
1594
1705
 
1595
1706
 
1596
1707
  ===== --tag TAG
1597
1708
 
1598
- Reset last entry matching tag. Wildcards allowed (*, ?)
1709
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1599
1710
 
1600
1711
  [Default Value] None
1601
1712
 
1602
1713
 
1603
1714
  ===== --val QUERY
1604
1715
 
1605
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1716
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1717
+ May be used multiple times, combined with --bool
1606
1718
 
1607
1719
  [Default Value] None
1608
1720
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1650,9 +1762,9 @@ Rotate entries older than date
1650
1762
 
1651
1763
  ===== --bool BOOLEAN
1652
1764
 
1653
- Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1765
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1654
1766
 
1655
- [Default Value] PATTERN
1767
+ [Default Value] pattern
1656
1768
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1657
1769
 
1658
1770
 
@@ -1661,7 +1773,7 @@ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1661
1773
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1662
1774
 
1663
1775
  [Default Value] smart
1664
- [Must Match] (?-mix:^[csi])
1776
+ [Must Match] (?i-mx:^[cis].*?$)
1665
1777
 
1666
1778
 
1667
1779
  ===== -k|--keep X
@@ -1681,28 +1793,30 @@ Section to rotate
1681
1793
 
1682
1794
  ===== --search QUERY
1683
1795
 
1684
- Search filter
1796
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1797
+ start with single quote for exact match ("'query")
1685
1798
 
1686
1799
  [Default Value] None
1687
1800
 
1688
1801
 
1689
1802
  ===== --tag TAG
1690
1803
 
1691
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?). Added for compatibility with other commands
1804
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1692
1805
 
1693
1806
  [Default Value] None
1694
1807
 
1695
1808
 
1696
1809
  ===== --val QUERY
1697
1810
 
1698
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1811
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1812
+ May be used multiple times, combined with --bool
1699
1813
 
1700
1814
  [Default Value] None
1701
1815
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
1702
1816
 
1703
1817
 
1704
1818
  ===== --not
1705
- Rotate items that *don't* match search string or tag filter
1819
+ Rotate items that *don't* match search/tag filters
1706
1820
 
1707
1821
 
1708
1822
 
@@ -1740,14 +1854,16 @@ sbtrkt fuzzy-match Items that match s*b*t*r*k*t
1740
1854
  ===== Options
1741
1855
  ===== --after DATE_STRING
1742
1856
 
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
1857
+ Select entries newer 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
1744
1859
 
1745
1860
  [Default Value] None
1746
1861
 
1747
1862
 
1748
1863
  ===== --before DATE_STRING
1749
1864
 
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
1865
+ Select entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
1866
+ dates will be included, but entries will be filtered by time of day
1751
1867
 
1752
1868
  [Default Value] None
1753
1869
 
@@ -1757,17 +1873,16 @@ Select from entries older than date. If this is only a time (8am, 1:30pm, 15:00)
1757
1873
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1758
1874
 
1759
1875
  [Default Value] smart
1760
- [Must Match] (?-mix:^[csi])
1876
+ [Must Match] (?i-mx:^[cis].*?$)
1761
1877
 
1762
1878
 
1763
1879
  ===== --from DATE_OR_RANGE
1764
1880
 
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"`.
1881
+ Date range (natural language) to select, or a single day to filter on.
1882
+ To specify a range, use "to": `doing select --from "monday 8am to friday 5pm"`.
1768
1883
 
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.
1884
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
1885
+ by time of day.
1771
1886
 
1772
1887
  [Default Value] None
1773
1888
 
@@ -1788,7 +1903,8 @@ Output entries to format (csv|dayone|dayone-days|dayone-entries|doing|html|json|
1788
1903
 
1789
1904
  ===== -q|--query QUERY
1790
1905
 
1791
- Initial search query for filtering. Matching is fuzzy. For exact matching, start query with a single quote, e.g. `--query "'search"
1906
+ Initial search query for filtering. Matching is fuzzy. For exact matching, start query with a single quote,
1907
+ e.g. `--query "'search"
1792
1908
 
1793
1909
  [Default Value] None
1794
1910
 
@@ -1809,7 +1925,8 @@ Save selected entries to file using --output format
1809
1925
 
1810
1926
  ===== --search QUERY
1811
1927
 
1812
- Select from entries matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
1928
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1929
+ start with single quote for exact match ("'query")
1813
1930
 
1814
1931
  [Default Value] None
1815
1932
 
@@ -1823,7 +1940,8 @@ Tag selected entries
1823
1940
 
1824
1941
  ===== --val QUERY
1825
1942
 
1826
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1943
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1944
+ May be used multiple times, combined with --bool
1827
1945
 
1828
1946
  [Default Value] None
1829
1947
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1835,7 +1953,8 @@ Archive selected items
1835
1953
 
1836
1954
 
1837
1955
  ===== --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.
1956
+ Copy selection as a new entry with current time and no @done tag.
1957
+ Only works with single selections. Can be combined with --editor.
1839
1958
 
1840
1959
 
1841
1960
 
@@ -1870,7 +1989,8 @@ Perform action without confirmation
1870
1989
 
1871
1990
 
1872
1991
  ===== --[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
1992
+ Use --no-menu to skip the interactive menu. Use with --query to filter items and act on results automatically.
1993
+ Test with `--output doing` to preview matches
1874
1994
 
1875
1995
 
1876
1996
 
@@ -1908,24 +2028,26 @@ Age (oldest|newest)
1908
2028
 
1909
2029
  ===== --after DATE_STRING
1910
2030
 
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
2031
+ Show entries newer 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
1912
2033
 
1913
2034
  [Default Value] None
1914
2035
 
1915
2036
 
1916
- ===== -b|--bool BOOLEAN
2037
+ ===== --before DATE_STRING
1917
2038
 
1918
- Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans
2039
+ Show entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
2040
+ dates will be included, but entries will be filtered by time of day
1919
2041
 
1920
- [Default Value] PATTERN
1921
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2042
+ [Default Value] None
1922
2043
 
1923
2044
 
1924
- ===== --before DATE_STRING
2045
+ ===== --bool BOOLEAN
1925
2046
 
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
2047
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1927
2048
 
1928
- [Default Value] None
2049
+ [Default Value] pattern
2050
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1929
2051
 
1930
2052
 
1931
2053
  ===== -c|--count MAX
@@ -1941,7 +2063,7 @@ Max count to show
1941
2063
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1942
2064
 
1943
2065
  [Default Value] smart
1944
- [Must Match] (?-mix:^[csi])
2066
+ [Must Match] (?i-mx:^[cis].*?$)
1945
2067
 
1946
2068
 
1947
2069
  ===== --config_template TEMPLATE_KEY
@@ -1953,12 +2075,11 @@ Output using a template from configuration
1953
2075
 
1954
2076
  ===== --from DATE_OR_RANGE
1955
2077
 
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"`.
2078
+ Date range (natural language) to show, or a single day to filter on.
2079
+ To specify a range, use "to": `doing show --from "monday 8am to friday 5pm"`.
1959
2080
 
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.
2081
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
2082
+ by time of day.
1962
2083
 
1963
2084
  [Default Value] None
1964
2085
 
@@ -1980,14 +2101,15 @@ Sort order (asc/desc)
1980
2101
 
1981
2102
  ===== --search QUERY
1982
2103
 
1983
- Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
2104
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2105
+ start with single quote for exact match ("'query")
1984
2106
 
1985
2107
  [Default Value] None
1986
2108
 
1987
2109
 
1988
2110
  ===== --tag TAG
1989
2111
 
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
2112
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1991
2113
 
1992
2114
  [Default Value] None
1993
2115
 
@@ -2005,7 +2127,7 @@ Tag sort direction (asc|desc)
2005
2127
  Sort tags by (name|time)
2006
2128
 
2007
2129
  [Default Value] name
2008
- [Must Match] (?i-mx:^(?:name|time))
2130
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2009
2131
 
2010
2132
 
2011
2133
  ===== --template TEMPLATE_STRING
@@ -2017,7 +2139,8 @@ Override output format with a template string containing %placeholders
2017
2139
 
2018
2140
  ===== --val QUERY
2019
2141
 
2020
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2142
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2143
+ May be used multiple times, combined with --bool
2021
2144
 
2022
2145
  [Default Value] None
2023
2146
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2044,7 +2167,7 @@ Select section or tag to display from a menu
2044
2167
 
2045
2168
 
2046
2169
  ===== --not
2047
- Show items that *don't* match search/tag/date filters
2170
+ Show items that *don't* match search/tag filters
2048
2171
 
2049
2172
 
2050
2173
 
@@ -2100,7 +2223,7 @@ Section
2100
2223
  Sort tags by (name|time)
2101
2224
 
2102
2225
  [Default Value] name
2103
- [Must Match] (?i-mx:^(?:name|time)$)
2226
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2104
2227
 
2105
2228
 
2106
2229
  ===== --template TEMPLATE_STRING
@@ -2144,9 +2267,9 @@ Add (or remove) tags from the last entry, or from multiple entries
2144
2267
  ===== Options
2145
2268
  ===== --bool BOOLEAN
2146
2269
 
2147
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
2270
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2148
2271
 
2149
- [Default Value] PATTERN
2272
+ [Default Value] pattern
2150
2273
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2151
2274
 
2152
2275
 
@@ -2163,7 +2286,7 @@ How many recent entries to tag (0 for all)
2163
2286
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
2164
2287
 
2165
2288
  [Default Value] smart
2166
- [Must Match] (?-mix:^[csi])
2289
+ [Must Match] (?i-mx:^[cis].*?$)
2167
2290
 
2168
2291
 
2169
2292
  ===== --rename ORIG_TAG
@@ -2182,15 +2305,15 @@ Section
2182
2305
 
2183
2306
  ===== --search QUERY
2184
2307
 
2185
- Tag entries matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
2308
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2309
+ start with single quote for exact match ("'query")
2186
2310
 
2187
2311
  [Default Value] None
2188
2312
 
2189
2313
 
2190
2314
  ===== --tag TAG
2191
2315
 
2192
- Tag the last X entries containing TAG.
2193
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
2316
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2194
2317
 
2195
2318
  [Default Value] None
2196
2319
 
@@ -2204,7 +2327,8 @@ Include a value, e.g. @tag(value)
2204
2327
 
2205
2328
  ===== --val QUERY
2206
2329
 
2207
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2330
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2331
+ May be used multiple times, combined with --bool
2208
2332
 
2209
2333
  [Default Value] None
2210
2334
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2276,7 +2400,7 @@ List all tags in the current Doing file
2276
2400
 
2277
2401
  Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2278
2402
 
2279
- [Default Value] PATTERN
2403
+ [Default Value] pattern
2280
2404
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2281
2405
 
2282
2406
 
@@ -2285,7 +2409,7 @@ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2285
2409
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
2286
2410
 
2287
2411
  [Default Value] smart
2288
- [Must Match] (?-mix:^[csi])
2412
+ [Must Match] (?i-mx:^[cis].*?$)
2289
2413
 
2290
2414
 
2291
2415
  ===== -o|--order ORDER
@@ -2305,8 +2429,8 @@ Section
2305
2429
 
2306
2430
  ===== --search QUERY
2307
2431
 
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").
2432
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2433
+ start with single quote for exact match ("'query")
2310
2434
 
2311
2435
  [Default Value] None
2312
2436
 
@@ -2321,14 +2445,15 @@ Sort by name or count
2321
2445
 
2322
2446
  ===== --tag TAG
2323
2447
 
2324
- Get tags for entries matching tags. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2448
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2325
2449
 
2326
2450
  [Default Value] None
2327
2451
 
2328
2452
 
2329
2453
  ===== --val QUERY
2330
2454
 
2331
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2455
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2456
+ May be used multiple times, combined with --bool
2332
2457
 
2333
2458
  [Default Value] None
2334
2459
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2350,7 +2475,7 @@ Output in a single line with @ symbols. Ignored if --counts is specified.
2350
2475
 
2351
2476
 
2352
2477
  ===== --not
2353
- Get tags from items that *don't* match search/tag filters
2478
+ Show items that *don't* match search/tag filters
2354
2479
 
2355
2480
 
2356
2481
 
@@ -2444,7 +2569,7 @@ Specify a section
2444
2569
  Sort tags by (name|time)
2445
2570
 
2446
2571
  [Default Value] name
2447
- [Must Match] (?i-mx:^(?:name|time)$)
2572
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2448
2573
 
2449
2574
 
2450
2575
  ===== --template TEMPLATE_STRING
@@ -2509,7 +2634,8 @@ Command line options override view configuration.
2509
2634
  ===== Options
2510
2635
  ===== --after DATE_STRING
2511
2636
 
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
2637
+ Show entries newer than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
2638
+ dates will be included, but entries will be filtered by time of day
2513
2639
 
2514
2640
  [Default Value] None
2515
2641
 
@@ -2521,19 +2647,20 @@ Age (oldest|newest)
2521
2647
  [Default Value] newest
2522
2648
 
2523
2649
 
2524
- ===== -b|--bool BOOLEAN
2650
+ ===== --before DATE_STRING
2525
2651
 
2526
- Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans
2652
+ Show entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
2653
+ dates will be included, but entries will be filtered by time of day
2527
2654
 
2528
- [Default Value] PATTERN
2529
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2655
+ [Default Value] None
2530
2656
 
2531
2657
 
2532
- ===== --before DATE_STRING
2658
+ ===== --bool BOOLEAN
2533
2659
 
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
2660
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2535
2661
 
2536
- [Default Value] None
2662
+ [Default Value] pattern
2663
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2537
2664
 
2538
2665
 
2539
2666
  ===== -c|--count COUNT
@@ -2549,17 +2676,16 @@ Count to display
2549
2676
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
2550
2677
 
2551
2678
  [Default Value] smart
2552
- [Must Match] (?-mix:^[csi])
2679
+ [Must Match] (?i-mx:^[cis].*?$)
2553
2680
 
2554
2681
 
2555
2682
  ===== --from DATE_OR_RANGE
2556
2683
 
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`.
2684
+ Date range (natural language) to show, or a single day to filter on.
2685
+ To specify a range, use "to": `doing view --from "monday 8am to friday 5pm"`.
2560
2686
 
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.
2687
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
2688
+ by time of day.
2563
2689
 
2564
2690
  [Default Value] None
2565
2691
 
@@ -2580,14 +2706,15 @@ Section
2580
2706
 
2581
2707
  ===== --search QUERY
2582
2708
 
2583
- Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
2709
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2710
+ start with single quote for exact match ("'query")
2584
2711
 
2585
2712
  [Default Value] None
2586
2713
 
2587
2714
 
2588
2715
  ===== --tag TAG
2589
2716
 
2590
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?)
2717
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2591
2718
 
2592
2719
  [Default Value] None
2593
2720
 
@@ -2605,12 +2732,13 @@ Tag sort direction (asc|desc)
2605
2732
  Sort tags by (name|time)
2606
2733
 
2607
2734
  [Default Value] None
2608
- [Must Match] (?i-mx:^(?:name|time)$)
2735
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2609
2736
 
2610
2737
 
2611
2738
  ===== --val QUERY
2612
2739
 
2613
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2740
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2741
+ May be used multiple times, combined with --bool
2614
2742
 
2615
2743
  [Default Value] None
2616
2744
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2637,7 +2765,7 @@ Select from a menu of matching entries to perform additional operations
2637
2765
 
2638
2766
 
2639
2767
  ===== --not
2640
- Show items that *don't* match search string
2768
+ Show items that *don't* match search/tag filters
2641
2769
 
2642
2770
 
2643
2771
 
@@ -2795,7 +2923,7 @@ Tag sort direction (asc|desc)
2795
2923
  Sort tags by (name|time)
2796
2924
 
2797
2925
  [Default Value] name
2798
- [Must Match] (?i-mx:^(?:name|time)$)
2926
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2799
2927
 
2800
2928
 
2801
2929
  ===== --template TEMPLATE_STRING