doing 2.1.1pre → 2.1.5pre

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/.yardoc/checksums +19 -15
  3. data/.yardoc/object_types +0 -0
  4. data/.yardoc/objects/root.dat +0 -0
  5. data/CHANGELOG.md +58 -8
  6. data/Gemfile.lock +25 -1
  7. data/README.md +1 -1
  8. data/Rakefile +2 -0
  9. data/bin/doing +447 -149
  10. data/doc/Array.html +63 -1
  11. data/doc/BooleanTermParser/Clause.html +293 -0
  12. data/doc/BooleanTermParser/Operator.html +172 -0
  13. data/doc/BooleanTermParser/Query.html +417 -0
  14. data/doc/BooleanTermParser/QueryParser.html +135 -0
  15. data/doc/BooleanTermParser/QueryTransformer.html +124 -0
  16. data/doc/BooleanTermParser.html +115 -0
  17. data/doc/Doing/CLIFormat.html +131 -0
  18. data/doc/Doing/Color.html +2 -2
  19. data/doc/Doing/Completion.html +1 -1
  20. data/doc/Doing/Configuration.html +168 -73
  21. data/doc/Doing/Errors/DoingNoTraceError.html +1 -1
  22. data/doc/Doing/Errors/DoingRuntimeError.html +1 -1
  23. data/doc/Doing/Errors/DoingStandardError.html +1 -1
  24. data/doc/Doing/Errors/EmptyInput.html +1 -1
  25. data/doc/Doing/Errors/NoResults.html +1 -1
  26. data/doc/Doing/Errors/PluginException.html +1 -1
  27. data/doc/Doing/Errors/UserCancelled.html +1 -1
  28. data/doc/Doing/Errors/WrongCommand.html +1 -1
  29. data/doc/Doing/Errors.html +1 -1
  30. data/doc/Doing/Hooks.html +1 -1
  31. data/doc/Doing/Item.html +177 -86
  32. data/doc/Doing/Items.html +36 -2
  33. data/doc/Doing/LogAdapter.html +70 -1
  34. data/doc/Doing/Note.html +5 -134
  35. data/doc/Doing/Pager.html +1 -1
  36. data/doc/Doing/Plugins.html +380 -40
  37. data/doc/Doing/Prompt.html +70 -18
  38. data/doc/Doing/Section.html +1 -1
  39. data/doc/Doing/TemplateString.html +713 -0
  40. data/doc/Doing/Util/Backup.html +686 -0
  41. data/doc/Doing/Util.html +16 -4
  42. data/doc/Doing/WWID.html +133 -73
  43. data/doc/Doing.html +4 -4
  44. data/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
  45. data/doc/GLI/Commands.html +1 -1
  46. data/doc/GLI.html +1 -1
  47. data/doc/Hash.html +1 -1
  48. data/doc/PhraseParser/Operator.html +172 -0
  49. data/doc/PhraseParser/PhraseClause.html +303 -0
  50. data/doc/PhraseParser/Query.html +495 -0
  51. data/doc/PhraseParser/QueryParser.html +136 -0
  52. data/doc/PhraseParser/QueryTransformer.html +124 -0
  53. data/doc/PhraseParser/TermClause.html +293 -0
  54. data/doc/PhraseParser.html +115 -0
  55. data/doc/Status.html +1 -1
  56. data/doc/String.html +319 -13
  57. data/doc/Symbol.html +35 -1
  58. data/doc/Time.html +70 -2
  59. data/doc/_index.html +132 -4
  60. data/doc/class_list.html +1 -1
  61. data/doc/file.README.html +2 -2
  62. data/doc/index.html +2 -2
  63. data/doc/method_list.html +648 -160
  64. data/doc/top-level-namespace.html +2 -2
  65. data/doing.gemspec +3 -0
  66. data/doing.rdoc +263 -82
  67. data/lib/completion/doing.bash +18 -18
  68. data/lib/doing/array.rb +9 -0
  69. data/lib/doing/boolean_term_parser.rb +86 -0
  70. data/lib/doing/configuration.rb +63 -24
  71. data/lib/doing/item.rb +112 -10
  72. data/lib/doing/items.rb +6 -0
  73. data/lib/doing/log_adapter.rb +28 -0
  74. data/lib/doing/note.rb +31 -30
  75. data/lib/doing/phrase_parser.rb +124 -0
  76. data/lib/doing/plugin_manager.rb +57 -13
  77. data/lib/doing/plugins/export/dayone_export.rb +209 -0
  78. data/lib/doing/plugins/export/template_export.rb +113 -81
  79. data/lib/doing/prompt.rb +26 -13
  80. data/lib/doing/string.rb +114 -29
  81. data/lib/doing/string_chronify.rb +5 -1
  82. data/lib/doing/symbol.rb +4 -0
  83. data/lib/doing/template_string.rb +197 -0
  84. data/lib/doing/time.rb +32 -0
  85. data/lib/doing/util.rb +6 -7
  86. data/lib/doing/util_backup.rb +287 -0
  87. data/lib/doing/version.rb +1 -1
  88. data/lib/doing/wwid.rb +152 -55
  89. data/lib/doing.rb +9 -0
  90. data/lib/templates/doing-dayone-entry.erb +6 -0
  91. data/lib/templates/doing-dayone.erb +5 -0
  92. metadata +85 -2
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.1pre
8
+ v2.1.5pre
9
9
 
10
10
  === Global Options
11
11
  === --config_file arg
@@ -90,14 +90,14 @@ 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
-
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
97
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans.
98
98
 
99
- [Default Value] AND
100
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
99
+ [Default Value] PATTERN
100
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
101
101
 
102
102
 
103
103
  ===== --case TYPE
@@ -139,13 +139,13 @@ 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.
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
147
  ===== -e|--editor
148
- Edit duplicated entry with emacs -nw before adding
148
+ Edit duplicated entry with vim before adding
149
149
 
150
150
 
151
151
 
@@ -182,10 +182,10 @@ Archive entries older than date
182
182
 
183
183
  ===== --bool BOOLEAN
184
184
 
185
- Tag boolean (AND|OR|NOT)
185
+ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans.
186
186
 
187
- [Default Value] AND
188
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
187
+ [Default Value] PATTERN
188
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
189
189
 
190
190
 
191
191
  ===== --case TYPE
@@ -220,7 +220,7 @@ Move entries to
220
220
 
221
221
  ===== --tag TAG
222
222
 
223
- Tag filter, combine multiple tags with a comma. Added for compatibility with other commands.
223
+ Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?). Added for compatibility with other commands.
224
224
 
225
225
  [Default Value] None
226
226
 
@@ -250,7 +250,7 @@ Autotag last entry or filtered entries
250
250
  Boolean (AND|OR|NOT) with which to combine multiple tag filters
251
251
 
252
252
  [Default Value] AND
253
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
253
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
254
254
 
255
255
 
256
256
  ===== -c|--count COUNT
@@ -307,10 +307,10 @@ Adds @done tag without datestamp so no elapsed time is recorded. Alias for `doin
307
307
  ===== Options
308
308
  ===== --bool BOOLEAN
309
309
 
310
- Boolean (AND|OR|NOT) with which to combine multiple tag filters
310
+ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans.
311
311
 
312
- [Default Value] AND
313
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
312
+ [Default Value] PATTERN
313
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
314
314
 
315
315
 
316
316
  ===== --case TYPE
@@ -337,7 +337,7 @@ Cancel the last X entries matching search filter, surround with slashes for rege
337
337
 
338
338
  ===== --tag TAG
339
339
 
340
- Cancel the last X entries containing TAG. Separate multiple tags with comma (--tag=tag1,tag2)
340
+ Cancel the last X entries containing TAG. Separate multiple tags with comma (--tag=tag1,tag2). Wildcards allowed (*, ?).
341
341
 
342
342
  [Default Value] None
343
343
 
@@ -367,6 +367,10 @@ Force exact search string matching (case sensitive)
367
367
 
368
368
 
369
369
 
370
+ ==== Command: <tt>changelog|changes </tt>
371
+ List recent changes in Doing
372
+
373
+ Display a formatted list of changes in recent versions, latest at the top
370
374
  ==== Command: <tt>choose </tt>
371
375
  Select a section to display from a menu
372
376
 
@@ -376,7 +380,8 @@ List available color variables for configuration templates and views
376
380
 
377
381
 
378
382
  ==== Command: <tt>completion </tt>
379
- Generate shell completion scripts
383
+ Generates the necessary scripts to add command line completion to various shells, so typing 'doing' and hitting
384
+ tab will offer completions of subcommands and their options.
380
385
 
381
386
 
382
387
  ===== Options
@@ -488,7 +493,9 @@ Update default config file, adding any missing keys
488
493
 
489
494
  [Default Command] edit
490
495
  ==== Command: <tt>done|did ENTRY</tt>
491
- Add a completed item with @done(date). No argument finishes last entry.
496
+ Use this command to add an entry after you've already finished it. It will be immediately marked as @done.
497
+ You can modify the start and end times of the entry using the --back, --took, and --at flags, making it an easy
498
+ way to add entries in post and maintain accurate (albeit manual) time tracking.
492
499
 
493
500
 
494
501
  ===== Options
@@ -541,7 +548,7 @@ Include date
541
548
 
542
549
 
543
550
  ===== -e|--editor
544
- Edit entry with emacs -nw (with no arguments, edits the last entry)
551
+ Edit entry with vim (with no arguments, edits the last entry)
545
552
 
546
553
 
547
554
 
@@ -576,10 +583,10 @@ Backdate completed date to date string [4pm|20m|2h|yesterday noon]
576
583
 
577
584
  ===== --bool BOOLEAN
578
585
 
579
- Boolean (AND|OR|NOT) with which to combine multiple tag filters
586
+ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans.
580
587
 
581
- [Default Value] AND
582
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
588
+ [Default Value] PATTERN
589
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
583
590
 
584
591
 
585
592
  ===== --case TYPE
@@ -614,7 +621,7 @@ Set the completed date to the start date plus XX[hmd]
614
621
  ===== --tag TAG
615
622
 
616
623
  Finish the last X entries containing TAG.
617
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool
624
+ Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
618
625
 
619
626
  [Default Value] None
620
627
 
@@ -666,7 +673,7 @@ Search for entries
666
673
 
667
674
  Search all sections (or limit to a single section) for entries matching text or regular expression. Normal strings are fuzzy matched.
668
675
 
669
- To search with regular expressions, single quote the string and surround with slashes: `doing search '/\bm.*?x\b/'`
676
+ To search with regular expressions, single quote the string and surround with slashes: `doing search '/m.*?x/'`
670
677
  ===== Options
671
678
  ===== --after DATE_STRING
672
679
 
@@ -704,7 +711,7 @@ Date range to show, or a single day to filter date on.
704
711
 
705
712
  ===== -o|--output FORMAT
706
713
 
707
- Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
714
+ Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|markdown|say|taskpaper|template|timeline|wiki)
708
715
 
709
716
  [Default Value] None
710
717
 
@@ -724,6 +731,11 @@ Sort tags by (name|time)
724
731
  [Must Match] (?i-mx:^(?:name|time)$)
725
732
 
726
733
 
734
+ ===== --[no-]duration
735
+ Show elapsed time on entries without @done tag
736
+
737
+
738
+
727
739
  ===== -i|--interactive
728
740
  Display an interactive menu of results to perform further operations
729
741
 
@@ -863,14 +875,15 @@ Force exact search string matching (case sensitive)
863
875
  ==== Command: <tt>last </tt>
864
876
  Show the last entry, optionally edit
865
877
 
866
-
878
+ Shows the last entry. Using --search and --tag filters, you can view/edit the last entry matching a filter,
879
+ allowing `doing last` to target historical entries.
867
880
  ===== Options
868
881
  ===== --bool BOOLEAN
869
882
 
870
- Tag boolean
883
+ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans.
871
884
 
872
- [Default Value] AND
873
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
885
+ [Default Value] PATTERN
886
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
874
887
 
875
888
 
876
889
  ===== --case TYPE
@@ -897,13 +910,18 @@ Search filter, surround with slashes for regex (/query/), start with single quot
897
910
 
898
911
  ===== --tag TAG
899
912
 
900
- Tag filter, combine multiple tags with a comma.
913
+ Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?).
901
914
 
902
915
  [Default Value] None
903
916
 
904
917
 
918
+ ===== --[no-]duration
919
+ Show elapsed time if entry is not tagged @done
920
+
921
+
922
+
905
923
  ===== -e|--editor
906
- Edit entry with emacs -nw
924
+ Edit entry with vim
907
925
 
908
926
 
909
927
 
@@ -937,7 +955,7 @@ Note
937
955
 
938
956
 
939
957
  ===== -e|--editor
940
- Edit entry with emacs -nw
958
+ Edit entry with vim
941
959
 
942
960
 
943
961
 
@@ -948,10 +966,10 @@ Mark last entry as flagged
948
966
  ===== Options
949
967
  ===== --bool BOOLEAN
950
968
 
951
- Boolean (AND|OR|NOT) with which to combine multiple tag filters
969
+ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans.
952
970
 
953
- [Default Value] AND
954
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
971
+ [Default Value] PATTERN
972
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
955
973
 
956
974
 
957
975
  ===== -c|--count COUNT
@@ -987,7 +1005,7 @@ Flag the last entry matching search filter, surround with slashes for regex (e.g
987
1005
  ===== --tag TAG
988
1006
 
989
1007
  Flag the last entry containing TAG.
990
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool
1008
+ Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
991
1009
 
992
1010
  [Default Value] None
993
1011
 
@@ -1030,7 +1048,10 @@ Force exact search string matching (case sensitive)
1030
1048
  ==== Command: <tt>meanwhile ENTRY</tt>
1031
1049
  Finish any running @meanwhile tasks and optionally create a new one
1032
1050
 
1033
-
1051
+ The @meanwhile tag allows you to have long-running entries that encompass smaller entries.
1052
+ This command makes it easy to start and stop these overarching entries. Just run `doing meanwhile Starting work on this
1053
+ big project` to start a @meanwhile entry, add other entries as you work on the project, then use `doing meanwhile` by
1054
+ itself to mark the entry as @done.
1034
1055
  ===== Options
1035
1056
  ===== -b|--back DATE_STRING
1036
1057
 
@@ -1059,7 +1080,7 @@ Archive previous @meanwhile entry
1059
1080
 
1060
1081
 
1061
1082
  ===== -e|--editor
1062
- Edit entry with emacs -nw
1083
+ Edit entry with vim
1063
1084
 
1064
1085
 
1065
1086
 
@@ -1074,10 +1095,10 @@ If -r is provided with no other arguments, the last note is removed.
1074
1095
  ===== Options
1075
1096
  ===== --bool BOOLEAN
1076
1097
 
1077
- Boolean (AND|OR|NOT) with which to combine multiple tag filters
1098
+ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans.
1078
1099
 
1079
- [Default Value] AND
1080
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
1100
+ [Default Value] PATTERN
1101
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1081
1102
 
1082
1103
 
1083
1104
  ===== --case TYPE
@@ -1104,13 +1125,13 @@ Add/remove note from last entry matching search filter, surround with slashes fo
1104
1125
 
1105
1126
  ===== --tag TAG
1106
1127
 
1107
- Add/remove note from last entry matching tag
1128
+ Add/remove note from last entry matching tag. Wildcards allowed (*, ?).
1108
1129
 
1109
1130
  [Default Value] None
1110
1131
 
1111
1132
 
1112
1133
  ===== -e|--editor
1113
- Edit entry with emacs -nw
1134
+ Edit entry with vim
1114
1135
 
1115
1136
 
1116
1137
 
@@ -1141,7 +1162,7 @@ Record what you're starting now, or backdate the start time using natural langua
1141
1162
 
1142
1163
  A parenthetical at the end of the entry will be converted to a note.
1143
1164
 
1144
- Run with no argument to create a new entry using emacs -nw.
1165
+ Run with no argument to create a new entry using vim.
1145
1166
  ===== Options
1146
1167
  ===== -b|--back|--started DATE_STRING
1147
1168
 
@@ -1165,7 +1186,7 @@ Section
1165
1186
 
1166
1187
 
1167
1188
  ===== -e|--editor
1168
- Edit entry with emacs -nw
1189
+ Edit entry with vim
1169
1190
 
1170
1191
 
1171
1192
 
@@ -1183,7 +1204,7 @@ it will create a range.
1183
1204
  ===== Options
1184
1205
  ===== -o|--output FORMAT
1185
1206
 
1186
- Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
1207
+ Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|markdown|say|taskpaper|template|timeline|wiki)
1187
1208
 
1188
1209
  [Default Value] None
1189
1210
 
@@ -1203,6 +1224,11 @@ Sort tags by (name|time)
1203
1224
  [Must Match] (?i-mx:^(?:name|time)$)
1204
1225
 
1205
1226
 
1227
+ ===== --[no-]duration
1228
+ Show elapsed time on entries without @done tag
1229
+
1230
+
1231
+
1206
1232
  ===== -t|--[no-]times
1207
1233
  Show time intervals on @done tasks
1208
1234
 
@@ -1216,7 +1242,8 @@ Show time totals at the end of output
1216
1242
  ==== Command: <tt>open </tt>
1217
1243
  Open the "doing" file in an editor
1218
1244
 
1219
- `doing open` defaults to using the editor_app setting in /Users/ttscoff/.config/doing/config.yml (not set).
1245
+ `doing open` defaults to using the editors->doing_file setting
1246
+ in /Users/ttscoff/.config/doing/config.yml (TaskPaper).
1220
1247
  ===== Options
1221
1248
  ===== -a|--app APP_NAME
1222
1249
 
@@ -1281,6 +1308,11 @@ Sort tags by (name|time)
1281
1308
  [Must Match] (?i-mx:^(?:name|time)$)
1282
1309
 
1283
1310
 
1311
+ ===== --[no-]duration
1312
+ Show elapsed time on entries without @done tag
1313
+
1314
+
1315
+
1284
1316
  ===== -i|--interactive
1285
1317
  Select from a menu of matching entries to perform additional operations
1286
1318
 
@@ -1296,17 +1328,19 @@ Show intervals with totals at the end of output
1296
1328
 
1297
1329
 
1298
1330
 
1299
- ==== Command: <tt>reset|begin </tt>
1331
+ ==== Command: <tt>reset|begin DATE_STRING</tt>
1300
1332
  Reset the start time of an entry
1301
1333
 
1302
-
1334
+ Update the start time of the last entry or the last entry matching a tag/search filter.
1335
+ If no argument is provided, the start time will be reset to the current time.
1336
+ If a date string is provided as an argument, the start time will be set to the parsed result.
1303
1337
  ===== Options
1304
1338
  ===== --bool BOOLEAN
1305
1339
 
1306
1340
  Boolean (AND|OR|NOT) with which to combine multiple tag filters
1307
1341
 
1308
- [Default Value] AND
1309
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
1342
+ [Default Value] PATTERN
1343
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1310
1344
 
1311
1345
 
1312
1346
  ===== --case TYPE
@@ -1333,7 +1367,7 @@ Reset last entry matching search filter, surround with slashes for regex (e.g. "
1333
1367
 
1334
1368
  ===== --tag TAG
1335
1369
 
1336
- Reset last entry matching tag
1370
+ Reset last entry matching tag. Wildcards allowed (*, ?).
1337
1371
 
1338
1372
  [Default Value] None
1339
1373
 
@@ -1361,7 +1395,9 @@ Force exact search string matching (case sensitive)
1361
1395
  ==== Command: <tt>rotate </tt>
1362
1396
  Move entries to archive file
1363
1397
 
1364
-
1398
+ As your doing file grows, commands can get slow. Given that your historical data (and your archive section)
1399
+ probably aren't providing any useful insights a year later, use this command to "rotate" old entries out to an archive
1400
+ file. You'll still have access to all historical data, but it won't be slowing down daily operation.
1365
1401
  ===== Options
1366
1402
  ===== --before DATE_STRING
1367
1403
 
@@ -1373,10 +1409,10 @@ Rotate entries older than date
1373
1409
 
1374
1410
  ===== --bool BOOLEAN
1375
1411
 
1376
- Tag boolean (AND|OR|NOT)
1412
+ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans.
1377
1413
 
1378
- [Default Value] AND
1379
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
1414
+ [Default Value] PATTERN
1415
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1380
1416
 
1381
1417
 
1382
1418
  ===== --case TYPE
@@ -1411,7 +1447,7 @@ Search filter
1411
1447
 
1412
1448
  ===== --tag TAG
1413
1449
 
1414
- Tag filter, combine multiple tags with a comma. Added for compatibility with other commands.
1450
+ Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?). Added for compatibility with other commands.
1415
1451
 
1416
1452
  [Default Value] None
1417
1453
 
@@ -1444,6 +1480,14 @@ List all entries and select with typeahead fuzzy matching.
1444
1480
  Multiple selections are allowed, hit tab to add the highlighted entry to the
1445
1481
  selection, and use ctrl-a to select all visible items. Return processes the
1446
1482
  selected entries.
1483
+
1484
+ Search in the menu by typing:
1485
+
1486
+ sbtrkt fuzzy-match Items that match sbtrkt
1487
+
1488
+ 'wild exact-match (quoted) Items that include wild
1489
+
1490
+ !fire inverse-exact-match Items that do not include fire
1447
1491
  ===== Options
1448
1492
  ===== --after DATE_STRING
1449
1493
 
@@ -1488,7 +1532,7 @@ Move selected items to section
1488
1532
 
1489
1533
  ===== -o|--output FORMAT
1490
1534
 
1491
- Output entries to format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
1535
+ Output entries to format (csv|dayone|dayone-days|dayone-entries|doing|html|markdown|say|taskpaper|template|timeline|wiki)
1492
1536
 
1493
1537
  [Default Value] None
1494
1538
 
@@ -1585,7 +1629,11 @@ Force exact search string matching (case sensitive)
1585
1629
  List all entries
1586
1630
 
1587
1631
  The argument can be a section name, @tag(s) or both.
1588
- "pick" or "choose" as an argument will offer a section menu.
1632
+ "pick" or "choose" as an argument will offer a section menu. Run with `--menu` to get a menu of available tags.
1633
+
1634
+ Show tags by passing @tagname arguments. Multiple tags can be combined, and you can specify the boolean used to
1635
+ combine them with `--bool (AND|OR|NOT)`. You can also use @+tagname to require a tag to match, or @-tagname to ignore
1636
+ entries containing tagname. +/- operators require `--bool PATTERN` (which is the default).
1589
1637
  ===== Options
1590
1638
  ===== -a|--age AGE
1591
1639
 
@@ -1603,10 +1651,10 @@ Show entries newer than date. If this is only a time (8am, 1:30pm, 15:00), all d
1603
1651
 
1604
1652
  ===== -b|--bool BOOLEAN
1605
1653
 
1606
- Tag boolean (AND,OR,NOT)
1654
+ Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans.
1607
1655
 
1608
- [Default Value] OR
1609
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
1656
+ [Default Value] PATTERN
1657
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1610
1658
 
1611
1659
 
1612
1660
  ===== --before DATE_STRING
@@ -1621,6 +1669,7 @@ Show entries older than date. If this is only a time (8am, 1:30pm, 15:00), all d
1621
1669
  Max count to show
1622
1670
 
1623
1671
  [Default Value] 0
1672
+ [Must Match] (?-mix:^\d+$)
1624
1673
 
1625
1674
 
1626
1675
  ===== --case TYPE
@@ -1645,7 +1694,7 @@ Date range to show, or a single day to filter date on.
1645
1694
 
1646
1695
  ===== -o|--output FORMAT
1647
1696
 
1648
- Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
1697
+ Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|markdown|say|taskpaper|template|timeline|wiki)
1649
1698
 
1650
1699
  [Default Value] None
1651
1700
 
@@ -1667,7 +1716,7 @@ Search filter, surround with slashes for regex (/query/), start with single quot
1667
1716
 
1668
1717
  ===== --tag TAG
1669
1718
 
1670
- Tag filter, combine multiple tags with a comma. Added for compatibility with other commands.
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.
1671
1720
 
1672
1721
  [Default Value] None
1673
1722
 
@@ -1688,11 +1737,21 @@ Sort tags by (name|time)
1688
1737
  [Must Match] (?i-mx:^(?:name|time))
1689
1738
 
1690
1739
 
1740
+ ===== --[no-]duration
1741
+ Show elapsed time on entries without @done tag
1742
+
1743
+
1744
+
1691
1745
  ===== -i|--interactive
1692
1746
  Select from a menu of matching entries to perform additional operations
1693
1747
 
1694
1748
 
1695
1749
 
1750
+ ===== -m|--menu
1751
+ Select section or tag to display from a menu
1752
+
1753
+
1754
+
1696
1755
  ===== --not
1697
1756
  Show items that *don't* match search/tag/date filters
1698
1757
 
@@ -1726,7 +1785,7 @@ and "2d" would be interpreted as "two days ago."
1726
1785
  ===== Options
1727
1786
  ===== -o|--output FORMAT
1728
1787
 
1729
- Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
1788
+ Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|markdown|say|taskpaper|template|timeline|wiki)
1730
1789
 
1731
1790
  [Default Value] None
1732
1791
 
@@ -1746,6 +1805,11 @@ Sort tags by (name|time)
1746
1805
  [Must Match] (?i-mx:^(?:name|time)$)
1747
1806
 
1748
1807
 
1808
+ ===== --[no-]duration
1809
+ Show elapsed time on entries without @done tag
1810
+
1811
+
1812
+
1749
1813
  ===== -t|--[no-]times
1750
1814
  Show time intervals on @done tasks
1751
1815
 
@@ -1775,10 +1839,10 @@ Add (or remove) tags from the last entry, or from multiple entries
1775
1839
  ===== Options
1776
1840
  ===== --bool BOOLEAN
1777
1841
 
1778
- Boolean (AND|OR|NOT) with which to combine multiple tag filters
1842
+ Boolean (AND|OR|NOT) with which to combine multiple tag filters. Use PATTERN to parse + and - as booleans.
1779
1843
 
1780
- [Default Value] AND
1781
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
1844
+ [Default Value] PATTERN
1845
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1782
1846
 
1783
1847
 
1784
1848
  ===== -c|--count COUNT
@@ -1821,7 +1885,7 @@ Tag entries matching search filter, surround with slashes for regex (e.g. "/quer
1821
1885
  ===== --tag TAG
1822
1886
 
1823
1887
  Tag the last X entries containing TAG.
1824
- Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool
1888
+ Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool. Wildcards allowed (*, ?).
1825
1889
 
1826
1890
  [Default Value] None
1827
1891
 
@@ -1871,6 +1935,85 @@ Force exact search string matching (case sensitive)
1871
1935
 
1872
1936
 
1873
1937
 
1938
+ ==== Command: <tt>tags </tt>
1939
+ List all tags in the current Doing file
1940
+
1941
+
1942
+ ===== Options
1943
+ ===== --bool BOOLEAN
1944
+
1945
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans.
1946
+
1947
+ [Default Value] PATTERN
1948
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1949
+
1950
+
1951
+ ===== --case TYPE
1952
+
1953
+ Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1954
+
1955
+ [Default Value] smart
1956
+ [Must Match] (?-mix:^[csi])
1957
+
1958
+
1959
+ ===== -o|--order ORDER
1960
+
1961
+ Sort order (asc/desc)
1962
+
1963
+ [Default Value] asc
1964
+ [Must Match] (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
1965
+
1966
+
1967
+ ===== -s|--section SECTION_NAME
1968
+
1969
+ Section
1970
+
1971
+ [Default Value] All
1972
+
1973
+
1974
+ ===== --search QUERY
1975
+
1976
+ Get tags for items matching search. Surround with
1977
+ slashes for regex (e.g. "/query/"), start with a single quote for exact match ("'query").
1978
+
1979
+ [Default Value] None
1980
+
1981
+
1982
+ ===== --sort SORT_ORDER
1983
+
1984
+ Sort by name or count
1985
+
1986
+ [Default Value] name
1987
+ [Must Match] (?-mix:^(?:n(?:ame)?|c(?:ount)?)$)
1988
+
1989
+
1990
+ ===== --tag TAG
1991
+
1992
+ Get tags for entries matching tags. Combine multiple tags with a comma. Wildcards allowed (*, ?).
1993
+
1994
+ [Default Value] None
1995
+
1996
+
1997
+ ===== -c|--[no-]counts
1998
+ Show count of occurrences
1999
+
2000
+
2001
+
2002
+ ===== -i|--interactive
2003
+ Select items to scan from a menu of matching entries
2004
+
2005
+
2006
+
2007
+ ===== --not
2008
+ Get tags from items that *don't* match search/tag filters
2009
+
2010
+
2011
+
2012
+ ===== -x|--exact
2013
+ Force exact search string matching (case sensitive)
2014
+
2015
+
2016
+
1874
2017
  ==== Command: <tt>template TYPE</tt>
1875
2018
  Output HTML, CSS, and Markdown (ERB) templates for customization
1876
2019
 
@@ -1894,7 +2037,8 @@ This command is coming from /Users/ttscoff/.config/doing/commands/test.rb
1894
2037
  ==== Command: <tt>today </tt>
1895
2038
  List entries from today
1896
2039
 
1897
-
2040
+ List entries from the current day. Use --before, --after, and
2041
+ --from to specify time ranges.
1898
2042
  ===== Options
1899
2043
  ===== --after TIME_STRING
1900
2044
 
@@ -1919,7 +2063,7 @@ Time range to show `doing today --from "12pm to 4pm"`
1919
2063
 
1920
2064
  ===== -o|--output FORMAT
1921
2065
 
1922
- Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
2066
+ Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|markdown|say|taskpaper|template|timeline|wiki)
1923
2067
 
1924
2068
  [Default Value] None
1925
2069
 
@@ -1939,6 +2083,11 @@ Sort tags by (name|time)
1939
2083
  [Must Match] (?i-mx:^(?:name|time)$)
1940
2084
 
1941
2085
 
2086
+ ===== --[no-]duration
2087
+ Show elapsed time on entries without @done tag
2088
+
2089
+
2090
+
1942
2091
  ===== -t|--[no-]times
1943
2092
  Show time intervals on @done tasks
1944
2093
 
@@ -1949,10 +2098,13 @@ Show time totals at the end of output
1949
2098
 
1950
2099
 
1951
2100
 
1952
- ==== Command: <tt>undo </tt>
1953
- Undo the last change to the Doing file
2101
+ ==== Command: <tt>undo COUNT</tt>
2102
+ Undo the last X changes to the Doing file
1954
2103
 
2104
+ Reverts the last X commands that altered the doing file.
2105
+ All changes performed by a single command are undone at once.
1955
2106
 
2107
+ Specify a number to jump back multiple revisions, or use --select for an interactive menu.
1956
2108
  ===== Options
1957
2109
  ===== -f|--file PATH
1958
2110
 
@@ -1961,10 +2113,28 @@ Specify alternate doing file
1961
2113
  [Default Value] None
1962
2114
 
1963
2115
 
2116
+ ===== -p|--prune COUNT
2117
+
2118
+ Remove old backups, retaining X files
2119
+
2120
+ [Default Value] None
2121
+
2122
+
2123
+ ===== -i|--interactive
2124
+ Select from recent backups
2125
+
2126
+
2127
+
2128
+ ===== -r|--[no-]redo
2129
+ Redo last undo. Note: you cannot undo a redo.
2130
+
2131
+
2132
+
1964
2133
  ==== Command: <tt>view VIEW_NAME</tt>
1965
2134
  Display a user-created view
1966
2135
 
1967
- Command line options override view configuration
2136
+ Views are defined in your configuration (use `doing config` to edit).
2137
+ Command line options override view configuration.
1968
2138
  ===== Options
1969
2139
  ===== --after DATE_STRING
1970
2140
 
@@ -1975,10 +2145,10 @@ View entries newer than date. If this is only a time (8am, 1:30pm, 15:00), all d
1975
2145
 
1976
2146
  ===== -b|--bool BOOLEAN
1977
2147
 
1978
- Tag boolean (AND,OR,NOT)
2148
+ Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans.
1979
2149
 
1980
- [Default Value] OR
1981
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
2150
+ [Default Value] PATTERN
2151
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1982
2152
 
1983
2153
 
1984
2154
  ===== --before DATE_STRING
@@ -2018,7 +2188,7 @@ Date range to show, or a single day to filter date on.
2018
2188
 
2019
2189
  ===== -o|--output FORMAT
2020
2190
 
2021
- Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
2191
+ Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|markdown|say|taskpaper|template|timeline|wiki)
2022
2192
 
2023
2193
  [Default Value] None
2024
2194
 
@@ -2039,7 +2209,7 @@ Search filter, surround with slashes for regex (/query/), start with single quot
2039
2209
 
2040
2210
  ===== --tag TAG
2041
2211
 
2042
- Tag filter, combine multiple tags with a comma.
2212
+ Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?).
2043
2213
 
2044
2214
  [Default Value] None
2045
2215
 
@@ -2065,6 +2235,11 @@ Include colors in output
2065
2235
 
2066
2236
 
2067
2237
 
2238
+ ===== --[no-]duration
2239
+ Show elapsed time on entries without @done tag
2240
+
2241
+
2242
+
2068
2243
  ===== -i|--interactive
2069
2244
  Select from a menu of matching entries to perform additional operations
2070
2245
 
@@ -2122,7 +2297,7 @@ Include entries newer than date
2122
2297
  Tag boolean (AND,OR,NOT)
2123
2298
 
2124
2299
  [Default Value] OR
2125
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
2300
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2126
2301
 
2127
2302
 
2128
2303
  ===== --before DATE_STRING
@@ -2168,7 +2343,8 @@ Only show items with recorded time intervals
2168
2343
 
2169
2344
 
2170
2345
  ==== Command: <tt>yesterday </tt>
2171
- List entries from yesterday
2346
+ Show only entries with start times within the previous 24 hour period. Use --before, --after, and --from to limit to
2347
+ time spans within the day.
2172
2348
 
2173
2349
 
2174
2350
  ===== Options
@@ -2195,7 +2371,7 @@ Time range to show, e.g. `doing yesterday --from "1am to 8am"`
2195
2371
 
2196
2372
  ===== -o|--output FORMAT
2197
2373
 
2198
- Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
2374
+ Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|markdown|say|taskpaper|template|timeline|wiki)
2199
2375
 
2200
2376
  [Default Value] None
2201
2377
 
@@ -2223,6 +2399,11 @@ Sort tags by (name|time)
2223
2399
  [Must Match] (?i-mx:^(?:name|time)$)
2224
2400
 
2225
2401
 
2402
+ ===== --[no-]duration
2403
+ Show elapsed time on entries without @done tag
2404
+
2405
+
2406
+
2226
2407
  ===== -t|--[no-]times
2227
2408
  Show time intervals on @done tasks
2228
2409