doing 2.1.33 → 2.1.34

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/Gemfile.lock +1 -1
  4. data/bin/commands/config.rb +9 -9
  5. data/bin/commands/done.rb +1 -1
  6. data/bin/commands/grep.rb +2 -29
  7. data/bin/commands/meanwhile.rb +1 -1
  8. data/bin/commands/now.rb +1 -1
  9. data/bin/commands/on.rb +6 -16
  10. data/bin/commands/recent.rb +2 -14
  11. data/bin/commands/rotate.rb +17 -0
  12. data/bin/commands/sections.rb +82 -7
  13. data/bin/commands/show.rb +1 -21
  14. data/bin/commands/since.rb +5 -16
  15. data/bin/commands/today.rb +3 -28
  16. data/bin/commands/yesterday.rb +2 -35
  17. data/bin/doing +5 -6
  18. data/docs/doc/Array.html +1 -1
  19. data/docs/doc/BooleanTermParser/Clause.html +1 -1
  20. data/docs/doc/BooleanTermParser/Operator.html +1 -1
  21. data/docs/doc/BooleanTermParser/Query.html +1 -1
  22. data/docs/doc/BooleanTermParser/QueryParser.html +1 -1
  23. data/docs/doc/BooleanTermParser/QueryTransformer.html +1 -1
  24. data/docs/doc/BooleanTermParser.html +1 -1
  25. data/docs/doc/Doing/Color.html +1 -1
  26. data/docs/doc/Doing/Completion.html +1 -1
  27. data/docs/doc/Doing/Configuration.html +1 -1
  28. data/docs/doc/Doing/Errors/DoingNoTraceError.html +1 -1
  29. data/docs/doc/Doing/Errors/DoingRuntimeError.html +1 -1
  30. data/docs/doc/Doing/Errors/DoingStandardError.html +1 -1
  31. data/docs/doc/Doing/Errors/EmptyInput.html +1 -1
  32. data/docs/doc/Doing/Errors/NoResults.html +1 -1
  33. data/docs/doc/Doing/Errors/PluginException.html +1 -1
  34. data/docs/doc/Doing/Errors/UserCancelled.html +1 -1
  35. data/docs/doc/Doing/Errors/WrongCommand.html +1 -1
  36. data/docs/doc/Doing/Errors.html +1 -1
  37. data/docs/doc/Doing/Hooks.html +1 -1
  38. data/docs/doc/Doing/Item.html +20 -3
  39. data/docs/doc/Doing/Items.html +209 -1
  40. data/docs/doc/Doing/Logger.html +1807 -0
  41. data/docs/doc/Doing/Note.html +1 -1
  42. data/docs/doc/Doing/Pager.html +1 -1
  43. data/docs/doc/Doing/Plugins.html +1 -1
  44. data/docs/doc/Doing/Prompt.html +1 -1
  45. data/docs/doc/Doing/Section.html +1 -1
  46. data/docs/doc/Doing/TemplateString.html +1 -1
  47. data/docs/doc/Doing/Types.html +2 -2
  48. data/docs/doc/Doing/Util/Backup.html +1 -1
  49. data/docs/doc/Doing/Util.html +1 -1
  50. data/docs/doc/Doing/WWID.html +3 -53
  51. data/docs/doc/Doing.html +4 -4
  52. data/docs/doc/FalseClass.html +1 -1
  53. data/docs/doc/GLI/Commands/Help.html +1 -1
  54. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
  55. data/docs/doc/GLI/Commands.html +1 -1
  56. data/docs/doc/GLI.html +1 -1
  57. data/docs/doc/Hash.html +1 -1
  58. data/docs/doc/Object.html +1 -1
  59. data/docs/doc/PhraseParser/Operator.html +1 -1
  60. data/docs/doc/PhraseParser/PhraseClause.html +1 -1
  61. data/docs/doc/PhraseParser/Query.html +1 -1
  62. data/docs/doc/PhraseParser/QueryParser.html +1 -1
  63. data/docs/doc/PhraseParser/QueryTransformer.html +1 -1
  64. data/docs/doc/PhraseParser/TermClause.html +1 -1
  65. data/docs/doc/PhraseParser.html +1 -1
  66. data/docs/doc/Status.html +1 -1
  67. data/docs/doc/String.html +1 -1
  68. data/docs/doc/Symbol.html +1 -1
  69. data/docs/doc/Time.html +1 -1
  70. data/docs/doc/TrueClass.html +1 -1
  71. data/docs/doc/_index.html +10 -10
  72. data/docs/doc/class_list.html +1 -1
  73. data/docs/doc/file.README.html +1 -1
  74. data/docs/doc/index.html +1 -1
  75. data/docs/doc/method_list.html +407 -383
  76. data/docs/doc/top-level-namespace.html +1 -1
  77. data/doing.rdoc +229 -17
  78. data/lib/completion/_doing.zsh +11 -15
  79. data/lib/completion/doing.bash +12 -23
  80. data/lib/completion/doing.fish +38 -12
  81. data/lib/doing/add_options.rb +36 -1
  82. data/lib/doing/chronify/string.rb +1 -1
  83. data/lib/doing/item.rb +9 -2
  84. data/lib/doing/items.rb +48 -0
  85. data/lib/doing/{log_adapter.rb → logger.rb} +8 -2
  86. data/lib/doing/plugins/import/calendar_import.rb +1 -1
  87. data/lib/doing/plugins/import/doing_import.rb +1 -1
  88. data/lib/doing/plugins/import/timing_import.rb +1 -1
  89. data/lib/doing/string/tags.rb +1 -1
  90. data/lib/doing/types.rb +1 -1
  91. data/lib/doing/version.rb +1 -1
  92. data/lib/doing/wwid.rb +43 -43
  93. data/lib/doing.rb +4 -3
  94. data/lib/examples/plugins/capture_thing_import.rb +1 -1
  95. metadata +4 -4
  96. data/bin/commands/add_section.rb +0 -15
@@ -206,7 +206,7 @@
206
206
  </div>
207
207
 
208
208
  <div id="footer">
209
- Generated on Fri Feb 18 12:22:34 2022 by
209
+ Generated on Sun Feb 20 09:36:51 2022 by
210
210
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
211
211
  0.9.27 (ruby-3.0.1).
212
212
  </div>
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.33
8
+ v2.1.34
9
9
 
10
10
  === Global Options
11
11
  === --config_file arg
@@ -83,10 +83,6 @@ Answer all yes/no menus with yes
83
83
 
84
84
 
85
85
  === Commands
86
- ==== Command: <tt>add_section SECTION_NAME</tt>
87
- Add a new section to the "doing" file
88
-
89
-
90
86
  ==== Command: <tt>again|resume </tt>
91
87
  Repeat last entry as new entry
92
88
 
@@ -592,8 +588,8 @@ Editor to use
592
588
  [Default Value] None
593
589
 
594
590
 
595
- ======= -x|--[no-]default
596
- Use the config_editor_app defined in ~/.config/doing/config.yml (config_editor_app not set)
591
+ ======= -x|--default
592
+ Use the config editor defined in ~/.config/doing/config.yml (Sublime Text)
597
593
 
598
594
 
599
595
 
@@ -873,7 +869,7 @@ Search entries older than date (natural language). If this is only a time (8am,
873
869
 
874
870
  ===== --bool BOOLEAN
875
871
 
876
- Combine multiple tags or value queries using AND, OR, or NOT
872
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
877
873
 
878
874
  [Default Value] pattern
879
875
  [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
@@ -919,6 +915,21 @@ Section
919
915
  [Default Value] All
920
916
 
921
917
 
918
+ ===== --tag TAG
919
+
920
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
921
+
922
+ [Default Value] None
923
+
924
+
925
+ ===== --tag_order DIRECTION
926
+
927
+ Tag sort direction (asc|desc)
928
+
929
+ [Default Value] asc
930
+ [Must Match] (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
931
+
932
+
922
933
  ===== --tag_sort KEY
923
934
 
924
935
  Sort tags by (name|time)
@@ -936,7 +947,8 @@ Override output format with a template string containing %placeholders
936
947
 
937
948
  ===== --val QUERY
938
949
 
939
- Perform a tag value query ("@done > two hours ago" or "@progress < 50"). May be used multiple times, combined with --bool
950
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
951
+ May be used multiple times, combined with --bool
940
952
 
941
953
  [Default Value] None
942
954
  [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
@@ -968,7 +980,7 @@ Display an interactive menu of results to perform further operations
968
980
 
969
981
 
970
982
  ===== --not
971
- Show items that *don't* match search string
983
+ Search items that *don't* match search/tag filters
972
984
 
973
985
 
974
986
 
@@ -983,7 +995,7 @@ Show time intervals on @done tasks
983
995
 
984
996
 
985
997
  ===== --totals
986
- Show intervals with totals at the end of output
998
+ Show time totals at the end of output
987
999
 
988
1000
 
989
1001
 
@@ -1497,6 +1509,36 @@ Date argument can be natural language. "thursday" would be interpreted as "last
1497
1509
  and "2d" would be interpreted as "two days ago." If you use "to" or "through" between two dates,
1498
1510
  it will create a range.
1499
1511
  ===== Options
1512
+ ===== --after TIME_STRING
1513
+
1514
+ View entries after specified time (e.g. 8am, 12:30pm, 15:00)
1515
+
1516
+ [Default Value] None
1517
+
1518
+
1519
+ ===== --before TIME_STRING
1520
+
1521
+ View entries before specified time (e.g. 8am, 12:30pm, 15:00)
1522
+
1523
+ [Default Value] None
1524
+
1525
+
1526
+ ===== --bool BOOLEAN
1527
+
1528
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
1529
+
1530
+ [Default Value] pattern
1531
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
1532
+
1533
+
1534
+ ===== --case TYPE
1535
+
1536
+ Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
1537
+
1538
+ [Default Value] smart
1539
+ [Must Match] (?i-mx:^[cis].*?$)
1540
+
1541
+
1500
1542
  ===== --config_template TEMPLATE_KEY
1501
1543
 
1502
1544
  Output using a template from configuration
@@ -1504,6 +1546,14 @@ Output using a template from configuration
1504
1546
  [Default Value] default
1505
1547
 
1506
1548
 
1549
+ ===== --from TIME_RANGE
1550
+
1551
+ Time range to show `doing on --from "12pm to 4pm"`
1552
+
1553
+ [Default Value] None
1554
+ [Must Match] (?i-mx:^(?:\d{1,2}+(?::\d{1,2}+)?(?: *(?:am|pm))?|midnight|noon)(?: +(?:to|through|thru|(?:un)?til|-+) +(?:\d{1,2}+(?::\d{1,2}+)?(?: *(?:am|pm))?|midnight|noon))?$)
1555
+
1556
+
1507
1557
  ===== -o|--output FORMAT
1508
1558
 
1509
1559
  Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|json|markdown|say|taskpaper|template|timeline|wiki)
@@ -1518,6 +1568,29 @@ Section
1518
1568
  [Default Value] All
1519
1569
 
1520
1570
 
1571
+ ===== --search QUERY
1572
+
1573
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
1574
+ start with single quote for exact match ("'query")
1575
+
1576
+ [Default Value] None
1577
+
1578
+
1579
+ ===== --tag TAG
1580
+
1581
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
1582
+
1583
+ [Default Value] None
1584
+
1585
+
1586
+ ===== --tag_order DIRECTION
1587
+
1588
+ Tag sort direction (asc|desc)
1589
+
1590
+ [Default Value] asc
1591
+ [Must Match] (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
1592
+
1593
+
1521
1594
  ===== --tag_sort KEY
1522
1595
 
1523
1596
  Sort tags by (name|time)
@@ -1533,11 +1606,30 @@ Override output format with a template string containing %placeholders
1533
1606
  [Default Value] None
1534
1607
 
1535
1608
 
1609
+ ===== --val QUERY
1610
+
1611
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
1612
+ May be used multiple times, combined with --bool
1613
+
1614
+ [Default Value] None
1615
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
1616
+
1617
+
1536
1618
  ===== --[no-]duration
1537
1619
  Show elapsed time on entries without @done tag
1538
1620
 
1539
1621
 
1540
1622
 
1623
+ ===== --not
1624
+ Show items that *don't* match search/tag filters
1625
+
1626
+
1627
+
1628
+ ===== --only_timed
1629
+ Only show items with recorded time intervals
1630
+
1631
+
1632
+
1541
1633
  ===== -t|--[no-]times
1542
1634
  Show time intervals on @done tasks
1543
1635
 
@@ -1548,6 +1640,11 @@ Show time totals at the end of output
1548
1640
 
1549
1641
 
1550
1642
 
1643
+ ===== -x|--exact
1644
+ Force exact search string matching (case sensitive)
1645
+
1646
+
1647
+
1551
1648
  ==== Command: <tt>open </tt>
1552
1649
  Open the "doing" file in an editor
1553
1650
 
@@ -1616,6 +1713,14 @@ Section
1616
1713
  [Default Value] All
1617
1714
 
1618
1715
 
1716
+ ===== --tag_order DIRECTION
1717
+
1718
+ Tag sort direction (asc|desc)
1719
+
1720
+ [Default Value] asc
1721
+ [Must Match] (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
1722
+
1723
+
1619
1724
  ===== --tag_sort KEY
1620
1725
 
1621
1726
  Sort tags by (name|time)
@@ -1641,13 +1746,18 @@ Select from a menu of matching entries to perform additional operations
1641
1746
 
1642
1747
 
1643
1748
 
1749
+ ===== --only_timed
1750
+ Only show items with recorded time intervals
1751
+
1752
+
1753
+
1644
1754
  ===== -t|--[no-]times
1645
1755
  Show time intervals on @done tasks
1646
1756
 
1647
1757
 
1648
1758
 
1649
1759
  ===== --totals
1650
- Show intervals with totals at the end of output
1760
+ Show time totals at the end of output
1651
1761
 
1652
1762
 
1653
1763
 
@@ -1828,15 +1938,35 @@ Force exact search string matching (case sensitive)
1828
1938
 
1829
1939
 
1830
1940
  ==== Command: <tt>sections </tt>
1941
+ List, add, or remove sections in the Doing file
1942
+
1943
+
1944
+ ===== Commands
1945
+ ====== Command: <tt>add SECTION_NAME</tt>
1946
+ Add a section
1947
+
1948
+
1949
+ ====== Command: <tt>list </tt>
1831
1950
  List sections
1832
1951
 
1833
1952
 
1834
- ===== Options
1835
- ===== -c|--column
1953
+ ======= Options
1954
+ ======= -c|--column
1836
1955
  List in single column
1837
1956
 
1838
1957
 
1839
1958
 
1959
+ ====== Command: <tt>remove SECTION_NAME</tt>
1960
+ Remove a section
1961
+
1962
+
1963
+ ======= Options
1964
+ ======= -a|--[no-]archive
1965
+ Archive entries in section before deleting. --no-archive permanently deletes section contents
1966
+
1967
+
1968
+
1969
+ [Default Command] list
1840
1970
  ==== Command: <tt>select </tt>
1841
1971
  Display an interactive menu to perform operations
1842
1972
 
@@ -2184,7 +2314,7 @@ Show time intervals on @done tasks
2184
2314
 
2185
2315
 
2186
2316
  ===== --totals
2187
- Show intervals with totals at the end of output
2317
+ Show time totals at the end of output
2188
2318
 
2189
2319
 
2190
2320
 
@@ -2199,6 +2329,22 @@ List entries since a date
2199
2329
  Date argument can be natural language and are always interpreted as being in the past. "thursday" would be interpreted as "last thursday,"
2200
2330
  and "2d" would be interpreted as "two days ago."
2201
2331
  ===== Options
2332
+ ===== --bool BOOLEAN
2333
+
2334
+ Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
2335
+
2336
+ [Default Value] pattern
2337
+ [Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
2338
+
2339
+
2340
+ ===== --case TYPE
2341
+
2342
+ Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
2343
+
2344
+ [Default Value] smart
2345
+ [Must Match] (?i-mx:^[cis].*?$)
2346
+
2347
+
2202
2348
  ===== --config_template TEMPLATE_KEY
2203
2349
 
2204
2350
  Output using a template from configuration
@@ -2220,6 +2366,29 @@ Section
2220
2366
  [Default Value] All
2221
2367
 
2222
2368
 
2369
+ ===== --search QUERY
2370
+
2371
+ Filter entries using a search query, surround with slashes for regex (e.g. "/query.*/"),
2372
+ start with single quote for exact match ("'query")
2373
+
2374
+ [Default Value] None
2375
+
2376
+
2377
+ ===== --tag TAG
2378
+
2379
+ Filter entries by tag. Combine multiple tags with a comma. Wildcards allowed (*, ?)
2380
+
2381
+ [Default Value] None
2382
+
2383
+
2384
+ ===== --tag_order DIRECTION
2385
+
2386
+ Tag sort direction (asc|desc)
2387
+
2388
+ [Default Value] asc
2389
+ [Must Match] (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
2390
+
2391
+
2223
2392
  ===== --tag_sort KEY
2224
2393
 
2225
2394
  Sort tags by (name|time)
@@ -2235,11 +2404,30 @@ Override output format with a template string containing %placeholders
2235
2404
  [Default Value] None
2236
2405
 
2237
2406
 
2407
+ ===== --val QUERY
2408
+
2409
+ Perform a tag value query ("@done > two hours ago" or "@progress < 50").
2410
+ May be used multiple times, combined with --bool
2411
+
2412
+ [Default Value] None
2413
+ [Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
2414
+
2415
+
2238
2416
  ===== --[no-]duration
2239
2417
  Show elapsed time on entries without @done tag
2240
2418
 
2241
2419
 
2242
2420
 
2421
+ ===== --not
2422
+ Since items that *don't* match search/tag filters
2423
+
2424
+
2425
+
2426
+ ===== --only_timed
2427
+ Only show items with recorded time intervals
2428
+
2429
+
2430
+
2243
2431
  ===== -t|--[no-]times
2244
2432
  Show time intervals on @done tasks
2245
2433
 
@@ -2250,6 +2438,11 @@ Show time totals at the end of output
2250
2438
 
2251
2439
 
2252
2440
 
2441
+ ===== -x|--exact
2442
+ Force exact search string matching (case sensitive)
2443
+
2444
+
2445
+
2253
2446
  ==== Command: <tt>tag TAG...</tt>
2254
2447
  Add tag(s) to last entry
2255
2448
 
@@ -2550,6 +2743,7 @@ Output using a template from configuration
2550
2743
  Time range to show `doing today --from "12pm to 4pm"`
2551
2744
 
2552
2745
  [Default Value] None
2746
+ [Must Match] (?i-mx:^(?:\d{1,2}+(?::\d{1,2}+)?(?: *(?:am|pm))?|midnight|noon)(?: +(?:to|through|thru|(?:un)?til|-+) +(?:\d{1,2}+(?::\d{1,2}+)?(?: *(?:am|pm))?|midnight|noon))?$)
2553
2747
 
2554
2748
 
2555
2749
  ===== -o|--output FORMAT
@@ -2566,6 +2760,14 @@ Specify a section
2566
2760
  [Default Value] All
2567
2761
 
2568
2762
 
2763
+ ===== --tag_order DIRECTION
2764
+
2765
+ Tag sort direction (asc|desc)
2766
+
2767
+ [Default Value] asc
2768
+ [Must Match] (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
2769
+
2770
+
2569
2771
  ===== --tag_sort KEY
2570
2772
 
2571
2773
  Sort tags by (name|time)
@@ -2586,6 +2788,11 @@ Show elapsed time on entries without @done tag
2586
2788
 
2587
2789
 
2588
2790
 
2791
+ ===== --only_timed
2792
+ Only show items with recorded time intervals
2793
+
2794
+
2795
+
2589
2796
  ===== -t|--[no-]times
2590
2797
  Show time intervals on @done tasks
2591
2798
 
@@ -2892,10 +3099,10 @@ Output using a template from configuration
2892
3099
 
2893
3100
  ===== --from TIME_RANGE
2894
3101
 
2895
- Time range to show, e.g. `doing yesterday --from "1am to 8am"`
3102
+ Time range to show `doing yesterday --from "12pm to 4pm"`
2896
3103
 
2897
3104
  [Default Value] None
2898
- [Must Match] (?i-mx:^(?:\d{1,2}+(?::\d{1,2}+)?(?: *(?:am|pm))?|midnight|noon) +(?:to|through|thru|(?:un)?til|-+) +(?:\d{1,2}+(?::\d{1,2}+)?(?: *(?:am|pm))?|midnight|noon)$)
3105
+ [Must Match] (?i-mx:^(?:\d{1,2}+(?::\d{1,2}+)?(?: *(?:am|pm))?|midnight|noon)(?: +(?:to|through|thru|(?:un)?til|-+) +(?:\d{1,2}+(?::\d{1,2}+)?(?: *(?:am|pm))?|midnight|noon))?$)
2899
3106
 
2900
3107
 
2901
3108
  ===== -o|--output FORMAT
@@ -2940,6 +3147,11 @@ Show elapsed time on entries without @done tag
2940
3147
 
2941
3148
 
2942
3149
 
3150
+ ===== --only_timed
3151
+ Only show items with recorded time intervals
3152
+
3153
+
3154
+
2943
3155
  ===== -t|--[no-]times
2944
3156
  Show time intervals on @done tasks
2945
3157
 
@@ -7,7 +7,6 @@ function _doing() {
7
7
  local -a commands
8
8
 
9
9
  commands=(
10
- 'add_section:Add a new section to the "doing" file'
11
10
  'again:Repeat last entry as new entry'
12
11
  'resume:Repeat last entry as new entry'
13
12
  'archive:Move entries between sections'
@@ -42,7 +41,7 @@ function _doing() {
42
41
  'reset:Reset the start time of an entry'
43
42
  'begin:Reset the start time of an entry'
44
43
  'rotate:Move entries to archive file'
45
- 'sections:List sections'
44
+ 'sections:List'
46
45
  'select:Display an interactive menu to perform operations'
47
46
  'show:List all entries'
48
47
  'since:List entries since a date'
@@ -66,10 +65,7 @@ function _doing() {
66
65
 
67
66
 
68
67
  case $line[1] in
69
- add_section)
70
- args=( )
71
- ;;
72
- again)
68
+ again)
73
69
  args=( {'(--noauto)-X','(-X)--noauto'}"[Exclude auto tags and default tags]" "--ask[Prompt for note via multi-line input]" "--started[Backdate start date for new entry to date string (4pm|20m|2h|yesterday noon)]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" {'(--editor)-e','(-e)--editor'}"[Edit entry with vim]" {'(--interactive)-i','(-i)--interactive'}"[Select item to resume from a menu of matching entries]" "--in[Add new entry to section]:SECTION_NAME:" {'(--note)-n','(-n)--note'}"[Include a note]:TEXT:" "--not[Repeat items that *dont* match search/tag filterst* match search/tag filters]" {'(--section)-s','(-s)--section'}"[Get last entry from a specific section]:NAME:" "--search[Filter entries using a search query]:QUERY:" "--tag[Filter entries by tag]:TAG:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
74
70
  ;;
75
71
  resume)
@@ -115,10 +111,10 @@ function _doing() {
115
111
  args=( {'(--archive)-a','(-a)--archive'}"[Archive entries]" "--finished[Set finish date to specific date/time]:DATE_STRING:" "--auto[Auto-generate finish dates from next entrys start times start time]" "--started[Backdate completed date to date string (4pm|20m|2h|yesterday noon)]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" "--date[Include date]" {'(--interactive)-i','(-i)--interactive'}"[Select item(s) to finish from a menu of matching entries]" "--not[Finish items that *dont* match search/tag filterst* match search/tag filters]" {'(--remove)-r','(-r)--remove'}"[Remove @done tag]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--search[Filter entries using a search query]:QUERY:" "--for[Set the completed date to the start date plus XX(hmd)]:INTERVAL:" "--tag[Filter entries by tag]:TAG:" {'(--unfinished)-u','(-u)--unfinished'}"[Finish last entry]" "--update[Overwrite existing @done tag with new date]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
116
112
  ;;
117
113
  grep)
118
- args=( "--after[Search entries newer than date]:DATE_STRING:" "--before[Search entries older than date]:DATE_STRING:" "--bool[Combine multiple tags or value queries using AND]:BOOLEAN:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" {'(--delete)-d','(-d)--delete'}"[Delete matching entries]" "--duration[Show elapsed time on entries without @done tag]" {'(--editor)-e','(-e)--editor'}"[Edit matching entries with vim]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Display an interactive menu of results to perform further operations]" "--not[Show items that *dont* match search stringt* match search string]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show intervals with totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact string matching]" )
114
+ args=( "--after[Search entries newer than date]:DATE_STRING:" "--before[Search entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" {'(--delete)-d','(-d)--delete'}"[Delete matching entries]" "--duration[Show elapsed time on entries without @done tag]" {'(--editor)-e','(-e)--editor'}"[Edit matching entries with vim]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Display an interactive menu of results to perform further operations]" "--not[Search items that *dont* match search/tag filterst* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact string matching]" )
119
115
  ;;
120
116
  search)
121
- args=( "--after[Search entries newer than date]:DATE_STRING:" "--before[Search entries older than date]:DATE_STRING:" "--bool[Combine multiple tags or value queries using AND]:BOOLEAN:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" {'(--delete)-d','(-d)--delete'}"[Delete matching entries]" "--duration[Show elapsed time on entries without @done tag]" {'(--editor)-e','(-e)--editor'}"[Edit matching entries with vim]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Display an interactive menu of results to perform further operations]" "--not[Show items that *dont* match search stringt* match search string]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show intervals with totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact string matching]" )
117
+ args=( "--after[Search entries newer than date]:DATE_STRING:" "--before[Search entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" {'(--delete)-d','(-d)--delete'}"[Delete matching entries]" "--duration[Show elapsed time on entries without @done tag]" {'(--editor)-e','(-e)--editor'}"[Edit matching entries with vim]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Display an interactive menu of results to perform further operations]" "--not[Search items that *dont* match search/tag filterst* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact string matching]" )
122
118
  ;;
123
119
  help)
124
120
  args=( )
@@ -148,7 +144,7 @@ function _doing() {
148
144
  args=( {'(--noauto)-X','(-X)--noauto'}"[Exclude auto tags and default tags]" "--ask[Prompt for note via multi-line input]" "--started[Backdate start date for new entry to date string (4pm|20m|2h|yesterday noon)]:DATE_STRING:" {'(--editor)-e','(-e)--editor'}"[Edit entry with vim]" {'(--finish_last)-f','(-f)--finish_last'}"[Timed entry]" "--from[Set a start and optionally end time as a date range]:TIME_RANGE:" {'(--note)-n','(-n)--note'}"[Include a note]:TEXT:" {'(--section)-s','(-s)--section'}"[Section]:NAME:" )
149
145
  ;;
150
146
  on)
151
- args=( "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" {'(--section)-s','(-s)--section'}"[Section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" )
147
+ args=( "--after[View entries after specified time]:TIME_STRING:" "--before[View entries before specified time]:TIME_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Time range to show `doing on --from "12pm to 4pm"`]:TIME_RANGE:" "--not[Show items that *dont* match search/tag filterst* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--search[Filter entries using a search query]:QUERY:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
152
148
  ;;
153
149
  open)
154
150
  args=( {'(--app)-a','(-a)--app'}"[Open with app name]:APP_NAME:" {'(--bundle_id)-b','(-b)--bundle_id'}"[Open with app bundle id]:BUNDLE_ID:" {'(--editor)-e','(-e)--editor'}"[Open with editor command]:COMMAND:" )
@@ -157,7 +153,7 @@ function _doing() {
157
153
  args=( {'(--column)-c','(-c)--column'}"[List in single column for completion]" {'(--type)-t','(-t)--type'}"[List plugins of type]:TYPE:" )
158
154
  ;;
159
155
  recent)
160
- args=( "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" {'(--interactive)-i','(-i)--interactive'}"[Select from a menu of matching entries to perform additional operations]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show intervals with totals at the end of output]" )
156
+ args=( "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" {'(--interactive)-i','(-i)--interactive'}"[Select from a menu of matching entries to perform additional operations]" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" )
161
157
  ;;
162
158
  redo)
163
159
  args=( {'(--file)-f','(-f)--file'}"[Specify alternate doing file]:PATH:" {'(--interactive)-i','(-i)--interactive'}"[Select from an interactive menu]" )
@@ -172,16 +168,16 @@ function _doing() {
172
168
  args=( "--before[Rotate entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" {'(--keep)-k','(-k)--keep'}"[How many items to keep in each section]:X:" "--not[Rotate items that *dont* match search/tag filterst* match search/tag filters]" {'(--section)-s','(-s)--section'}"[Section to rotate]:SECTION_NAME:" "--search[Filter entries using a search query]:QUERY:" "--tag[Filter entries by tag]:TAG:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
173
169
  ;;
174
170
  sections)
175
- args=( {'(--column)-c','(-c)--column'}"[List in single column]" )
171
+ args=( )
176
172
  ;;
177
173
  select)
178
174
  args=( {'(--archive)-a','(-a)--archive'}"[Archive selected items]" "--after[Select entries newer than date]:DATE_STRING:" "--resume[Copy selection as a new entry with current time and no @done tag]" "--before[Select entries older than date]:DATE_STRING:" {'(--cancel)-c','(-c)--cancel'}"[Cancel selected items]" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" {'(--delete)-d','(-d)--delete'}"[Delete selected items]" {'(--editor)-e','(-e)--editor'}"[Edit selected item(s)]" {'(--finish)-f','(-f)--finish'}"[Add @done with current time to selected item(s)]" "--flag[Add flag to selected item(s)]" "--force[Perform action without confirmation]" "--from[Date range]:DATE_OR_RANGE:" {'(--move)-m','(-m)--move'}"[Move selected items to section]:SECTION:" "--menu[Use --no-menu to skip the interactive menu]" "--not[Select items that *dont* match search/tag filterst* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output entries to format]:FORMAT:" {'(--query)-q','(-q)--query'}"[Initial search query for filtering]:QUERY:" {'(--remove)-r','(-r)--remove'}"[Reverse -c]" {'(--section)-s','(-s)--section'}"[Select from a specific section]:SECTION:" "--save_to[Save selected entries to file using --output format]:FILE:" "--search[Filter entries using a search query]:QUERY:" {'(--tag)-t','(-t)--tag'}"[Tag selected entries]:TAG:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
179
175
  ;;
180
176
  show)
181
- args=( {'(--age)-a','(-a)--age'}"[Age]:AGE:" "--after[Show entries newer than date]:DATE_STRING:" "--before[Show entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" {'(--count)-c','(-c)--count'}"[Max count to show]:MAX:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Select from a menu of matching entries to perform additional operations]" {'(--menu)-m','(-m)--menu'}"[Select section or tag to display from a menu]" "--not[Show items that *dont* match search/tag filterst* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--sort)-s','(-s)--sort'}"[Sort order]:ORDER:" "--search[Filter entries using a search query]:QUERY:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show intervals with totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
177
+ args=( {'(--age)-a','(-a)--age'}"[Age]:AGE:" "--after[Show entries newer than date]:DATE_STRING:" "--before[Show entries older than date]:DATE_STRING:" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" {'(--count)-c','(-c)--count'}"[Max count to show]:MAX:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Date range]:DATE_OR_RANGE:" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" {'(--interactive)-i','(-i)--interactive'}"[Select from a menu of matching entries to perform additional operations]" {'(--menu)-m','(-m)--menu'}"[Select section or tag to display from a menu]" "--not[Show items that *dont* match search/tag filterst* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--sort)-s','(-s)--sort'}"[Sort order]:ORDER:" "--search[Filter entries using a search query]:QUERY:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
182
178
  ;;
183
179
  since)
184
- args=( "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" {'(--section)-s','(-s)--section'}"[Section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" )
180
+ args=( "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--not[Since items that *dont* match search/tag filterst* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section]:NAME:" "--search[Filter entries using a search query]:QUERY:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag[Filter entries by tag]:TAG:" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
185
181
  ;;
186
182
  tag)
187
183
  args=( {'(--autotag)-a','(-a)--autotag'}"[Autotag entries based on autotag configuration in ~/]" "--bool[Boolean used to combine multiple tags]:BOOLEAN:" {'(--count)-c','(-c)--count'}"[How many recent entries to tag]:COUNT:" "--case[Case sensitivity for search string matching ((c)ase-sensitive]:TYPE:" {'(--date)-d','(-d)--date'}"[Include current date/time with tag]" "--force[Dont ask permission to tag all entries when count is 0t ask permission to tag all entries when count is 0]" {'(--interactive)-i','(-i)--interactive'}"[Select item(s) to tag from a menu of matching entries]" "--not[Tag items that *dont* match search/tag filterst* match search/tag filters]" {'(--remove)-r','(-r)--remove'}"[Remove given tag(s)]" "--regex[Interpret tag string as regular expression]" "--rename[Replace existing tag with tag argument]:ORIG_TAG:" {'(--section)-s','(-s)--section'}"[Section]:SECTION_NAME:" "--search[Filter entries using a search query]:QUERY:" "--tag[Filter entries by tag]:TAG:" {'(--unfinished)-u','(-u)--unfinished'}"[Tag last entry]" {'(--value)-v','(-v)--value'}"[Include a value]:VALUE:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
@@ -199,7 +195,7 @@ function _doing() {
199
195
  args=( )
200
196
  ;;
201
197
  today)
202
- args=( "--after[View entries after specified time]:TIME_STRING:" "--before[View entries before specified time]:TIME_STRING:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Time range to show `doing today --from "12pm to 4pm"`]:TIME_RANGE:" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" {'(--section)-s','(-s)--section'}"[Specify a section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" )
198
+ args=( "--after[View entries after specified time]:TIME_STRING:" "--before[View entries before specified time]:TIME_STRING:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Time range to show `doing today --from "12pm to 4pm"`]:TIME_RANGE:" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Specify a section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" )
203
199
  ;;
204
200
  undo)
205
201
  args=( {'(--file)-f','(-f)--file'}"[Specify alternate doing file]:PATH:" {'(--interactive)-i','(-i)--interactive'}"[Select from recent backups]" {'(--prune)-p','(-p)--prune'}"[Remove old backups]:COUNT:" {'(--redo)-r','(-r)--redo'}"[Redo last undo]" )
@@ -214,7 +210,7 @@ function _doing() {
214
210
  args=( "--after[Include entries newer than date]:DATE_STRING:" {'(--bool)-b','(-b)--bool'}"[Tag boolean]:BOOLEAN:" "--before[Include entries older than date]:DATE_STRING:" {'(--from)-f','(-f)--from'}"[Date range to include]:DATE_OR_RANGE:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Section to rotate]:SECTION_NAME:" "--search[Search filter]:QUERY:" "--tag[Tag filter]:TAG:" )
215
211
  ;;
216
212
  yesterday)
217
- args=( "--after[View entries after specified time]:TIME_STRING:" "--before[View entries before specified time]:TIME_STRING:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Time range to show]:TIME_RANGE:" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" {'(--section)-s','(-s)--section'}"[Specify a section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" )
213
+ args=( "--after[View entries after specified time]:TIME_STRING:" "--before[View entries before specified time]:TIME_STRING:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" "--duration[Show elapsed time on entries without @done tag]" "--from[Time range to show `doing yesterday --from "12pm to 4pm"`]:TIME_RANGE:" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" "--only_timed[Only show items with recorded time intervals]" {'(--section)-s','(-s)--section'}"[Specify a section]:NAME:" {'(--times)-t','(-t)--times'}"[Show time intervals on @done tasks]" "--tag_order[Tag sort direction]:DIRECTION:" "--tag_sort[Sort tags by]:KEY:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--totals[Show time totals at the end of output]" )
218
214
  ;;
219
215
  esac
220
216