doing 2.1.25 → 2.1.29

Sign up to get free protection for your applications and to get access to all the features.
Files changed (163) hide show
  1. checksums.yaml +4 -4
  2. data/.yardoc/checksums +15 -20
  3. data/.yardoc/object_types +0 -0
  4. data/.yardoc/objects/root.dat +0 -0
  5. data/CHANGELOG.md +322 -108
  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 +2 -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 +83 -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 -3706
  55. data/docs/doc/Array.html +3 -502
  56. data/docs/doc/BooleanTermParser/Clause.html +1 -1
  57. data/docs/doc/BooleanTermParser/Operator.html +1 -1
  58. data/docs/doc/BooleanTermParser/Query.html +1 -1
  59. data/docs/doc/BooleanTermParser/QueryParser.html +1 -1
  60. data/docs/doc/BooleanTermParser/QueryTransformer.html +1 -1
  61. data/docs/doc/BooleanTermParser.html +1 -1
  62. data/docs/doc/Doing/Color.html +62 -56
  63. data/docs/doc/Doing/Completion.html +1 -1
  64. data/docs/doc/Doing/Configuration.html +36 -1
  65. data/docs/doc/Doing/Errors/DoingNoTraceError.html +1 -1
  66. data/docs/doc/Doing/Errors/DoingRuntimeError.html +1 -1
  67. data/docs/doc/Doing/Errors/DoingStandardError.html +1 -1
  68. data/docs/doc/Doing/Errors/EmptyInput.html +1 -1
  69. data/docs/doc/Doing/Errors/NoResults.html +1 -1
  70. data/docs/doc/Doing/Errors/PluginException.html +1 -1
  71. data/docs/doc/Doing/Errors/UserCancelled.html +1 -1
  72. data/docs/doc/Doing/Errors/WrongCommand.html +1 -1
  73. data/docs/doc/Doing/Errors.html +1 -1
  74. data/docs/doc/Doing/Hooks.html +1 -1
  75. data/docs/doc/Doing/Item.html +1 -1
  76. data/docs/doc/Doing/Items.html +2 -2
  77. data/docs/doc/Doing/LogAdapter.html +1 -1
  78. data/docs/doc/Doing/Note.html +2 -2
  79. data/docs/doc/Doing/Pager.html +1 -1
  80. data/docs/doc/Doing/Plugins.html +1 -1
  81. data/docs/doc/Doing/Prompt.html +46 -1
  82. data/docs/doc/Doing/Section.html +1 -1
  83. data/docs/doc/Doing/TemplateString.html +2 -2
  84. data/docs/doc/Doing/Types.html +41 -1
  85. data/docs/doc/Doing/Util/Backup.html +1 -1
  86. data/docs/doc/Doing/Util.html +1 -1
  87. data/docs/doc/Doing/WWID.html +10 -10
  88. data/docs/doc/Doing.html +3 -3
  89. data/docs/doc/FalseClass.html +235 -0
  90. data/docs/doc/GLI/Commands/Help.html +1 -1
  91. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
  92. data/docs/doc/GLI/Commands.html +1 -1
  93. data/docs/doc/GLI.html +1 -1
  94. data/docs/doc/Hash.html +1 -1
  95. data/docs/doc/Numeric.html +1 -1
  96. data/docs/doc/Object.html +203 -0
  97. data/docs/doc/PhraseParser/Operator.html +1 -1
  98. data/docs/doc/PhraseParser/PhraseClause.html +1 -1
  99. data/docs/doc/PhraseParser/Query.html +1 -1
  100. data/docs/doc/PhraseParser/QueryParser.html +1 -1
  101. data/docs/doc/PhraseParser/QueryTransformer.html +1 -1
  102. data/docs/doc/PhraseParser/TermClause.html +1 -1
  103. data/docs/doc/PhraseParser.html +1 -1
  104. data/docs/doc/Status.html +1 -1
  105. data/docs/doc/String.html +287 -3155
  106. data/docs/doc/Symbol.html +40 -6
  107. data/docs/doc/Time.html +1 -1
  108. data/docs/doc/TrueClass.html +235 -0
  109. data/docs/doc/_index.html +5 -10
  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 +289 -681
  114. data/docs/doc/top-level-namespace.html +2 -2
  115. data/doing.rdoc +306 -205
  116. data/lib/completion/_doing.zsh +35 -35
  117. data/lib/completion/doing.bash +30 -30
  118. data/lib/completion/doing.fish +88 -78
  119. data/lib/doing/array/array.rb +4 -0
  120. data/lib/doing/array/nested_hash.rb +17 -0
  121. data/lib/doing/{array.rb → array/tags.rb} +7 -25
  122. data/lib/doing/changelog/change.rb +26 -11
  123. data/lib/doing/changelog/changes.rb +31 -4
  124. data/lib/doing/{array_chronify.rb → chronify/array.rb} +0 -0
  125. data/lib/doing/chronify/chronify.rb +5 -0
  126. data/lib/doing/{numeric_chronify.rb → chronify/numeric.rb} +0 -0
  127. data/lib/doing/{string_chronify.rb → chronify/string.rb} +0 -0
  128. data/lib/doing/colors.rb +115 -54
  129. data/lib/doing/configuration.rb +5 -0
  130. data/lib/doing/good.rb +8 -0
  131. data/lib/doing/help_monkey_patch.rb +6 -5
  132. data/lib/doing/item.rb +5 -5
  133. data/lib/doing/items.rb +2 -2
  134. data/lib/doing/log_adapter.rb +35 -2
  135. data/lib/doing/normalize.rb +188 -0
  136. data/lib/doing/pager.rb +1 -0
  137. data/lib/doing/plugins/export/dayone_export.rb +1 -1
  138. data/lib/doing/plugins/export/html_export.rb +1 -1
  139. data/lib/doing/plugins/export/json_export.rb +1 -1
  140. data/lib/doing/plugins/export/markdown_export.rb +1 -1
  141. data/lib/doing/plugins/export/template_export.rb +3 -1
  142. data/lib/doing/prompt.rb +9 -3
  143. data/lib/doing/string/highlight.rb +95 -0
  144. data/lib/doing/string/query.rb +129 -0
  145. data/lib/doing/string/string.rb +12 -0
  146. data/lib/doing/string/tags.rb +164 -0
  147. data/lib/doing/string/transform.rb +168 -0
  148. data/lib/doing/string/truncate.rb +75 -0
  149. data/lib/doing/string/url.rb +82 -0
  150. data/lib/doing/template_string.rb +0 -22
  151. data/lib/doing/types.rb +8 -0
  152. data/lib/doing/util.rb +13 -9
  153. data/lib/doing/version.rb +1 -1
  154. data/lib/doing/wwid.rb +53 -35
  155. data/lib/doing.rb +4 -6
  156. data/lib/examples/commands/wiki.rb +6 -7
  157. data/lib/examples/plugins/wiki_export/wiki_export.rb +1 -1
  158. data/lib/helpers/threaded_tests.rb +39 -20
  159. data/scripts/deploy.rb +107 -0
  160. data/scripts/runtests.sh +4 -0
  161. metadata +63 -8
  162. data/lib/doing/string.rb +0 -765
  163. 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.25
8
+ v2.1.29
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 /opt/homebrew/bin/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,62 @@ 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
+ ===== -i|--interactive
476
+ Open changelog in interactive viewer
477
+
478
+
479
+
480
+ ===== -m|--md|--markdown
481
+ Output raw Markdown
482
+
483
+
484
+
485
+ ===== --render
486
+ Force rendered output
487
+
439
488
 
440
489
 
441
490
  ==== Command: <tt>colors </tt>
442
491
  List available color variables for configuration templates and views
443
492
 
444
493
 
494
+ ==== Command: <tt>commands </tt>
495
+ Enable and disable Doing commands
496
+
497
+
498
+ ===== Commands
499
+ ====== Command: <tt>add|enable COMMAND [COMMAND...]</tt>
500
+ Enable Doing commands
501
+
502
+ Run without arguments to select commands from a list.
503
+ ====== Command: <tt>remove|disable </tt>
504
+ Disable Doing commands
505
+
506
+
507
+ [Default Command] add
445
508
  ==== Command: <tt>completion </tt>
446
509
  Generate shell completion scripts
447
510
 
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.
511
+ Generates the necessary scripts to add command line completion to various shells,
512
+ so typing 'doing' and hitting tab will offer completions of subcommands and their options.
450
513
  ===== Options
451
514
  ===== -f|--file PATH
452
515
 
@@ -572,7 +635,7 @@ Set finish date to specific date/time (natural langauge parsed, e.g. --at=1:30pm
572
635
 
573
636
  ===== -b|--back|--started DATE_STRING
574
637
 
575
- Backdate start date by interval or set to time [4pm|20m|2h|"yesterday noon"]
638
+ Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
576
639
 
577
640
  [Default Value] None
578
641
 
@@ -609,6 +672,11 @@ Set completion date to start date plus interval (XX[mhd] or HH:MM).
609
672
  [Default Value] None
610
673
 
611
674
 
675
+ ===== -X|--noauto
676
+ Exclude auto tags and default tags
677
+
678
+
679
+
612
680
  ===== -a|--archive
613
681
  Immediately archive the entry
614
682
 
@@ -625,7 +693,7 @@ Include date
625
693
 
626
694
 
627
695
  ===== -e|--editor
628
- Edit entry with /opt/homebrew/bin/vim (with no arguments, edits the last entry)
696
+ Edit entry with vim
629
697
 
630
698
 
631
699
 
@@ -660,9 +728,9 @@ Backdate completed date to date string [4pm|20m|2h|yesterday noon]
660
728
 
661
729
  ===== --bool BOOLEAN
662
730
 
663
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
731
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
664
732
 
665
- [Default Value] PATTERN
733
+ [Default Value] pattern
666
734
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
667
735
 
668
736
 
@@ -671,7 +739,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to
671
739
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
672
740
 
673
741
  [Default Value] smart
674
- [Must Match] (?-mix:^[csi])
742
+ [Must Match] (?i-mx:^[cis].*?$)
675
743
 
676
744
 
677
745
  ===== -s|--section NAME
@@ -683,7 +751,8 @@ Section
683
751
 
684
752
  ===== --search QUERY
685
753
 
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")
754
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
755
+ start with single quote for exact match ("'query")
687
756
 
688
757
  [Default Value] None
689
758
 
@@ -697,15 +766,15 @@ Set the completed date to the start date plus XX[hmd]
697
766
 
698
767
  ===== --tag TAG
699
768
 
700
- Finish the last X entries containing TAG.
701
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
769
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
702
770
 
703
771
  [Default Value] None
704
772
 
705
773
 
706
774
  ===== --val QUERY
707
775
 
708
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
776
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
777
+ May be used multiple times, combined with --bool
709
778
 
710
779
  [Default Value] None
711
780
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -739,7 +808,7 @@ Finish items that *don't* match search/tag filters
739
808
 
740
809
 
741
810
  ===== -r|--remove
742
- Remove done tag
811
+ Remove @done tag
743
812
 
744
813
 
745
814
 
@@ -748,6 +817,11 @@ Finish last entry (or entries) not already marked @done
748
817
 
749
818
 
750
819
 
820
+ ===== --update
821
+ Overwrite existing @done tag with new date
822
+
823
+
824
+
751
825
  ===== -x|--exact
752
826
  Force exact search string matching (case sensitive)
753
827
 
@@ -762,23 +836,25 @@ To search with regular expressions, single quote the string and surround with sl
762
836
  ===== Options
763
837
  ===== --after DATE_STRING
764
838
 
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
839
+ Search entries newer than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
840
+ dates will be included, but entries will be filtered by time of day
766
841
 
767
842
  [Default Value] None
768
843
 
769
844
 
770
845
  ===== --before DATE_STRING
771
846
 
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
847
+ Search entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
848
+ dates will be included, but entries will be filtered by time of day
773
849
 
774
850
  [Default Value] None
775
851
 
776
852
 
777
- ===== --bool arg
853
+ ===== --bool BOOLEAN
778
854
 
779
855
  Combine multiple tags or value queries using AND, OR, or NOT
780
856
 
781
- [Default Value] AND
857
+ [Default Value] pattern
782
858
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
783
859
 
784
860
 
@@ -787,7 +863,7 @@ Combine multiple tags or value queries using AND, OR, or NOT
787
863
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
788
864
 
789
865
  [Default Value] smart
790
- [Must Match] (?-mix:^[csi])
866
+ [Must Match] (?i-mx:^[cis].*?$)
791
867
 
792
868
 
793
869
  ===== --config_template TEMPLATE_KEY
@@ -799,12 +875,11 @@ Output using a template from configuration
799
875
 
800
876
  ===== --from DATE_OR_RANGE
801
877
 
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"`.
878
+ Date range (natural language) to search, or a single day to filter on.
879
+ To specify a range, use "to": `doing grep --from "monday 8am to friday 5pm"`.
805
880
 
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.
881
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
882
+ by time of day.
808
883
 
809
884
  [Default Value] None
810
885
 
@@ -828,7 +903,7 @@ Section
828
903
  Sort tags by (name|time)
829
904
 
830
905
  [Default Value] name
831
- [Must Match] (?i-mx:^(?:name|time)$)
906
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
832
907
 
833
908
 
834
909
  ===== --template TEMPLATE_STRING
@@ -857,7 +932,7 @@ Show elapsed time on entries without @done tag
857
932
 
858
933
 
859
934
  ===== -e|--editor
860
- Edit matching entries with /opt/homebrew/bin/vim
935
+ Edit matching entries with vim
861
936
 
862
937
 
863
938
 
@@ -913,14 +988,16 @@ Imports entries from other sources. Available plugins: calendar, capturething, d
913
988
  ===== Options
914
989
  ===== --after DATE_STRING
915
990
 
916
- Import entries newer than date
991
+ Import entries newer than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
992
+ dates will be included, but entries will be filtered by time of day
917
993
 
918
994
  [Default Value] None
919
995
 
920
996
 
921
997
  ===== --before DATE_STRING
922
998
 
923
- Import entries older than date
999
+ Import entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
1000
+ dates will be included, but entries will be filtered by time of day
924
1001
 
925
1002
  [Default Value] None
926
1003
 
@@ -930,14 +1007,16 @@ Import entries older than date
930
1007
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
931
1008
 
932
1009
  [Default Value] smart
933
- [Must Match] (?-mix:^[csi])
1010
+ [Must Match] (?i-mx:^[cis].*?$)
934
1011
 
935
1012
 
936
- ===== -f|--from DATE_OR_RANGE
1013
+ ===== --from DATE_OR_RANGE
937
1014
 
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.
1015
+ Date range (natural language) to import, or a single day to filter on.
1016
+ To specify a range, use "to": `doing import --from "monday 8am to friday 5pm"`.
1017
+
1018
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
1019
+ by time of day.
941
1020
 
942
1021
  [Default Value] None
943
1022
 
@@ -958,7 +1037,8 @@ Target section
958
1037
 
959
1038
  ===== --search QUERY
960
1039
 
961
- Only import items matching search. Surround with slashes for regex (/query/), start with single quote for exact match ("'query")
1040
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1041
+ start with single quote for exact match ("'query")
962
1042
 
963
1043
  [Default Value] None
964
1044
 
@@ -1010,9 +1090,9 @@ allowing `doing last` to target historical entries.
1010
1090
  ===== Options
1011
1091
  ===== --bool BOOLEAN
1012
1092
 
1013
- Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1093
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1014
1094
 
1015
- [Default Value] PATTERN
1095
+ [Default Value] pattern
1016
1096
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1017
1097
 
1018
1098
 
@@ -1021,7 +1101,7 @@ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1021
1101
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1022
1102
 
1023
1103
  [Default Value] smart
1024
- [Must Match] (?-mix:^[csi])
1104
+ [Must Match] (?i-mx:^[cis].*?$)
1025
1105
 
1026
1106
 
1027
1107
  ===== --config_template TEMPLATE_KEY
@@ -1040,14 +1120,15 @@ Specify a section
1040
1120
 
1041
1121
  ===== --search QUERY
1042
1122
 
1043
- Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
1123
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1124
+ start with single quote for exact match ("'query")
1044
1125
 
1045
1126
  [Default Value] None
1046
1127
 
1047
1128
 
1048
1129
  ===== --tag TAG
1049
1130
 
1050
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?)
1131
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1051
1132
 
1052
1133
  [Default Value] None
1053
1134
 
@@ -1061,7 +1142,8 @@ Override output format with a template string containing %placeholders
1061
1142
 
1062
1143
  ===== --val QUERY
1063
1144
 
1064
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1145
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1146
+ May be used multiple times, combined with --bool
1065
1147
 
1066
1148
  [Default Value] None
1067
1149
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1078,7 +1160,7 @@ Show elapsed time if entry is not tagged @done
1078
1160
 
1079
1161
 
1080
1162
  ===== -e|--editor
1081
- Edit entry with /opt/homebrew/bin/vim
1163
+ Edit entry with vim
1082
1164
 
1083
1165
 
1084
1166
 
@@ -1088,7 +1170,7 @@ Highlight search matches in output. Only affects command line output
1088
1170
 
1089
1171
 
1090
1172
  ===== --not
1091
- Show items that *don't* match search string or tag filter
1173
+ Show items that *don't* match search/tag filters
1092
1174
 
1093
1175
 
1094
1176
 
@@ -1097,35 +1179,6 @@ Force exact search string matching (case sensitive)
1097
1179
 
1098
1180
 
1099
1181
 
1100
- ==== Command: <tt>later ENTRY</tt>
1101
- Add an item to the Later section
1102
-
1103
-
1104
- ===== Options
1105
- ===== -b|--back|--started DATE_STRING
1106
-
1107
- Backdate start time to date string [4pm|20m|2h|yesterday noon]
1108
-
1109
- [Default Value] None
1110
-
1111
-
1112
- ===== -n|--note TEXT
1113
-
1114
- Note
1115
-
1116
- [Default Value] None
1117
-
1118
-
1119
- ===== --ask
1120
- Prompt for note via multi-line input
1121
-
1122
-
1123
-
1124
- ===== -e|--editor
1125
- Edit entry with /opt/homebrew/bin/vim
1126
-
1127
-
1128
-
1129
1182
  ==== Command: <tt>mark|flag </tt>
1130
1183
  Mark last entry as flagged
1131
1184
 
@@ -1133,9 +1186,9 @@ Mark last entry as flagged
1133
1186
  ===== Options
1134
1187
  ===== --bool BOOLEAN
1135
1188
 
1136
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1189
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1137
1190
 
1138
- [Default Value] PATTERN
1191
+ [Default Value] pattern
1139
1192
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1140
1193
 
1141
1194
 
@@ -1152,7 +1205,7 @@ How many recent entries to tag (0 for all)
1152
1205
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1153
1206
 
1154
1207
  [Default Value] smart
1155
- [Must Match] (?-mix:^[csi])
1208
+ [Must Match] (?i-mx:^[cis].*?$)
1156
1209
 
1157
1210
 
1158
1211
  ===== -s|--section SECTION_NAME
@@ -1164,22 +1217,23 @@ Section
1164
1217
 
1165
1218
  ===== --search QUERY
1166
1219
 
1167
- Flag the last entry matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
1220
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1221
+ start with single quote for exact match ("'query")
1168
1222
 
1169
1223
  [Default Value] None
1170
1224
 
1171
1225
 
1172
1226
  ===== --tag TAG
1173
1227
 
1174
- Flag the last entry containing TAG.
1175
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
1228
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1176
1229
 
1177
1230
  [Default Value] None
1178
1231
 
1179
1232
 
1180
1233
  ===== --val QUERY
1181
1234
 
1182
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1235
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1236
+ May be used multiple times, combined with --bool
1183
1237
 
1184
1238
  [Default Value] None
1185
1239
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1201,7 +1255,7 @@ Select item(s) to flag from a menu of matching entries
1201
1255
 
1202
1256
 
1203
1257
  ===== --not
1204
- Flag items that *don't* match search/tag/date filters
1258
+ Flag items that *don't* match search/tag filters
1205
1259
 
1206
1260
 
1207
1261
 
@@ -1237,7 +1291,7 @@ Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
1237
1291
 
1238
1292
  ===== -n|--note TEXT
1239
1293
 
1240
- Note
1294
+ Include a note
1241
1295
 
1242
1296
  [Default Value] None
1243
1297
 
@@ -1249,6 +1303,11 @@ Section
1249
1303
  [Default Value] None
1250
1304
 
1251
1305
 
1306
+ ===== -X|--noauto
1307
+ Exclude auto tags and default tags
1308
+
1309
+
1310
+
1252
1311
  ===== -a|--archive
1253
1312
  Archive previous @meanwhile entry
1254
1313
 
@@ -1260,7 +1319,7 @@ Prompt for note via multi-line input
1260
1319
 
1261
1320
 
1262
1321
  ===== -e|--editor
1263
- Edit entry with /opt/homebrew/bin/vim
1322
+ Edit entry with vim
1264
1323
 
1265
1324
 
1266
1325
 
@@ -1275,9 +1334,9 @@ If -r is provided with no other arguments, the last note is removed.
1275
1334
  ===== Options
1276
1335
  ===== --bool BOOLEAN
1277
1336
 
1278
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1337
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1279
1338
 
1280
- [Default Value] PATTERN
1339
+ [Default Value] pattern
1281
1340
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1282
1341
 
1283
1342
 
@@ -1286,7 +1345,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to
1286
1345
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1287
1346
 
1288
1347
  [Default Value] smart
1289
- [Must Match] (?-mix:^[csi])
1348
+ [Must Match] (?i-mx:^[cis].*?$)
1290
1349
 
1291
1350
 
1292
1351
  ===== -s|--section NAME
@@ -1298,21 +1357,23 @@ Section
1298
1357
 
1299
1358
  ===== --search QUERY
1300
1359
 
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")
1360
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1361
+ start with single quote for exact match ("'query")
1302
1362
 
1303
1363
  [Default Value] None
1304
1364
 
1305
1365
 
1306
1366
  ===== --tag TAG
1307
1367
 
1308
- Add/remove note from last entry matching tag. Wildcards allowed (*, ?)
1368
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1309
1369
 
1310
1370
  [Default Value] None
1311
1371
 
1312
1372
 
1313
1373
  ===== --val QUERY
1314
1374
 
1315
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1375
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1376
+ May be used multiple times, combined with --bool
1316
1377
 
1317
1378
  [Default Value] None
1318
1379
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1324,7 +1385,7 @@ Prompt for note via multi-line input
1324
1385
 
1325
1386
 
1326
1387
  ===== -e|--editor
1327
- Edit entry with /opt/homebrew/bin/vim
1388
+ Edit entry with vim
1328
1389
 
1329
1390
 
1330
1391
 
@@ -1334,7 +1395,7 @@ Select item for new note from a menu of matching entries
1334
1395
 
1335
1396
 
1336
1397
  ===== --not
1337
- Add note to item that *doesn't* match search/tag filters
1398
+ Note items that *don't* match search/tag filters
1338
1399
 
1339
1400
 
1340
1401
 
@@ -1357,11 +1418,11 @@ A parenthetical at the end of the entry will be converted to a note.
1357
1418
 
1358
1419
  Run without arguments to create a new entry interactively.
1359
1420
 
1360
- Run with --editor to create a new entry using /opt/homebrew/bin/vim.
1421
+ Run with --editor to create a new entry using vim.
1361
1422
  ===== Options
1362
1423
  ===== -b|--back|--started DATE_STRING
1363
1424
 
1364
- Backdate start time [4pm|20m|2h|"yesterday noon"]
1425
+ Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
1365
1426
 
1366
1427
  [Default Value] None
1367
1428
 
@@ -1388,13 +1449,18 @@ Section
1388
1449
  [Default Value] None
1389
1450
 
1390
1451
 
1452
+ ===== -X|--noauto
1453
+ Exclude auto tags and default tags
1454
+
1455
+
1456
+
1391
1457
  ===== --ask
1392
1458
  Prompt for note via multi-line input
1393
1459
 
1394
1460
 
1395
1461
 
1396
1462
  ===== -e|--editor
1397
- Edit entry with /opt/homebrew/bin/vim
1463
+ Edit entry with vim
1398
1464
 
1399
1465
 
1400
1466
 
@@ -1436,7 +1502,7 @@ Section
1436
1502
  Sort tags by (name|time)
1437
1503
 
1438
1504
  [Default Value] name
1439
- [Must Match] (?i-mx:^(?:name|time)$)
1505
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
1440
1506
 
1441
1507
 
1442
1508
  ===== --template TEMPLATE_STRING
@@ -1465,7 +1531,7 @@ Show time totals at the end of output
1465
1531
  Open the "doing" file in an editor
1466
1532
 
1467
1533
  `doing open` defaults to using the editors->doing_file setting
1468
- in /Users/ttscoff/.config/doing/config.yml (/opt/homebrew/bin/vim).
1534
+ in /Users/ttscoff/.config/doing/config.yml (TaskPaper).
1469
1535
  ===== Options
1470
1536
  ===== -a|--app APP_NAME
1471
1537
 
@@ -1534,7 +1600,7 @@ Section
1534
1600
  Sort tags by (name|time)
1535
1601
 
1536
1602
  [Default Value] name
1537
- [Must Match] (?i-mx:^(?:name|time)$)
1603
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
1538
1604
 
1539
1605
 
1540
1606
  ===== --template TEMPLATE_STRING
@@ -1564,6 +1630,23 @@ Show intervals with totals at the end of output
1564
1630
 
1565
1631
 
1566
1632
 
1633
+ ==== Command: <tt>redo COUNT</tt>
1634
+ Redo an undo command
1635
+
1636
+ Shortcut for `doing undo -r`, reverses the last undo command. Specify a count to redo multiple undos
1637
+ ===== Options
1638
+ ===== -f|--file PATH
1639
+
1640
+ Specify alternate doing file
1641
+
1642
+ [Default Value] None
1643
+
1644
+
1645
+ ===== -i|--[no-]interactive
1646
+ Select from an interactive menu
1647
+
1648
+
1649
+
1567
1650
  ==== Command: <tt>reset|begin [DATE_STRING]</tt>
1568
1651
  Reset the start time of an entry
1569
1652
 
@@ -1573,9 +1656,9 @@ If a date string is provided as an argument, the start time will be set to the p
1573
1656
  ===== Options
1574
1657
  ===== --bool BOOLEAN
1575
1658
 
1576
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1659
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1577
1660
 
1578
- [Default Value] PATTERN
1661
+ [Default Value] pattern
1579
1662
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1580
1663
 
1581
1664
 
@@ -1584,7 +1667,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to
1584
1667
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1585
1668
 
1586
1669
  [Default Value] smart
1587
- [Must Match] (?-mix:^[csi])
1670
+ [Must Match] (?i-mx:^[cis].*?$)
1588
1671
 
1589
1672
 
1590
1673
  ===== -s|--section NAME
@@ -1596,21 +1679,23 @@ Limit search to section
1596
1679
 
1597
1680
  ===== --search QUERY
1598
1681
 
1599
- Reset last entry matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
1682
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1683
+ start with single quote for exact match ("'query")
1600
1684
 
1601
1685
  [Default Value] None
1602
1686
 
1603
1687
 
1604
1688
  ===== --tag TAG
1605
1689
 
1606
- Reset last entry matching tag. Wildcards allowed (*, ?)
1690
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1607
1691
 
1608
1692
  [Default Value] None
1609
1693
 
1610
1694
 
1611
1695
  ===== --val QUERY
1612
1696
 
1613
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1697
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1698
+ May be used multiple times, combined with --bool
1614
1699
 
1615
1700
  [Default Value] None
1616
1701
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1658,9 +1743,9 @@ Rotate entries older than date
1658
1743
 
1659
1744
  ===== --bool BOOLEAN
1660
1745
 
1661
- Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1746
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1662
1747
 
1663
- [Default Value] PATTERN
1748
+ [Default Value] pattern
1664
1749
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1665
1750
 
1666
1751
 
@@ -1669,7 +1754,7 @@ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1669
1754
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1670
1755
 
1671
1756
  [Default Value] smart
1672
- [Must Match] (?-mix:^[csi])
1757
+ [Must Match] (?i-mx:^[cis].*?$)
1673
1758
 
1674
1759
 
1675
1760
  ===== -k|--keep X
@@ -1689,28 +1774,30 @@ Section to rotate
1689
1774
 
1690
1775
  ===== --search QUERY
1691
1776
 
1692
- Search filter
1777
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1778
+ start with single quote for exact match ("'query")
1693
1779
 
1694
1780
  [Default Value] None
1695
1781
 
1696
1782
 
1697
1783
  ===== --tag TAG
1698
1784
 
1699
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?). Added for compatibility with other commands
1785
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1700
1786
 
1701
1787
  [Default Value] None
1702
1788
 
1703
1789
 
1704
1790
  ===== --val QUERY
1705
1791
 
1706
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1792
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1793
+ May be used multiple times, combined with --bool
1707
1794
 
1708
1795
  [Default Value] None
1709
1796
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
1710
1797
 
1711
1798
 
1712
1799
  ===== --not
1713
- Rotate items that *don't* match search string or tag filter
1800
+ Rotate items that *don't* match search/tag filters
1714
1801
 
1715
1802
 
1716
1803
 
@@ -1748,14 +1835,16 @@ sbtrkt fuzzy-match Items that match s*b*t*r*k*t
1748
1835
  ===== Options
1749
1836
  ===== --after DATE_STRING
1750
1837
 
1751
- 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
1838
+ Select entries newer than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
1839
+ dates will be included, but entries will be filtered by time of day
1752
1840
 
1753
1841
  [Default Value] None
1754
1842
 
1755
1843
 
1756
1844
  ===== --before DATE_STRING
1757
1845
 
1758
- 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
1846
+ Select entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
1847
+ dates will be included, but entries will be filtered by time of day
1759
1848
 
1760
1849
  [Default Value] None
1761
1850
 
@@ -1765,17 +1854,16 @@ Select from entries older than date. If this is only a time (8am, 1:30pm, 15:00)
1765
1854
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1766
1855
 
1767
1856
  [Default Value] smart
1768
- [Must Match] (?-mix:^[csi])
1857
+ [Must Match] (?i-mx:^[cis].*?$)
1769
1858
 
1770
1859
 
1771
1860
  ===== --from DATE_OR_RANGE
1772
1861
 
1773
- Date range to show, or a single day to filter date on.
1774
- Date range argument should be quoted. Date specifications can be natural language.
1775
- To specify a range, use "to" or "through": `doing select --from "monday 8am to friday 5pm"`.
1862
+ Date range (natural language) to select, or a single day to filter on.
1863
+ To specify a range, use "to": `doing select --from "monday 8am to friday 5pm"`.
1776
1864
 
1777
- If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
1778
- by time of day.
1865
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
1866
+ by time of day.
1779
1867
 
1780
1868
  [Default Value] None
1781
1869
 
@@ -1796,7 +1884,8 @@ Output entries to format (csv|dayone|dayone-days|dayone-entries|doing|html|json|
1796
1884
 
1797
1885
  ===== -q|--query QUERY
1798
1886
 
1799
- Initial search query for filtering. Matching is fuzzy. For exact matching, start query with a single quote, e.g. `--query "'search"
1887
+ Initial search query for filtering. Matching is fuzzy. For exact matching, start query with a single quote,
1888
+ e.g. `--query "'search"
1800
1889
 
1801
1890
  [Default Value] None
1802
1891
 
@@ -1817,7 +1906,8 @@ Save selected entries to file using --output format
1817
1906
 
1818
1907
  ===== --search QUERY
1819
1908
 
1820
- Select from entries matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
1909
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1910
+ start with single quote for exact match ("'query")
1821
1911
 
1822
1912
  [Default Value] None
1823
1913
 
@@ -1831,7 +1921,8 @@ Tag selected entries
1831
1921
 
1832
1922
  ===== --val QUERY
1833
1923
 
1834
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1924
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1925
+ May be used multiple times, combined with --bool
1835
1926
 
1836
1927
  [Default Value] None
1837
1928
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -1843,7 +1934,8 @@ Archive selected items
1843
1934
 
1844
1935
 
1845
1936
  ===== --again|--resume
1846
- Copy selection as a new entry with current time and no @done tag. Only works with single selections. Can be combined with --editor.
1937
+ Copy selection as a new entry with current time and no @done tag.
1938
+ Only works with single selections. Can be combined with --editor.
1847
1939
 
1848
1940
 
1849
1941
 
@@ -1878,7 +1970,8 @@ Perform action without confirmation
1878
1970
 
1879
1971
 
1880
1972
  ===== --[no-]menu
1881
- 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
1973
+ Use --no-menu to skip the interactive menu. Use with --query to filter items and act on results automatically.
1974
+ Test with `--output doing` to preview matches
1882
1975
 
1883
1976
 
1884
1977
 
@@ -1916,24 +2009,26 @@ Age (oldest|newest)
1916
2009
 
1917
2010
  ===== --after DATE_STRING
1918
2011
 
1919
- 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
2012
+ Show entries newer than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
2013
+ dates will be included, but entries will be filtered by time of day
1920
2014
 
1921
2015
  [Default Value] None
1922
2016
 
1923
2017
 
1924
- ===== -b|--bool BOOLEAN
2018
+ ===== --before DATE_STRING
1925
2019
 
1926
- Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans
2020
+ Show entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
2021
+ dates will be included, but entries will be filtered by time of day
1927
2022
 
1928
- [Default Value] PATTERN
1929
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2023
+ [Default Value] None
1930
2024
 
1931
2025
 
1932
- ===== --before DATE_STRING
2026
+ ===== --bool BOOLEAN
1933
2027
 
1934
- 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
2028
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1935
2029
 
1936
- [Default Value] None
2030
+ [Default Value] pattern
2031
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1937
2032
 
1938
2033
 
1939
2034
  ===== -c|--count MAX
@@ -1949,7 +2044,7 @@ Max count to show
1949
2044
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1950
2045
 
1951
2046
  [Default Value] smart
1952
- [Must Match] (?-mix:^[csi])
2047
+ [Must Match] (?i-mx:^[cis].*?$)
1953
2048
 
1954
2049
 
1955
2050
  ===== --config_template TEMPLATE_KEY
@@ -1961,12 +2056,11 @@ Output using a template from configuration
1961
2056
 
1962
2057
  ===== --from DATE_OR_RANGE
1963
2058
 
1964
- Date range to show, or a single day to filter date on.
1965
- Date range argument should be quoted. Date specifications can be natural language.
1966
- To specify a range, use "to" or "through": `doing show --from "monday 8am to friday 5pm"`.
2059
+ Date range (natural language) to show, or a single day to filter on.
2060
+ To specify a range, use "to": `doing show --from "monday 8am to friday 5pm"`.
1967
2061
 
1968
- If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
1969
- by time of day.
2062
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
2063
+ by time of day.
1970
2064
 
1971
2065
  [Default Value] None
1972
2066
 
@@ -1988,14 +2082,15 @@ Sort order (asc/desc)
1988
2082
 
1989
2083
  ===== --search QUERY
1990
2084
 
1991
- Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
2085
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2086
+ start with single quote for exact match ("'query")
1992
2087
 
1993
2088
  [Default Value] None
1994
2089
 
1995
2090
 
1996
2091
  ===== --tag TAG
1997
2092
 
1998
- 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
2093
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1999
2094
 
2000
2095
  [Default Value] None
2001
2096
 
@@ -2013,7 +2108,7 @@ Tag sort direction (asc|desc)
2013
2108
  Sort tags by (name|time)
2014
2109
 
2015
2110
  [Default Value] name
2016
- [Must Match] (?i-mx:^(?:name|time))
2111
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2017
2112
 
2018
2113
 
2019
2114
  ===== --template TEMPLATE_STRING
@@ -2025,7 +2120,8 @@ Override output format with a template string containing %placeholders
2025
2120
 
2026
2121
  ===== --val QUERY
2027
2122
 
2028
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2123
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2124
+ May be used multiple times, combined with --bool
2029
2125
 
2030
2126
  [Default Value] None
2031
2127
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2052,7 +2148,7 @@ Select section or tag to display from a menu
2052
2148
 
2053
2149
 
2054
2150
  ===== --not
2055
- Show items that *don't* match search/tag/date filters
2151
+ Show items that *don't* match search/tag filters
2056
2152
 
2057
2153
 
2058
2154
 
@@ -2108,7 +2204,7 @@ Section
2108
2204
  Sort tags by (name|time)
2109
2205
 
2110
2206
  [Default Value] name
2111
- [Must Match] (?i-mx:^(?:name|time)$)
2207
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2112
2208
 
2113
2209
 
2114
2210
  ===== --template TEMPLATE_STRING
@@ -2152,9 +2248,9 @@ Add (or remove) tags from the last entry, or from multiple entries
2152
2248
  ===== Options
2153
2249
  ===== --bool BOOLEAN
2154
2250
 
2155
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
2251
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2156
2252
 
2157
- [Default Value] PATTERN
2253
+ [Default Value] pattern
2158
2254
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2159
2255
 
2160
2256
 
@@ -2171,7 +2267,7 @@ How many recent entries to tag (0 for all)
2171
2267
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
2172
2268
 
2173
2269
  [Default Value] smart
2174
- [Must Match] (?-mix:^[csi])
2270
+ [Must Match] (?i-mx:^[cis].*?$)
2175
2271
 
2176
2272
 
2177
2273
  ===== --rename ORIG_TAG
@@ -2190,15 +2286,15 @@ Section
2190
2286
 
2191
2287
  ===== --search QUERY
2192
2288
 
2193
- Tag entries matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
2289
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2290
+ start with single quote for exact match ("'query")
2194
2291
 
2195
2292
  [Default Value] None
2196
2293
 
2197
2294
 
2198
2295
  ===== --tag TAG
2199
2296
 
2200
- Tag the last X entries containing TAG.
2201
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
2297
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2202
2298
 
2203
2299
  [Default Value] None
2204
2300
 
@@ -2212,7 +2308,8 @@ Include a value, e.g. @tag(value)
2212
2308
 
2213
2309
  ===== --val QUERY
2214
2310
 
2215
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2311
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2312
+ May be used multiple times, combined with --bool
2216
2313
 
2217
2314
  [Default Value] None
2218
2315
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2284,7 +2381,7 @@ List all tags in the current Doing file
2284
2381
 
2285
2382
  Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2286
2383
 
2287
- [Default Value] PATTERN
2384
+ [Default Value] pattern
2288
2385
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2289
2386
 
2290
2387
 
@@ -2293,7 +2390,7 @@ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2293
2390
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
2294
2391
 
2295
2392
  [Default Value] smart
2296
- [Must Match] (?-mix:^[csi])
2393
+ [Must Match] (?i-mx:^[cis].*?$)
2297
2394
 
2298
2395
 
2299
2396
  ===== -o|--order ORDER
@@ -2313,8 +2410,8 @@ Section
2313
2410
 
2314
2411
  ===== --search QUERY
2315
2412
 
2316
- Get tags for items matching search. Surround with
2317
- slashes for regex (e.g. "/query/"), start with a single quote for exact match ("'query").
2413
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2414
+ start with single quote for exact match ("'query")
2318
2415
 
2319
2416
  [Default Value] None
2320
2417
 
@@ -2329,14 +2426,15 @@ Sort by name or count
2329
2426
 
2330
2427
  ===== --tag TAG
2331
2428
 
2332
- Get tags for entries matching tags. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2429
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2333
2430
 
2334
2431
  [Default Value] None
2335
2432
 
2336
2433
 
2337
2434
  ===== --val QUERY
2338
2435
 
2339
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2436
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2437
+ May be used multiple times, combined with --bool
2340
2438
 
2341
2439
  [Default Value] None
2342
2440
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2358,7 +2456,7 @@ Output in a single line with @ symbols. Ignored if --counts is specified.
2358
2456
 
2359
2457
 
2360
2458
  ===== --not
2361
- Get tags from items that *don't* match search/tag filters
2459
+ Show items that *don't* match search/tag filters
2362
2460
 
2363
2461
 
2364
2462
 
@@ -2452,7 +2550,7 @@ Specify a section
2452
2550
  Sort tags by (name|time)
2453
2551
 
2454
2552
  [Default Value] name
2455
- [Must Match] (?i-mx:^(?:name|time)$)
2553
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2456
2554
 
2457
2555
 
2458
2556
  ===== --template TEMPLATE_STRING
@@ -2517,7 +2615,8 @@ Command line options override view configuration.
2517
2615
  ===== Options
2518
2616
  ===== --after DATE_STRING
2519
2617
 
2520
- 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
2618
+ Show entries newer than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
2619
+ dates will be included, but entries will be filtered by time of day
2521
2620
 
2522
2621
  [Default Value] None
2523
2622
 
@@ -2529,19 +2628,20 @@ Age (oldest|newest)
2529
2628
  [Default Value] newest
2530
2629
 
2531
2630
 
2532
- ===== -b|--bool BOOLEAN
2631
+ ===== --before DATE_STRING
2533
2632
 
2534
- Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans
2633
+ Show entries older than date (natural language). If this is only a time (8am, 1:30pm, 15:00), all
2634
+ dates will be included, but entries will be filtered by time of day
2535
2635
 
2536
- [Default Value] PATTERN
2537
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2636
+ [Default Value] None
2538
2637
 
2539
2638
 
2540
- ===== --before DATE_STRING
2639
+ ===== --bool BOOLEAN
2541
2640
 
2542
- 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
2641
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2543
2642
 
2544
- [Default Value] None
2643
+ [Default Value] pattern
2644
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2545
2645
 
2546
2646
 
2547
2647
  ===== -c|--count COUNT
@@ -2557,17 +2657,16 @@ Count to display
2557
2657
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
2558
2658
 
2559
2659
  [Default Value] smart
2560
- [Must Match] (?-mix:^[csi])
2660
+ [Must Match] (?i-mx:^[cis].*?$)
2561
2661
 
2562
2662
 
2563
2663
  ===== --from DATE_OR_RANGE
2564
2664
 
2565
- Date range to show, or a single day to filter date on.
2566
- Date range argument should be quoted. Date specifications can be natural language.
2567
- To specify a range, use "to" or "through": `doing view --from "monday 8am to friday 5pm" view_name`.
2665
+ Date range (natural language) to show, or a single day to filter on.
2666
+ To specify a range, use "to": `doing view --from "monday 8am to friday 5pm"`.
2568
2667
 
2569
- If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
2570
- by time of day.
2668
+ If values are only time(s) (6am to noon) all dates will be included, but entries will be filtered
2669
+ by time of day.
2571
2670
 
2572
2671
  [Default Value] None
2573
2672
 
@@ -2588,14 +2687,15 @@ Section
2588
2687
 
2589
2688
  ===== --search QUERY
2590
2689
 
2591
- Search filter, surround with slashes for regex (/query/), start with single quote for exact match ("'query")
2690
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2691
+ start with single quote for exact match ("'query")
2592
2692
 
2593
2693
  [Default Value] None
2594
2694
 
2595
2695
 
2596
2696
  ===== --tag TAG
2597
2697
 
2598
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?)
2698
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2599
2699
 
2600
2700
  [Default Value] None
2601
2701
 
@@ -2613,12 +2713,13 @@ Tag sort direction (asc|desc)
2613
2713
  Sort tags by (name|time)
2614
2714
 
2615
2715
  [Default Value] None
2616
- [Must Match] (?i-mx:^(?:name|time)$)
2716
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2617
2717
 
2618
2718
 
2619
2719
  ===== --val QUERY
2620
2720
 
2621
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2721
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2722
+ May be used multiple times, combined with --bool
2622
2723
 
2623
2724
  [Default Value] None
2624
2725
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -2645,7 +2746,7 @@ Select from a menu of matching entries to perform additional operations
2645
2746
 
2646
2747
 
2647
2748
  ===== --not
2648
- Show items that *don't* match search string
2749
+ Show items that *don't* match search/tag filters
2649
2750
 
2650
2751
 
2651
2752
 
@@ -2803,7 +2904,7 @@ Tag sort direction (asc|desc)
2803
2904
  Sort tags by (name|time)
2804
2905
 
2805
2906
  [Default Value] name
2806
- [Must Match] (?i-mx:^(?:name|time)$)
2907
+ [Must Match] (?i-mx:^(?:n(?:ame)?|t(?:ime)?)$)
2807
2908
 
2808
2909
 
2809
2910
  ===== --template TEMPLATE_STRING