doing 2.1.24 → 2.1.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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