doing 2.1.2pre → 2.1.6pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) 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/.yardopts +1 -1
  6. data/CHANGELOG.md +62 -14
  7. data/Gemfile.lock +25 -1
  8. data/README.md +5 -1
  9. data/Rakefile +2 -0
  10. data/bin/doing +429 -142
  11. data/docs/_config.yml +1 -0
  12. data/{doc → docs/doc}/Array.html +63 -1
  13. data/docs/doc/BooleanTermParser/Clause.html +293 -0
  14. data/docs/doc/BooleanTermParser/Operator.html +172 -0
  15. data/docs/doc/BooleanTermParser/Query.html +417 -0
  16. data/docs/doc/BooleanTermParser/QueryParser.html +135 -0
  17. data/docs/doc/BooleanTermParser/QueryTransformer.html +124 -0
  18. data/docs/doc/BooleanTermParser.html +115 -0
  19. data/docs/doc/Doing/CLIFormat.html +131 -0
  20. data/{doc → docs/doc}/Doing/Color.html +2 -2
  21. data/{doc → docs/doc}/Doing/Completion.html +1 -1
  22. data/{doc → docs/doc}/Doing/Configuration.html +163 -69
  23. data/{doc → docs/doc}/Doing/Content.html +0 -0
  24. data/{doc → docs/doc}/Doing/Errors/DoingNoTraceError.html +1 -1
  25. data/{doc → docs/doc}/Doing/Errors/DoingRuntimeError.html +1 -1
  26. data/{doc → docs/doc}/Doing/Errors/DoingStandardError.html +1 -1
  27. data/{doc → docs/doc}/Doing/Errors/EmptyInput.html +1 -1
  28. data/{doc → docs/doc}/Doing/Errors/NoResults.html +1 -1
  29. data/{doc → docs/doc}/Doing/Errors/PluginException.html +1 -1
  30. data/{doc → docs/doc}/Doing/Errors/UserCancelled.html +1 -1
  31. data/{doc → docs/doc}/Doing/Errors/WrongCommand.html +1 -1
  32. data/{doc → docs/doc}/Doing/Errors.html +1 -1
  33. data/{doc → docs/doc}/Doing/Hooks.html +1 -1
  34. data/{doc → docs/doc}/Doing/Item.html +135 -89
  35. data/{doc → docs/doc}/Doing/Items.html +36 -2
  36. data/{doc → docs/doc}/Doing/LogAdapter.html +70 -1
  37. data/{doc → docs/doc}/Doing/Note.html +5 -134
  38. data/{doc → docs/doc}/Doing/Pager.html +1 -1
  39. data/{doc → docs/doc}/Doing/Plugins.html +431 -35
  40. data/{doc → docs/doc}/Doing/Prompt.html +70 -18
  41. data/{doc → docs/doc}/Doing/Section.html +1 -1
  42. data/docs/doc/Doing/TemplateString.html +713 -0
  43. data/docs/doc/Doing/Util/Backup.html +686 -0
  44. data/{doc → docs/doc}/Doing/Util.html +16 -4
  45. data/{doc → docs/doc}/Doing/WWID.html +133 -73
  46. data/{doc → docs/doc}/Doing/WWIDFile.html +0 -0
  47. data/{doc → docs/doc}/Doing.html +4 -4
  48. data/{doc → docs/doc}/GLI/Commands/MarkdownDocumentListener.html +1 -1
  49. data/{doc → docs/doc}/GLI/Commands.html +1 -1
  50. data/{doc → docs/doc}/GLI.html +1 -1
  51. data/{doc → docs/doc}/Hash.html +1 -1
  52. data/docs/doc/PhraseParser/Operator.html +172 -0
  53. data/docs/doc/PhraseParser/PhraseClause.html +303 -0
  54. data/docs/doc/PhraseParser/Query.html +495 -0
  55. data/docs/doc/PhraseParser/QueryParser.html +136 -0
  56. data/docs/doc/PhraseParser/QueryTransformer.html +124 -0
  57. data/docs/doc/PhraseParser/TermClause.html +293 -0
  58. data/docs/doc/PhraseParser.html +115 -0
  59. data/{doc → docs/doc}/Status.html +1 -1
  60. data/{doc → docs/doc}/String.html +319 -13
  61. data/{doc → docs/doc}/Symbol.html +35 -1
  62. data/{doc → docs/doc}/Time.html +70 -2
  63. data/{doc → docs/doc}/_index.html +132 -4
  64. data/docs/doc/class_list.html +51 -0
  65. data/{doc → docs/doc}/css/common.css +0 -0
  66. data/{doc → docs/doc}/css/full_list.css +0 -0
  67. data/{doc → docs/doc}/css/style.css +0 -0
  68. data/{doc → docs/doc}/file.README.html +6 -2
  69. data/{doc → docs/doc}/file_list.html +0 -0
  70. data/{doc → docs/doc}/frames.html +0 -0
  71. data/{doc → docs/doc}/index.html +6 -2
  72. data/{doc → docs/doc}/js/app.js +0 -0
  73. data/{doc → docs/doc}/js/full_list.js +0 -0
  74. data/{doc → docs/doc}/js/jquery.js +0 -0
  75. data/{doc → docs/doc}/method_list.html +684 -196
  76. data/{doc → docs/doc}/top-level-namespace.html +2 -2
  77. data/docs/index.md +60 -0
  78. data/doing.gemspec +3 -0
  79. data/doing.rdoc +222 -74
  80. data/example_plugin.rb +3 -1
  81. data/lib/completion/_doing.zsh +53 -41
  82. data/lib/completion/doing.bash +17 -6
  83. data/lib/completion/doing.fish +321 -2
  84. data/lib/doing/array.rb +9 -0
  85. data/lib/doing/boolean_term_parser.rb +86 -0
  86. data/lib/doing/completion/fish_completion.rb +46 -3
  87. data/lib/doing/completion/zsh_completion.rb +1 -1
  88. data/lib/doing/configuration.rb +48 -21
  89. data/lib/doing/item.rb +105 -10
  90. data/lib/doing/items.rb +6 -0
  91. data/lib/doing/log_adapter.rb +28 -0
  92. data/lib/doing/note.rb +31 -30
  93. data/lib/doing/phrase_parser.rb +124 -0
  94. data/lib/doing/plugin_manager.rb +84 -21
  95. data/lib/doing/plugins/export/dayone_export.rb +209 -0
  96. data/lib/doing/plugins/export/html_export.rb +2 -2
  97. data/lib/doing/plugins/export/json_export.rb +1 -0
  98. data/lib/doing/plugins/export/markdown_export.rb +1 -1
  99. data/lib/doing/plugins/export/template_export.rb +94 -86
  100. data/lib/doing/prompt.rb +26 -15
  101. data/lib/doing/string.rb +114 -29
  102. data/lib/doing/string_chronify.rb +5 -1
  103. data/lib/doing/symbol.rb +4 -0
  104. data/lib/doing/template_string.rb +197 -0
  105. data/lib/doing/time.rb +32 -0
  106. data/lib/doing/util.rb +6 -7
  107. data/lib/doing/util_backup.rb +287 -0
  108. data/lib/doing/version.rb +1 -1
  109. data/lib/doing/wwid.rb +105 -41
  110. data/lib/doing.rb +9 -0
  111. data/lib/examples/plugins/say_export.rb +1 -1
  112. data/lib/examples/plugins/wiki_export/wiki_export.rb +3 -3
  113. data/lib/templates/doing-dayone-entry.erb +6 -0
  114. data/lib/templates/doing-dayone.erb +5 -0
  115. metadata +136 -51
  116. data/doc/class_list.html +0 -51
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.2pre
8
+ v2.1.6pre
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,7 +139,7 @@ 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
 
@@ -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
 
@@ -378,7 +382,8 @@ List available color variables for configuration templates and views
378
382
  ==== Command: <tt>completion </tt>
379
383
  Generate shell completion scripts
380
384
 
381
-
385
+ Generates the necessary scripts to add command line completion to various shells, so typing 'doing' and hitting
386
+ tab will offer completions of subcommands and their options.
382
387
  ===== Options
383
388
  ===== -f|--file PATH
384
389
 
@@ -490,7 +495,9 @@ Update default config file, adding any missing keys
490
495
  ==== Command: <tt>done|did ENTRY</tt>
491
496
  Add a completed item with @done(date). No argument finishes last entry.
492
497
 
493
-
498
+ Use this command to add an entry after you've already finished it. It will be immediately marked as @done.
499
+ You can modify the start and end times of the entry using the --back, --took, and --at flags, making it an easy
500
+ way to add entries in post and maintain accurate (albeit manual) time tracking.
494
501
  ===== Options
495
502
  ===== --at DATE_STRING
496
503
 
@@ -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|json|markdown|say|taskpaper|template|timeline|wiki)
708
715
 
709
716
  [Default Value] None
710
717
 
@@ -868,14 +875,15 @@ Force exact search string matching (case sensitive)
868
875
  ==== Command: <tt>last </tt>
869
876
  Show the last entry, optionally edit
870
877
 
871
-
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.
872
880
  ===== Options
873
881
  ===== --bool BOOLEAN
874
882
 
875
- Tag boolean
883
+ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans.
876
884
 
877
- [Default Value] AND
878
- [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)?)?)$)
879
887
 
880
888
 
881
889
  ===== --case TYPE
@@ -902,7 +910,7 @@ Search filter, surround with slashes for regex (/query/), start with single quot
902
910
 
903
911
  ===== --tag TAG
904
912
 
905
- Tag filter, combine multiple tags with a comma.
913
+ Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?).
906
914
 
907
915
  [Default Value] None
908
916
 
@@ -958,10 +966,10 @@ Mark last entry as flagged
958
966
  ===== Options
959
967
  ===== --bool BOOLEAN
960
968
 
961
- 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.
962
970
 
963
- [Default Value] AND
964
- [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)?)?)$)
965
973
 
966
974
 
967
975
  ===== -c|--count COUNT
@@ -997,7 +1005,7 @@ Flag the last entry matching search filter, surround with slashes for regex (e.g
997
1005
  ===== --tag TAG
998
1006
 
999
1007
  Flag the last entry containing TAG.
1000
- 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 (*, ?).
1001
1009
 
1002
1010
  [Default Value] None
1003
1011
 
@@ -1040,7 +1048,10 @@ Force exact search string matching (case sensitive)
1040
1048
  ==== Command: <tt>meanwhile ENTRY</tt>
1041
1049
  Finish any running @meanwhile tasks and optionally create a new one
1042
1050
 
1043
-
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.
1044
1055
  ===== Options
1045
1056
  ===== -b|--back DATE_STRING
1046
1057
 
@@ -1084,10 +1095,10 @@ If -r is provided with no other arguments, the last note is removed.
1084
1095
  ===== Options
1085
1096
  ===== --bool BOOLEAN
1086
1097
 
1087
- 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.
1088
1099
 
1089
- [Default Value] AND
1090
- [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)?)?)$)
1091
1102
 
1092
1103
 
1093
1104
  ===== --case TYPE
@@ -1114,7 +1125,7 @@ Add/remove note from last entry matching search filter, surround with slashes fo
1114
1125
 
1115
1126
  ===== --tag TAG
1116
1127
 
1117
- Add/remove note from last entry matching tag
1128
+ Add/remove note from last entry matching tag. Wildcards allowed (*, ?).
1118
1129
 
1119
1130
  [Default Value] None
1120
1131
 
@@ -1193,7 +1204,7 @@ it will create a range.
1193
1204
  ===== Options
1194
1205
  ===== -o|--output FORMAT
1195
1206
 
1196
- 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|json|markdown|say|taskpaper|template|timeline|wiki)
1197
1208
 
1198
1209
  [Default Value] None
1199
1210
 
@@ -1231,7 +1242,8 @@ Show time totals at the end of output
1231
1242
  ==== Command: <tt>open </tt>
1232
1243
  Open the "doing" file in an editor
1233
1244
 
1234
- `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).
1235
1247
  ===== Options
1236
1248
  ===== -a|--app APP_NAME
1237
1249
 
@@ -1316,17 +1328,19 @@ Show intervals with totals at the end of output
1316
1328
 
1317
1329
 
1318
1330
 
1319
- ==== Command: <tt>reset|begin </tt>
1331
+ ==== Command: <tt>reset|begin DATE_STRING</tt>
1320
1332
  Reset the start time of an entry
1321
1333
 
1322
-
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.
1323
1337
  ===== Options
1324
1338
  ===== --bool BOOLEAN
1325
1339
 
1326
1340
  Boolean (AND|OR|NOT) with which to combine multiple tag filters
1327
1341
 
1328
- [Default Value] AND
1329
- [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)?)?)$)
1330
1344
 
1331
1345
 
1332
1346
  ===== --case TYPE
@@ -1353,7 +1367,7 @@ Reset last entry matching search filter, surround with slashes for regex (e.g. "
1353
1367
 
1354
1368
  ===== --tag TAG
1355
1369
 
1356
- Reset last entry matching tag
1370
+ Reset last entry matching tag. Wildcards allowed (*, ?).
1357
1371
 
1358
1372
  [Default Value] None
1359
1373
 
@@ -1381,7 +1395,9 @@ Force exact search string matching (case sensitive)
1381
1395
  ==== Command: <tt>rotate </tt>
1382
1396
  Move entries to archive file
1383
1397
 
1384
-
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.
1385
1401
  ===== Options
1386
1402
  ===== --before DATE_STRING
1387
1403
 
@@ -1393,10 +1409,10 @@ Rotate entries older than date
1393
1409
 
1394
1410
  ===== --bool BOOLEAN
1395
1411
 
1396
- Tag boolean (AND|OR|NOT)
1412
+ Tag boolean (AND|OR|NOT). Use PATTERN to parse + and - as booleans.
1397
1413
 
1398
- [Default Value] AND
1399
- [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)?)?)$)
1400
1416
 
1401
1417
 
1402
1418
  ===== --case TYPE
@@ -1431,7 +1447,7 @@ Search filter
1431
1447
 
1432
1448
  ===== --tag TAG
1433
1449
 
1434
- 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.
1435
1451
 
1436
1452
  [Default Value] None
1437
1453
 
@@ -1464,6 +1480,14 @@ List all entries and select with typeahead fuzzy matching.
1464
1480
  Multiple selections are allowed, hit tab to add the highlighted entry to the
1465
1481
  selection, and use ctrl-a to select all visible items. Return processes the
1466
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
1467
1491
  ===== Options
1468
1492
  ===== --after DATE_STRING
1469
1493
 
@@ -1508,7 +1532,7 @@ Move selected items to section
1508
1532
 
1509
1533
  ===== -o|--output FORMAT
1510
1534
 
1511
- 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|json|markdown|say|taskpaper|template|timeline|wiki)
1512
1536
 
1513
1537
  [Default Value] None
1514
1538
 
@@ -1605,7 +1629,11 @@ Force exact search string matching (case sensitive)
1605
1629
  List all entries
1606
1630
 
1607
1631
  The argument can be a section name, @tag(s) or both.
1608
- "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).
1609
1637
  ===== Options
1610
1638
  ===== -a|--age AGE
1611
1639
 
@@ -1623,10 +1651,10 @@ Show entries newer than date. If this is only a time (8am, 1:30pm, 15:00), all d
1623
1651
 
1624
1652
  ===== -b|--bool BOOLEAN
1625
1653
 
1626
- Tag boolean (AND,OR,NOT)
1654
+ Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans.
1627
1655
 
1628
- [Default Value] OR
1629
- [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)?)?)$)
1630
1658
 
1631
1659
 
1632
1660
  ===== --before DATE_STRING
@@ -1641,6 +1669,7 @@ Show entries older than date. If this is only a time (8am, 1:30pm, 15:00), all d
1641
1669
  Max count to show
1642
1670
 
1643
1671
  [Default Value] 0
1672
+ [Must Match] (?-mix:^\d+$)
1644
1673
 
1645
1674
 
1646
1675
  ===== --case TYPE
@@ -1665,7 +1694,7 @@ Date range to show, or a single day to filter date on.
1665
1694
 
1666
1695
  ===== -o|--output FORMAT
1667
1696
 
1668
- 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|json|markdown|say|taskpaper|template|timeline|wiki)
1669
1698
 
1670
1699
  [Default Value] None
1671
1700
 
@@ -1687,7 +1716,7 @@ Search filter, surround with slashes for regex (/query/), start with single quot
1687
1716
 
1688
1717
  ===== --tag TAG
1689
1718
 
1690
- 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.
1691
1720
 
1692
1721
  [Default Value] None
1693
1722
 
@@ -1718,6 +1747,11 @@ Select from a menu of matching entries to perform additional operations
1718
1747
 
1719
1748
 
1720
1749
 
1750
+ ===== -m|--menu
1751
+ Select section or tag to display from a menu
1752
+
1753
+
1754
+
1721
1755
  ===== --not
1722
1756
  Show items that *don't* match search/tag/date filters
1723
1757
 
@@ -1751,7 +1785,7 @@ and "2d" would be interpreted as "two days ago."
1751
1785
  ===== Options
1752
1786
  ===== -o|--output FORMAT
1753
1787
 
1754
- 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|json|markdown|say|taskpaper|template|timeline|wiki)
1755
1789
 
1756
1790
  [Default Value] None
1757
1791
 
@@ -1805,10 +1839,10 @@ Add (or remove) tags from the last entry, or from multiple entries
1805
1839
  ===== Options
1806
1840
  ===== --bool BOOLEAN
1807
1841
 
1808
- 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.
1809
1843
 
1810
- [Default Value] AND
1811
- [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)?)?)$)
1812
1846
 
1813
1847
 
1814
1848
  ===== -c|--count COUNT
@@ -1851,7 +1885,7 @@ Tag entries matching search filter, surround with slashes for regex (e.g. "/quer
1851
1885
  ===== --tag TAG
1852
1886
 
1853
1887
  Tag the last X entries containing TAG.
1854
- 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 (*, ?).
1855
1889
 
1856
1890
  [Default Value] None
1857
1891
 
@@ -1901,12 +1935,98 @@ Force exact search string matching (case sensitive)
1901
1935
 
1902
1936
 
1903
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
+
1904
2017
  ==== Command: <tt>template TYPE</tt>
1905
2018
  Output HTML, CSS, and Markdown (ERB) templates for customization
1906
2019
 
1907
2020
  Templates are printed to STDOUT for piping to a file.
1908
2021
  Save them and use them in the configuration file under export_templates.
1909
2022
  ===== Options
2023
+ ===== -p|--path DIRECTORY
2024
+
2025
+ Save template to alternate location
2026
+
2027
+ [Default Value] /Users/ttscoff/.config/doing/templates
2028
+
2029
+
1910
2030
  ===== -c|--[no-]column
1911
2031
  List in single column for completion
1912
2032
 
@@ -1917,6 +2037,11 @@ List all available templates
1917
2037
 
1918
2038
 
1919
2039
 
2040
+ ===== -s|--save
2041
+ Save template to file instead of STDOUT
2042
+
2043
+
2044
+
1920
2045
  ==== Command: <tt>test </tt>
1921
2046
  Test Stuff
1922
2047
 
@@ -1924,7 +2049,8 @@ This command is coming from /Users/ttscoff/.config/doing/commands/test.rb
1924
2049
  ==== Command: <tt>today </tt>
1925
2050
  List entries from today
1926
2051
 
1927
-
2052
+ List entries from the current day. Use --before, --after, and
2053
+ --from to specify time ranges.
1928
2054
  ===== Options
1929
2055
  ===== --after TIME_STRING
1930
2056
 
@@ -1949,7 +2075,7 @@ Time range to show `doing today --from "12pm to 4pm"`
1949
2075
 
1950
2076
  ===== -o|--output FORMAT
1951
2077
 
1952
- Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
2078
+ Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|json|markdown|say|taskpaper|template|timeline|wiki)
1953
2079
 
1954
2080
  [Default Value] None
1955
2081
 
@@ -1984,10 +2110,13 @@ Show time totals at the end of output
1984
2110
 
1985
2111
 
1986
2112
 
1987
- ==== Command: <tt>undo </tt>
1988
- Undo the last change to the Doing file
2113
+ ==== Command: <tt>undo COUNT</tt>
2114
+ Undo the last X changes to the Doing file
1989
2115
 
2116
+ Reverts the last X commands that altered the doing file.
2117
+ All changes performed by a single command are undone at once.
1990
2118
 
2119
+ Specify a number to jump back multiple revisions, or use --select for an interactive menu.
1991
2120
  ===== Options
1992
2121
  ===== -f|--file PATH
1993
2122
 
@@ -1996,10 +2125,28 @@ Specify alternate doing file
1996
2125
  [Default Value] None
1997
2126
 
1998
2127
 
2128
+ ===== -p|--prune COUNT
2129
+
2130
+ Remove old backups, retaining X files
2131
+
2132
+ [Default Value] None
2133
+
2134
+
2135
+ ===== -i|--interactive
2136
+ Select from recent backups
2137
+
2138
+
2139
+
2140
+ ===== -r|--[no-]redo
2141
+ Redo last undo. Note: you cannot undo a redo.
2142
+
2143
+
2144
+
1999
2145
  ==== Command: <tt>view VIEW_NAME</tt>
2000
2146
  Display a user-created view
2001
2147
 
2002
- Command line options override view configuration
2148
+ Views are defined in your configuration (use `doing config` to edit).
2149
+ Command line options override view configuration.
2003
2150
  ===== Options
2004
2151
  ===== --after DATE_STRING
2005
2152
 
@@ -2010,10 +2157,10 @@ View entries newer than date. If this is only a time (8am, 1:30pm, 15:00), all d
2010
2157
 
2011
2158
  ===== -b|--bool BOOLEAN
2012
2159
 
2013
- Tag boolean (AND,OR,NOT)
2160
+ Tag boolean (AND,OR,NOT). Use PATTERN to parse + and - as booleans.
2014
2161
 
2015
- [Default Value] OR
2016
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
2162
+ [Default Value] PATTERN
2163
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2017
2164
 
2018
2165
 
2019
2166
  ===== --before DATE_STRING
@@ -2053,7 +2200,7 @@ Date range to show, or a single day to filter date on.
2053
2200
 
2054
2201
  ===== -o|--output FORMAT
2055
2202
 
2056
- Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
2203
+ Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|json|markdown|say|taskpaper|template|timeline|wiki)
2057
2204
 
2058
2205
  [Default Value] None
2059
2206
 
@@ -2074,7 +2221,7 @@ Search filter, surround with slashes for regex (/query/), start with single quot
2074
2221
 
2075
2222
  ===== --tag TAG
2076
2223
 
2077
- Tag filter, combine multiple tags with a comma.
2224
+ Tag filter, combine multiple tags with a comma. Wildcards allowed (*, ?).
2078
2225
 
2079
2226
  [Default Value] None
2080
2227
 
@@ -2162,7 +2309,7 @@ Include entries newer than date
2162
2309
  Tag boolean (AND,OR,NOT)
2163
2310
 
2164
2311
  [Default Value] OR
2165
- [Must Match] (?i-mx:^(?:and|all|any|or|not|none)$)
2312
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2166
2313
 
2167
2314
 
2168
2315
  ===== --before DATE_STRING
@@ -2210,7 +2357,8 @@ Only show items with recorded time intervals
2210
2357
  ==== Command: <tt>yesterday </tt>
2211
2358
  List entries from yesterday
2212
2359
 
2213
-
2360
+ Show only entries with start times within the previous 24 hour period. Use --before, --after, and --from to limit to
2361
+ time spans within the day.
2214
2362
  ===== Options
2215
2363
  ===== --after TIME_STRING
2216
2364
 
@@ -2235,7 +2383,7 @@ Time range to show, e.g. `doing yesterday --from "1am to 8am"`
2235
2383
 
2236
2384
  ===== -o|--output FORMAT
2237
2385
 
2238
- Output to export format (csv|doing|html|markdown|say|taskpaper|template|timeline|wiki)
2386
+ Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|json|markdown|say|taskpaper|template|timeline|wiki)
2239
2387
 
2240
2388
  [Default Value] None
2241
2389
 
data/example_plugin.rb CHANGED
@@ -47,6 +47,8 @@ module Doing
47
47
  ## - name: display name for template
48
48
  ## - trigger: regular expression for
49
49
  ## `template --type FORMAT`
50
+ ## - format: a descriptor of the file format (erb, haml, stylus, etc.)
51
+ ## - filename: a default filename used when the template is written to disk
50
52
  ##
51
53
  ## If a template is included, a config key will
52
54
  ## automatically be added for the user to override
@@ -73,7 +75,7 @@ module Doing
73
75
  {
74
76
  trigger: 'say(?:it)?',
75
77
  templates: [
76
- { name: 'say', trigger: 'say(?:it)?' }
78
+ { name: 'say', trigger: 'say(?:it)?', format: 'text', filename: 'say.txt' }
77
79
  ],
78
80
  config: {
79
81
  'say_voice' => 'Fiona'