doing 2.1.2pre → 2.1.6pre

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 (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'