doing 2.1.12 → 2.1.16

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/.irbrc +1 -0
  3. data/.yardoc/checksums +16 -14
  4. data/.yardoc/object_types +0 -0
  5. data/.yardoc/objects/root.dat +0 -0
  6. data/CHANGELOG.md +67 -0
  7. data/Gemfile.lock +9 -2
  8. data/README.md +56 -19
  9. data/bin/doing +317 -113
  10. data/docs/doc/Array.html +117 -3
  11. data/docs/doc/BooleanTermParser/Clause.html +1 -1
  12. data/docs/doc/BooleanTermParser/Operator.html +1 -1
  13. data/docs/doc/BooleanTermParser/Query.html +1 -1
  14. data/docs/doc/BooleanTermParser/QueryParser.html +1 -1
  15. data/docs/doc/BooleanTermParser/QueryTransformer.html +1 -1
  16. data/docs/doc/BooleanTermParser.html +1 -1
  17. data/docs/doc/Doing/Color.html +1 -1
  18. data/docs/doc/Doing/Completion.html +1 -1
  19. data/docs/doc/Doing/Configuration.html +7 -4
  20. data/docs/doc/Doing/Errors/DoingNoTraceError.html +1 -1
  21. data/docs/doc/Doing/Errors/DoingRuntimeError.html +1 -1
  22. data/docs/doc/Doing/Errors/DoingStandardError.html +1 -1
  23. data/docs/doc/Doing/Errors/EmptyInput.html +1 -1
  24. data/docs/doc/Doing/Errors/NoResults.html +1 -1
  25. data/docs/doc/Doing/Errors/PluginException.html +1 -1
  26. data/docs/doc/Doing/Errors/UserCancelled.html +1 -1
  27. data/docs/doc/Doing/Errors/WrongCommand.html +1 -1
  28. data/docs/doc/Doing/Errors.html +1 -1
  29. data/docs/doc/Doing/Hooks.html +1 -1
  30. data/docs/doc/Doing/Item.html +337 -14
  31. data/docs/doc/Doing/Items.html +66 -2
  32. data/docs/doc/Doing/LogAdapter.html +1 -1
  33. data/docs/doc/Doing/Note.html +2 -2
  34. data/docs/doc/Doing/Pager.html +1 -1
  35. data/docs/doc/Doing/Plugins.html +1 -1
  36. data/docs/doc/Doing/Prompt.html +103 -1
  37. data/docs/doc/Doing/Section.html +1 -1
  38. data/docs/doc/Doing/TemplateString.html +2 -2
  39. data/docs/doc/Doing/Util/Backup.html +84 -1
  40. data/docs/doc/Doing/Util.html +1 -1
  41. data/docs/doc/Doing/WWID.html +214 -35
  42. data/docs/doc/Doing.html +3 -3
  43. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
  44. data/docs/doc/GLI/Commands.html +1 -1
  45. data/docs/doc/GLI.html +1 -1
  46. data/docs/doc/Hash.html +1 -1
  47. data/docs/doc/Numeric.html +279 -0
  48. data/docs/doc/PhraseParser/Operator.html +1 -1
  49. data/docs/doc/PhraseParser/PhraseClause.html +1 -1
  50. data/docs/doc/PhraseParser/Query.html +1 -1
  51. data/docs/doc/PhraseParser/QueryParser.html +1 -1
  52. data/docs/doc/PhraseParser/QueryTransformer.html +1 -1
  53. data/docs/doc/PhraseParser/TermClause.html +1 -1
  54. data/docs/doc/PhraseParser.html +1 -1
  55. data/docs/doc/Status.html +1 -1
  56. data/docs/doc/String.html +881 -138
  57. data/docs/doc/Symbol.html +1 -1
  58. data/docs/doc/Time.html +1 -1
  59. data/docs/doc/_index.html +14 -9
  60. data/docs/doc/class_list.html +1 -1
  61. data/docs/doc/file.README.html +41 -15
  62. data/docs/doc/index.html +41 -15
  63. data/docs/doc/method_list.html +408 -256
  64. data/docs/doc/top-level-namespace.html +2 -2
  65. data/docs/index.md +56 -19
  66. data/doing.gemspec +2 -0
  67. data/doing.rdoc +257 -48
  68. data/example_plugin.rb +2 -4
  69. data/lib/completion/_doing.zsh +31 -27
  70. data/lib/completion/doing.bash +50 -39
  71. data/lib/completion/doing.fish +37 -7
  72. data/lib/doing/array_chronify.rb +57 -0
  73. data/lib/doing/configuration.rb +4 -1
  74. data/lib/doing/item.rb +176 -0
  75. data/lib/doing/log_adapter.rb +1 -1
  76. data/lib/doing/numeric_chronify.rb +40 -0
  77. data/lib/doing/plugins/export/dayone_export.rb +1 -1
  78. data/lib/doing/plugins/export/json_export.rb +2 -2
  79. data/lib/doing/plugins/export/template_export.rb +47 -90
  80. data/lib/doing/plugins/import/calendar_import.rb +13 -1
  81. data/lib/doing/plugins/import/doing_import.rb +12 -1
  82. data/lib/doing/plugins/import/timing_import.rb +13 -1
  83. data/lib/doing/prompt.rb +54 -1
  84. data/lib/doing/string.rb +97 -33
  85. data/lib/doing/string_chronify.rb +112 -14
  86. data/lib/doing/template_string.rb +1 -1
  87. data/lib/doing/time.rb +6 -6
  88. data/lib/doing/util_backup.rb +1 -1
  89. data/lib/doing/version.rb +1 -1
  90. data/lib/doing/wwid.rb +128 -103
  91. data/lib/doing.rb +36 -31
  92. data/lib/examples/plugins/say_export.rb +1 -4
  93. metadata +46 -2
data/doing.rdoc CHANGED
@@ -5,12 +5,12 @@ 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.10
8
+ v2.1.16
9
9
 
10
10
  === Global Options
11
11
  === --config_file arg
12
12
 
13
- Use a specific configuration file. Deprecated, set $DOING_CONFIG instead.
13
+ Use a specific configuration file. Deprecated, set $DOING_CONFIG instead
14
14
 
15
15
  [Default Value] /Users/ttscoff/.config/doing/config.yml
16
16
 
@@ -90,11 +90,11 @@ 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 for an entry by duplicating it with a new start (and end, eventually) time
94
94
  ===== Options
95
95
  ===== --bool BOOLEAN
96
96
 
97
- Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans.
97
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
98
98
 
99
99
  [Default Value] PATTERN
100
100
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -117,7 +117,7 @@ Add new entry to section (default: same section as repeated entry)
117
117
 
118
118
  ===== -n|--note TEXT
119
119
 
120
- Note
120
+ Add a note
121
121
 
122
122
  [Default Value] None
123
123
 
@@ -139,11 +139,24 @@ Repeat last entry matching search. Surround with
139
139
 
140
140
  ===== --tag TAG
141
141
 
142
- Repeat last entry matching tags. Combine multiple tags with a comma. Wildcards allowed (*, ?).
142
+ Repeat last entry matching tags. Combine multiple tags with a comma. Wildcards allowed (*, ?)
143
143
 
144
144
  [Default Value] None
145
145
 
146
146
 
147
+ ===== --val QUERY
148
+
149
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
150
+
151
+ [Default Value] None
152
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
153
+
154
+
155
+ ===== --ask
156
+ Prompt for note via multi-line input
157
+
158
+
159
+
147
160
  ===== -e|--editor
148
161
  Edit duplicated entry with vim before adding
149
162
 
@@ -182,7 +195,7 @@ Archive entries older than date
182
195
 
183
196
  ===== --bool BOOLEAN
184
197
 
185
- Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans.
198
+ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
186
199
 
187
200
  [Default Value] PATTERN
188
201
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -220,11 +233,19 @@ Move entries to
220
233
 
221
234
  ===== --tag TAG
222
235
 
223
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?). Added for compatibility with other commands.
236
+ Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?). Added for compatibility with other commands
224
237
 
225
238
  [Default Value] None
226
239
 
227
240
 
241
+ ===== --val QUERY
242
+
243
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
244
+
245
+ [Default Value] None
246
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
247
+
248
+
228
249
  ===== --[no-]label
229
250
  Label moved items with @from(SECTION_NAME)
230
251
 
@@ -303,11 +324,11 @@ Autotag last entry (or entries) not marked @done
303
324
  ==== Command: <tt>cancel COUNT</tt>
304
325
  End last X entries with no time tracked
305
326
 
306
- Adds @done tag without datestamp so no elapsed time is recorded. Alias for `doing finish --no-date`.
327
+ Adds @done tag without datestamp so no elapsed time is recorded. Alias for `doing finish --no-date`
307
328
  ===== Options
308
329
  ===== --bool BOOLEAN
309
330
 
310
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans.
331
+ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
311
332
 
312
333
  [Default Value] PATTERN
313
334
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -337,11 +358,19 @@ Cancel the last X entries matching search filter, surround with slashes for rege
337
358
 
338
359
  ===== --tag TAG
339
360
 
340
- Cancel the last X entries containing TAG. Separate multiple tags with comma (--tag=tag1,tag2). Wildcards allowed (*, ?).
361
+ Cancel the last X entries containing TAG. Separate multiple tags with comma (--tag=tag1,tag2). Wildcards allowed (*, ?)
341
362
 
342
363
  [Default Value] None
343
364
 
344
365
 
366
+ ===== --val QUERY
367
+
368
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
369
+
370
+ [Default Value] None
371
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
372
+
373
+
345
374
  ===== -a|--archive
346
375
  Archive entries
347
376
 
@@ -493,16 +522,16 @@ Update default config file, adding any missing keys
493
522
 
494
523
  [Default Command] edit
495
524
  ==== Command: <tt>done|did ENTRY</tt>
496
- Add a completed item with @done(date). No argument finishes last entry.
525
+ Add a completed item with @done(date). No argument finishes last entry
497
526
 
498
527
  Use this command to add an entry after you've already finished it. It will be immediately marked as @done.
499
528
  You can modify the start and end times of the entry using the --back, --took, and --at flags, making it an easy
500
529
  way to add entries in post and maintain accurate (albeit manual) time tracking.
501
530
  ===== Options
502
- ===== --at DATE_STRING
531
+ ===== --at|--finished DATE_STRING
503
532
 
504
533
  Set finish date to specific date/time (natural langauge parsed, e.g. --at=1:30pm).
505
- If used, ignores --back. Used with --took, backdates start date
534
+ Used with --took, backdates start date
506
535
 
507
536
  [Default Value] None
508
537
 
@@ -514,6 +543,14 @@ Backdate start date by interval or set to time [4pm|20m|2h|"yesterday noon"]
514
543
  [Default Value] None
515
544
 
516
545
 
546
+ ===== --from TIME_RANGE
547
+
548
+ Start and end times as a date/time range `doing done --from "1am to 8am"`.
549
+ Overrides other date flags.
550
+
551
+ [Default Value] None
552
+
553
+
517
554
  ===== -n|--note TEXT
518
555
 
519
556
  Include a note
@@ -528,7 +565,7 @@ Section
528
565
  [Default Value] None
529
566
 
530
567
 
531
- ===== -t|--took INTERVAL
568
+ ===== -t|--took|--for INTERVAL
532
569
 
533
570
  Set completion date to start date plus interval (XX[mhd] or HH:MM).
534
571
  If used without the --back option, the start date will be moved back to allow
@@ -542,6 +579,11 @@ Immediately archive the entry
542
579
 
543
580
 
544
581
 
582
+ ===== --ask
583
+ Prompt for note via multi-line input
584
+
585
+
586
+
545
587
  ===== --[no-]date
546
588
  Include date
547
589
 
@@ -583,7 +625,7 @@ Backdate completed date to date string [4pm|20m|2h|yesterday noon]
583
625
 
584
626
  ===== --bool BOOLEAN
585
627
 
586
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans.
628
+ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
587
629
 
588
630
  [Default Value] PATTERN
589
631
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -611,7 +653,7 @@ Finish the last X entries matching search filter, surround with slashes for rege
611
653
  [Default Value] None
612
654
 
613
655
 
614
- ===== -t|--took INTERVAL
656
+ ===== -t|--took|--for INTERVAL
615
657
 
616
658
  Set the completed date to the start date plus XX[hmd]
617
659
 
@@ -626,6 +668,14 @@ Finish the last X entries containing TAG.
626
668
  [Default Value] None
627
669
 
628
670
 
671
+ ===== --val QUERY
672
+
673
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
674
+
675
+ [Default Value] None
676
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
677
+
678
+
629
679
  ===== -a|--archive
630
680
  Archive entries
631
681
 
@@ -677,18 +727,26 @@ To search with regular expressions, single quote the string and surround with sl
677
727
  ===== Options
678
728
  ===== --after DATE_STRING
679
729
 
680
- 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.
730
+ 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
681
731
 
682
732
  [Default Value] None
683
733
 
684
734
 
685
735
  ===== --before DATE_STRING
686
736
 
687
- 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.
737
+ 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
688
738
 
689
739
  [Default Value] None
690
740
 
691
741
 
742
+ ===== --bool arg
743
+
744
+ Combine multiple tags or value queries using AND, OR, or NOT
745
+
746
+ [Default Value] AND
747
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
748
+
749
+
692
750
  ===== --case TYPE
693
751
 
694
752
  Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
@@ -731,11 +789,29 @@ Sort tags by (name|time)
731
789
  [Must Match] (?i-mx:^(?:name|time)$)
732
790
 
733
791
 
792
+ ===== --val QUERY
793
+
794
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
795
+
796
+ [Default Value] None
797
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
798
+
799
+
800
+ ===== -d|--delete
801
+ Delete matching entries
802
+
803
+
804
+
734
805
  ===== --[no-]duration
735
806
  Show elapsed time on entries without @done tag
736
807
 
737
808
 
738
809
 
810
+ ===== -e|--editor
811
+ Edit matching entries with vim
812
+
813
+
814
+
739
815
  ===== -i|--interactive
740
816
  Display an interactive menu of results to perform further operations
741
817
 
@@ -833,7 +909,7 @@ Only import items matching search. Surround with slashes for regex (/query/), st
833
909
  [Default Value] None
834
910
 
835
911
 
836
- ===== --tag TAGS
912
+ ===== -t|--tag TAGS
837
913
 
838
914
  Tag all imported entries
839
915
 
@@ -880,7 +956,7 @@ allowing `doing last` to target historical entries.
880
956
  ===== Options
881
957
  ===== --bool BOOLEAN
882
958
 
883
- Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans.
959
+ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
884
960
 
885
961
  [Default Value] PATTERN
886
962
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -910,11 +986,24 @@ Search filter, surround with slashes for regex (/query/), start with single quot
910
986
 
911
987
  ===== --tag TAG
912
988
 
913
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?).
989
+ Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?)
914
990
 
915
991
  [Default Value] None
916
992
 
917
993
 
994
+ ===== --val QUERY
995
+
996
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
997
+
998
+ [Default Value] None
999
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
1000
+
1001
+
1002
+ ===== -d|--delete
1003
+ Delete the last entry
1004
+
1005
+
1006
+
918
1007
  ===== --[no-]duration
919
1008
  Show elapsed time if entry is not tagged @done
920
1009
 
@@ -954,6 +1043,11 @@ Note
954
1043
  [Default Value] None
955
1044
 
956
1045
 
1046
+ ===== --ask
1047
+ Prompt for note via multi-line input
1048
+
1049
+
1050
+
957
1051
  ===== -e|--editor
958
1052
  Edit entry with vim
959
1053
 
@@ -966,7 +1060,7 @@ Mark last entry as flagged
966
1060
  ===== Options
967
1061
  ===== --bool BOOLEAN
968
1062
 
969
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans.
1063
+ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
970
1064
 
971
1065
  [Default Value] PATTERN
972
1066
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -1010,6 +1104,14 @@ Flag the last entry containing TAG.
1010
1104
  [Default Value] None
1011
1105
 
1012
1106
 
1107
+ ===== --val QUERY
1108
+
1109
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1110
+
1111
+ [Default Value] None
1112
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
1113
+
1114
+
1013
1115
  ===== -d|--date
1014
1116
  Include current date/time with tag
1015
1117
 
@@ -1079,6 +1181,11 @@ Archive previous @meanwhile entry
1079
1181
 
1080
1182
 
1081
1183
 
1184
+ ===== --ask
1185
+ Prompt for note via multi-line input
1186
+
1187
+
1188
+
1082
1189
  ===== -e|--editor
1083
1190
  Edit entry with vim
1084
1191
 
@@ -1095,7 +1202,7 @@ If -r is provided with no other arguments, the last note is removed.
1095
1202
  ===== Options
1096
1203
  ===== --bool BOOLEAN
1097
1204
 
1098
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans.
1205
+ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1099
1206
 
1100
1207
  [Default Value] PATTERN
1101
1208
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -1125,9 +1232,22 @@ Add/remove note from last entry matching search filter, surround with slashes fo
1125
1232
 
1126
1233
  ===== --tag TAG
1127
1234
 
1128
- Add/remove note from last entry matching tag. Wildcards allowed (*, ?).
1235
+ Add/remove note from last entry matching tag. Wildcards allowed (*, ?)
1236
+
1237
+ [Default Value] None
1238
+
1239
+
1240
+ ===== --val QUERY
1241
+
1242
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1129
1243
 
1130
1244
  [Default Value] None
1245
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
1246
+
1247
+
1248
+ ===== --ask
1249
+ Prompt for note via multi-line input
1250
+
1131
1251
 
1132
1252
 
1133
1253
  ===== -e|--editor
@@ -1162,7 +1282,9 @@ Record what you're starting now, or backdate the start time using natural langua
1162
1282
 
1163
1283
  A parenthetical at the end of the entry will be converted to a note.
1164
1284
 
1165
- Run with no argument to create a new entry using vim.
1285
+ Run without arguments to create a new entry interactively.
1286
+
1287
+ Run with --editor to create a new entry using vim.
1166
1288
  ===== Options
1167
1289
  ===== -b|--back|--started DATE_STRING
1168
1290
 
@@ -1185,6 +1307,11 @@ Section
1185
1307
  [Default Value] None
1186
1308
 
1187
1309
 
1310
+ ===== --ask
1311
+ Prompt for note via multi-line input
1312
+
1313
+
1314
+
1188
1315
  ===== -e|--editor
1189
1316
  Edit entry with vim
1190
1317
 
@@ -1337,7 +1464,7 @@ If a date string is provided as an argument, the start time will be set to the p
1337
1464
  ===== Options
1338
1465
  ===== --bool BOOLEAN
1339
1466
 
1340
- Boolean (AND|OR|NOT) with which to combine multiple tag filters
1467
+ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1341
1468
 
1342
1469
  [Default Value] PATTERN
1343
1470
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -1367,11 +1494,19 @@ Reset last entry matching search filter, surround with slashes for regex (e.g. "
1367
1494
 
1368
1495
  ===== --tag TAG
1369
1496
 
1370
- Reset last entry matching tag. Wildcards allowed (*, ?).
1497
+ Reset last entry matching tag. Wildcards allowed (*, ?)
1371
1498
 
1372
1499
  [Default Value] None
1373
1500
 
1374
1501
 
1502
+ ===== --val QUERY
1503
+
1504
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1505
+
1506
+ [Default Value] None
1507
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
1508
+
1509
+
1375
1510
  ===== -i|--interactive
1376
1511
  Select from a menu of matching entries
1377
1512
 
@@ -1409,7 +1544,7 @@ Rotate entries older than date
1409
1544
 
1410
1545
  ===== --bool BOOLEAN
1411
1546
 
1412
- Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans.
1547
+ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans
1413
1548
 
1414
1549
  [Default Value] PATTERN
1415
1550
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -1447,9 +1582,17 @@ Search filter
1447
1582
 
1448
1583
  ===== --tag TAG
1449
1584
 
1450
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?). Added for compatibility with other commands.
1585
+ Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?). Added for compatibility with other commands
1586
+
1587
+ [Default Value] None
1588
+
1589
+
1590
+ ===== --val QUERY
1591
+
1592
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1451
1593
 
1452
1594
  [Default Value] None
1595
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
1453
1596
 
1454
1597
 
1455
1598
  ===== --not
@@ -1483,7 +1626,7 @@ selected entries.
1483
1626
 
1484
1627
  Search in the menu by typing:
1485
1628
 
1486
- sbtrkt fuzzy-match Items that match sbtrkt
1629
+ sbtrkt fuzzy-match Items that match s*b*t*r*k*t
1487
1630
 
1488
1631
  'wild exact-match (quoted) Items that include wild
1489
1632
 
@@ -1491,14 +1634,14 @@ sbtrkt fuzzy-match Items that match sbtrkt
1491
1634
  ===== Options
1492
1635
  ===== --after DATE_STRING
1493
1636
 
1494
- 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.
1637
+ 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
1495
1638
 
1496
1639
  [Default Value] None
1497
1640
 
1498
1641
 
1499
1642
  ===== --before DATE_STRING
1500
1643
 
1501
- 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.
1644
+ 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
1502
1645
 
1503
1646
  [Default Value] None
1504
1647
 
@@ -1537,7 +1680,7 @@ Output entries to format (csv|dayone|dayone-days|dayone-entries|doing|html|json|
1537
1680
  [Default Value] None
1538
1681
 
1539
1682
 
1540
- ===== -q|--query|--search QUERY
1683
+ ===== -q|--query QUERY
1541
1684
 
1542
1685
  Initial search query for filtering. Matching is fuzzy. For exact matching, start query with a single quote, e.g. `--query "'search"
1543
1686
 
@@ -1558,6 +1701,13 @@ Save selected entries to file using --output format
1558
1701
  [Default Value] None
1559
1702
 
1560
1703
 
1704
+ ===== --search QUERY
1705
+
1706
+ Select from entries matching search filter, surround with slashes for regex (e.g. "/query.*/"), start with single quote for exact match ("'query")
1707
+
1708
+ [Default Value] None
1709
+
1710
+
1561
1711
  ===== -t|--tag TAG
1562
1712
 
1563
1713
  Tag selected entries
@@ -1565,6 +1715,14 @@ Tag selected entries
1565
1715
  [Default Value] None
1566
1716
 
1567
1717
 
1718
+ ===== --val QUERY
1719
+
1720
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1721
+
1722
+ [Default Value] None
1723
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
1724
+
1725
+
1568
1726
  ===== -a|--archive
1569
1727
  Archive selected items
1570
1728
 
@@ -1601,12 +1759,12 @@ Add flag to selected item(s)
1601
1759
 
1602
1760
 
1603
1761
  ===== --force
1604
- Perform action without confirmation.
1762
+ Perform action without confirmation
1605
1763
 
1606
1764
 
1607
1765
 
1608
1766
  ===== --[no-]menu
1609
- 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.
1767
+ 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
1610
1768
 
1611
1769
 
1612
1770
 
@@ -1644,14 +1802,14 @@ Age (oldest|newest)
1644
1802
 
1645
1803
  ===== --after DATE_STRING
1646
1804
 
1647
- 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.
1805
+ 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
1648
1806
 
1649
1807
  [Default Value] None
1650
1808
 
1651
1809
 
1652
1810
  ===== -b|--bool BOOLEAN
1653
1811
 
1654
- Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans.
1812
+ Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans
1655
1813
 
1656
1814
  [Default Value] PATTERN
1657
1815
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -1659,7 +1817,7 @@ Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans.
1659
1817
 
1660
1818
  ===== --before DATE_STRING
1661
1819
 
1662
- 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.
1820
+ 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
1663
1821
 
1664
1822
  [Default Value] None
1665
1823
 
@@ -1716,7 +1874,7 @@ Search filter, surround with slashes for regex (/query/), start with single quot
1716
1874
 
1717
1875
  ===== --tag TAG
1718
1876
 
1719
- 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.
1877
+ 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
1720
1878
 
1721
1879
  [Default Value] None
1722
1880
 
@@ -1737,6 +1895,14 @@ Sort tags by (name|time)
1737
1895
  [Must Match] (?i-mx:^(?:name|time))
1738
1896
 
1739
1897
 
1898
+ ===== --val QUERY
1899
+
1900
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
1901
+
1902
+ [Default Value] None
1903
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
1904
+
1905
+
1740
1906
  ===== --[no-]duration
1741
1907
  Show elapsed time on entries without @done tag
1742
1908
 
@@ -1839,7 +2005,7 @@ Add (or remove) tags from the last entry, or from multiple entries
1839
2005
  ===== Options
1840
2006
  ===== --bool BOOLEAN
1841
2007
 
1842
- Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans.
2008
+ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans
1843
2009
 
1844
2010
  [Default Value] PATTERN
1845
2011
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -1890,6 +2056,21 @@ Tag the last X entries containing TAG.
1890
2056
  [Default Value] None
1891
2057
 
1892
2058
 
2059
+ ===== -v|--value VALUE
2060
+
2061
+ Include a value, e.g. @tag(value)
2062
+
2063
+ [Default Value] None
2064
+
2065
+
2066
+ ===== --val QUERY
2067
+
2068
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2069
+
2070
+ [Default Value] None
2071
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
2072
+
2073
+
1893
2074
  ===== -a|--autotag
1894
2075
  Autotag entries based on autotag configuration in ~/.config/doing/config.yml
1895
2076
 
@@ -1935,6 +2116,18 @@ Force exact search string matching (case sensitive)
1935
2116
 
1936
2117
 
1937
2118
 
2119
+ ==== Command: <tt>tag_dir TAG [TAG..]</tt>
2120
+ Set the default tags for the current directory
2121
+
2122
+ Adds default_tags to a .doingrc file in the current directory. Any entry created in this directory or its
2123
+ subdirectories will be tagged with the default tags. You can modify these any time using the `config set` commnand or
2124
+ manually editing the .doingrc file.
2125
+ ===== Options
2126
+ ===== -r|--remove
2127
+ Remove all default_tags from the local .doingrc
2128
+
2129
+
2130
+
1938
2131
  ==== Command: <tt>tags </tt>
1939
2132
  List all tags in the current Doing file
1940
2133
 
@@ -1942,7 +2135,7 @@ List all tags in the current Doing file
1942
2135
  ===== Options
1943
2136
  ===== --bool BOOLEAN
1944
2137
 
1945
- Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans.
2138
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1946
2139
 
1947
2140
  [Default Value] PATTERN
1948
2141
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -1989,11 +2182,19 @@ Sort by name or count
1989
2182
 
1990
2183
  ===== --tag TAG
1991
2184
 
1992
- Get tags for entries matching tags. Combine multiple tags with a comma. Wildcards allowed (*, ?).
2185
+ Get tags for entries matching tags. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1993
2186
 
1994
2187
  [Default Value] None
1995
2188
 
1996
2189
 
2190
+ ===== --val QUERY
2191
+
2192
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2193
+
2194
+ [Default Value] None
2195
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
2196
+
2197
+
1997
2198
  ===== -c|--[no-]counts
1998
2199
  Show count of occurrences
1999
2200
 
@@ -2138,7 +2339,7 @@ Select from recent backups
2138
2339
 
2139
2340
 
2140
2341
  ===== -r|--[no-]redo
2141
- Redo last undo. Note: you cannot undo a redo.
2342
+ Redo last undo. Note: you cannot undo a redo
2142
2343
 
2143
2344
 
2144
2345
 
@@ -2150,7 +2351,7 @@ Command line options override view configuration.
2150
2351
  ===== Options
2151
2352
  ===== --after DATE_STRING
2152
2353
 
2153
- 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.
2354
+ 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
2154
2355
 
2155
2356
  [Default Value] None
2156
2357
 
@@ -2164,7 +2365,7 @@ Age (oldest|newest)
2164
2365
 
2165
2366
  ===== -b|--bool BOOLEAN
2166
2367
 
2167
- Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans.
2368
+ Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans
2168
2369
 
2169
2370
  [Default Value] PATTERN
2170
2371
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -2172,7 +2373,7 @@ Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans.
2172
2373
 
2173
2374
  ===== --before DATE_STRING
2174
2375
 
2175
- 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.
2376
+ 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
2176
2377
 
2177
2378
  [Default Value] None
2178
2379
 
@@ -2228,7 +2429,7 @@ Search filter, surround with slashes for regex (/query/), start with single quot
2228
2429
 
2229
2430
  ===== --tag TAG
2230
2431
 
2231
- Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?).
2432
+ Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?)
2232
2433
 
2233
2434
  [Default Value] None
2234
2435
 
@@ -2249,6 +2450,14 @@ Sort tags by (name|time)
2249
2450
  [Must Match] (?i-mx:^(?:name|time)$)
2250
2451
 
2251
2452
 
2453
+ ===== --val QUERY
2454
+
2455
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
2456
+
2457
+ [Default Value] None
2458
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
2459
+
2460
+
2252
2461
  ===== --[no-]color
2253
2462
  Include colors in output
2254
2463