doing 2.1.30 → 2.1.34
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.irbrc +1 -0
- data/CHANGELOG.md +4972 -0
- data/Dockerfile-2.6 +3 -1
- data/Dockerfile-2.7 +4 -2
- data/Dockerfile-3.0 +3 -1
- data/Gemfile.lock +1 -67
- data/README.md +1 -1
- data/bash_profile +13 -0
- data/bin/commands/again.rb +1 -1
- data/bin/commands/archive.rb +3 -3
- data/bin/commands/cancel.rb +1 -1
- data/bin/commands/commands.rb +8 -8
- data/bin/commands/completion.rb +61 -19
- data/bin/commands/config.rb +22 -19
- data/bin/commands/done.rb +2 -2
- data/bin/commands/flag.rb +1 -1
- data/bin/commands/grep.rb +6 -33
- data/bin/commands/last.rb +1 -1
- data/bin/commands/meanwhile.rb +2 -2
- data/bin/commands/now.rb +2 -2
- data/bin/commands/on.rb +6 -16
- data/bin/commands/open.rb +1 -1
- data/bin/commands/recent.rb +5 -17
- data/bin/commands/rotate.rb +17 -0
- data/bin/commands/sections.rb +82 -7
- data/bin/commands/show.rb +8 -28
- data/bin/commands/since.rb +5 -16
- data/bin/commands/tag_dir.rb +27 -3
- data/bin/commands/today.rb +3 -28
- data/bin/commands/view.rb +3 -3
- data/bin/commands/yesterday.rb +3 -36
- data/bin/doing +29 -139
- data/docs/doc/Array.html +1 -1
- data/docs/doc/BooleanTermParser/Clause.html +1 -1
- data/docs/doc/BooleanTermParser/Operator.html +1 -1
- data/docs/doc/BooleanTermParser/Query.html +1 -1
- data/docs/doc/BooleanTermParser/QueryParser.html +1 -1
- data/docs/doc/BooleanTermParser/QueryTransformer.html +1 -1
- data/docs/doc/BooleanTermParser.html +1 -1
- data/docs/doc/Doing/Color.html +1 -1
- data/docs/doc/Doing/Completion.html +324 -4
- data/docs/doc/Doing/Configuration.html +3 -3
- data/docs/doc/Doing/Errors/DoingNoTraceError.html +1 -1
- data/docs/doc/Doing/Errors/DoingRuntimeError.html +1 -1
- data/docs/doc/Doing/Errors/DoingStandardError.html +1 -1
- data/docs/doc/Doing/Errors/EmptyInput.html +1 -1
- data/docs/doc/Doing/Errors/NoResults.html +1 -1
- data/docs/doc/Doing/Errors/PluginException.html +1 -1
- data/docs/doc/Doing/Errors/UserCancelled.html +1 -1
- data/docs/doc/Doing/Errors/WrongCommand.html +1 -1
- data/docs/doc/Doing/Errors.html +1 -1
- data/docs/doc/Doing/Hooks.html +1 -1
- data/docs/doc/Doing/Item.html +144 -3
- data/docs/doc/Doing/Items.html +209 -1
- data/docs/doc/Doing/LogAdapter.html +1 -1
- data/docs/doc/Doing/Logger.html +1807 -0
- data/docs/doc/Doing/Note.html +109 -3
- data/docs/doc/Doing/Pager.html +1 -1
- data/docs/doc/Doing/Plugins.html +1 -1
- data/docs/doc/Doing/Prompt.html +1 -1
- data/docs/doc/Doing/Section.html +1 -1
- data/docs/doc/Doing/TemplateString.html +1 -1
- data/docs/doc/Doing/Types.html +3 -3
- data/docs/doc/Doing/Util/Backup.html +1 -1
- data/docs/doc/Doing/Util.html +1 -1
- data/docs/doc/Doing/WWID.html +8 -58
- data/docs/doc/Doing.html +4 -4
- data/docs/doc/FalseClass.html +1 -1
- data/docs/doc/GLI/Commands/Help.html +1 -1
- data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
- data/docs/doc/GLI/Commands.html +1 -1
- data/docs/doc/GLI.html +1 -1
- data/docs/doc/Hash.html +1 -1
- data/docs/doc/Object.html +1 -1
- data/docs/doc/PhraseParser/Operator.html +1 -1
- data/docs/doc/PhraseParser/PhraseClause.html +1 -1
- data/docs/doc/PhraseParser/Query.html +1 -1
- data/docs/doc/PhraseParser/QueryParser.html +1 -1
- data/docs/doc/PhraseParser/QueryTransformer.html +1 -1
- data/docs/doc/PhraseParser/TermClause.html +1 -1
- data/docs/doc/PhraseParser.html +1 -1
- data/docs/doc/Status.html +1 -1
- data/docs/doc/String.html +1 -1
- data/docs/doc/Symbol.html +1 -1
- data/docs/doc/Time.html +1 -1
- data/docs/doc/TrueClass.html +1 -1
- data/docs/doc/_index.html +12 -10
- data/docs/doc/class_list.html +1 -1
- data/docs/doc/file.README.html +2 -2
- data/docs/doc/index.html +2 -2
- data/docs/doc/method_list.html +424 -304
- data/docs/doc/top-level-namespace.html +105 -1
- data/docs/index.md +1 -1
- data/doing.gemspec +24 -24
- data/doing.rdoc +259 -26
- data/example_plugin.rb +7 -5
- data/inputrc +57 -0
- data/lib/completion/_doing.zsh +48 -52
- data/lib/completion/doing.bash +14 -25
- data/lib/completion/doing.fish +41 -15
- data/lib/doing/add_options.rb +152 -0
- data/lib/doing/array/array.rb +16 -0
- data/lib/doing/changelog/changes.rb +1 -1
- data/lib/doing/chronify/string.rb +1 -1
- data/lib/doing/completion/bash_completion.rb +12 -51
- data/lib/doing/completion/fish_completion.rb +17 -53
- data/lib/doing/completion/zsh_completion.rb +21 -59
- data/lib/doing/completion.rb +203 -17
- data/lib/doing/configuration.rb +7 -1
- data/lib/doing/item.rb +30 -5
- data/lib/doing/items.rb +53 -5
- data/lib/doing/{log_adapter.rb → logger.rb} +8 -2
- data/lib/doing/note.rb +24 -8
- data/lib/doing/plugins/export/dayone_export.rb +8 -6
- data/lib/doing/plugins/export/html_export.rb +4 -4
- data/lib/doing/plugins/export/json_export.rb +19 -20
- data/lib/doing/plugins/export/markdown_export.rb +2 -2
- data/lib/doing/plugins/export/template_export.rb +4 -4
- data/lib/doing/plugins/import/calendar_import.rb +2 -2
- data/lib/doing/plugins/import/doing_import.rb +2 -2
- data/lib/doing/plugins/import/timing_import.rb +2 -2
- data/lib/doing/string/highlight.rb +3 -4
- data/lib/doing/string/string.rb +8 -0
- data/lib/doing/string/tags.rb +1 -1
- data/lib/doing/types.rb +2 -2
- data/lib/doing/util.rb +1 -1
- data/lib/doing/util_backup.rb +12 -12
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid.rb +119 -120
- data/lib/doing.rb +61 -3
- data/lib/examples/commands/wiki.rb +27 -19
- data/lib/examples/plugins/capture_thing_import.rb +1 -1
- data/lib/helpers/threaded_tests.rb +2 -0
- data/scripts/setting_replace.rb +11 -0
- metadata +109 -124
- data/.yardoc/checksums +0 -29
- data/.yardoc/complete +0 -0
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/bin/commands/add_section.rb +0 -15
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.
|
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
|
|
@@ -506,26 +502,42 @@ Disable Doing commands
|
|
506
502
|
|
507
503
|
[Default Command] add
|
508
504
|
==== Command: <tt>completion </tt>
|
509
|
-
Generate shell completion scripts
|
505
|
+
Generate shell completion scripts for doing
|
510
506
|
|
511
507
|
Generates the necessary scripts to add command line completion to various shells,
|
512
508
|
so typing 'doing' and hitting tab will offer completions of subcommands and their options.
|
513
509
|
===== Options
|
514
|
-
===== -
|
510
|
+
===== -t|--type arg
|
515
511
|
|
516
|
-
|
512
|
+
Deprecated, specify shell as argument to subcommand
|
517
513
|
|
518
|
-
[Default Value]
|
514
|
+
[Default Value] None
|
515
|
+
[Must Match] (?i-mx:^(?:[bzf](?:[ai]?sh)?|all)$)
|
519
516
|
|
520
517
|
|
521
|
-
=====
|
518
|
+
===== Commands
|
519
|
+
====== Command: <tt>generate [zsh|bash|fish|all]</tt>
|
520
|
+
Generate completion scripts, including custom plugins and command options
|
522
521
|
|
523
|
-
|
522
|
+
Argument specifies which shell to install for: zsh, bash, fish, all
|
523
|
+
======= Options
|
524
|
+
======= -f|--file PATH
|
525
|
+
|
526
|
+
Alternative file to write output to
|
527
|
+
|
528
|
+
[Default Value] None
|
529
|
+
Argument specifies which shell to install for: zsh, bash, fish, all
|
530
|
+
|
531
|
+
======= --stdout
|
532
|
+
Output result to STDOUT only
|
524
533
|
|
525
|
-
[Default Value] zsh
|
526
|
-
[Must Match] (?i-mx:^(?:[bzf](?:[ai]?sh)?|all)$)
|
527
534
|
|
528
535
|
|
536
|
+
====== Command: <tt>install [zsh|bash|fish]</tt>
|
537
|
+
Install default completion scripts
|
538
|
+
|
539
|
+
Argument specifies which shell to install for: zsh, bash, fish, or all
|
540
|
+
[Default Command] generate
|
529
541
|
==== Command: <tt>config </tt>
|
530
542
|
Edit the configuration file or output a value from it
|
531
543
|
|
@@ -576,8 +588,8 @@ Editor to use
|
|
576
588
|
[Default Value] None
|
577
589
|
|
578
590
|
|
579
|
-
======= -x|--
|
580
|
-
Use the
|
591
|
+
======= -x|--default
|
592
|
+
Use the config editor defined in ~/.config/doing/config.yml (Sublime Text)
|
581
593
|
|
582
594
|
|
583
595
|
|
@@ -604,6 +616,11 @@ Set a key's value in the config file
|
|
604
616
|
|
605
617
|
|
606
618
|
======= Options
|
619
|
+
======= --local
|
620
|
+
Force update to .doingrc in the current directory
|
621
|
+
|
622
|
+
|
623
|
+
|
607
624
|
======= -r|--remove
|
608
625
|
Delete specified key
|
609
626
|
|
@@ -646,7 +663,7 @@ Start and end times as a date/time range `doing done --from "1am to 8am"`.
|
|
646
663
|
Overrides other date flags.
|
647
664
|
|
648
665
|
[Default Value] None
|
649
|
-
[Must Match] (?i-mx:^\S
|
666
|
+
[Must Match] (?i-mx:^\S+.*? +(?:to|through|thru|(?:un)?til|-+) +\S+.*?$)
|
650
667
|
|
651
668
|
|
652
669
|
===== -n|--note TEXT
|
@@ -852,7 +869,7 @@ Search entries older than date (natural language). If this is only a time (8am,
|
|
852
869
|
|
853
870
|
===== --bool BOOLEAN
|
854
871
|
|
855
|
-
|
872
|
+
Boolean used to combine multiple tags. Use PATTERN to parse + and - as booleans
|
856
873
|
|
857
874
|
[Default Value] pattern
|
858
875
|
[Must Match] (?i-mx:^(?:and|all|any|or|not|none|p(?:at(?:tern)?)?)$)
|
@@ -898,6 +915,21 @@ Section
|
|
898
915
|
[Default Value] All
|
899
916
|
|
900
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
|
+
|
901
933
|
===== --tag_sort KEY
|
902
934
|
|
903
935
|
Sort tags by (name|time)
|
@@ -915,7 +947,8 @@ Override output format with a template string containing %placeholders
|
|
915
947
|
|
916
948
|
===== --val QUERY
|
917
949
|
|
918
|
-
Perform a tag value query ("@done > two hours ago" or "@progress < 50").
|
950
|
+
Perform a tag value query ("@done > two hours ago" or "@progress < 50").
|
951
|
+
May be used multiple times, combined with --bool
|
919
952
|
|
920
953
|
[Default Value] None
|
921
954
|
[Must Match] (?-mix:^(?:!)?@?(?:\S+) +(?:!?[<>=][=*]?|[$*^]=) +(?:.*?)$)
|
@@ -947,7 +980,7 @@ Display an interactive menu of results to perform further operations
|
|
947
980
|
|
948
981
|
|
949
982
|
===== --not
|
950
|
-
|
983
|
+
Search items that *don't* match search/tag filters
|
951
984
|
|
952
985
|
|
953
986
|
|
@@ -962,7 +995,7 @@ Show time intervals on @done tasks
|
|
962
995
|
|
963
996
|
|
964
997
|
===== --totals
|
965
|
-
Show
|
998
|
+
Show time totals at the end of output
|
966
999
|
|
967
1000
|
|
968
1001
|
|
@@ -1476,6 +1509,36 @@ Date argument can be natural language. "thursday" would be interpreted as "last
|
|
1476
1509
|
and "2d" would be interpreted as "two days ago." If you use "to" or "through" between two dates,
|
1477
1510
|
it will create a range.
|
1478
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
|
+
|
1479
1542
|
===== --config_template TEMPLATE_KEY
|
1480
1543
|
|
1481
1544
|
Output using a template from configuration
|
@@ -1483,6 +1546,14 @@ Output using a template from configuration
|
|
1483
1546
|
[Default Value] default
|
1484
1547
|
|
1485
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
|
+
|
1486
1557
|
===== -o|--output FORMAT
|
1487
1558
|
|
1488
1559
|
Output to export format (csv|dayone|dayone-days|dayone-entries|doing|html|json|markdown|say|taskpaper|template|timeline|wiki)
|
@@ -1497,6 +1568,29 @@ Section
|
|
1497
1568
|
[Default Value] All
|
1498
1569
|
|
1499
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
|
+
|
1500
1594
|
===== --tag_sort KEY
|
1501
1595
|
|
1502
1596
|
Sort tags by (name|time)
|
@@ -1512,11 +1606,30 @@ Override output format with a template string containing %placeholders
|
|
1512
1606
|
[Default Value] None
|
1513
1607
|
|
1514
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
|
+
|
1515
1618
|
===== --[no-]duration
|
1516
1619
|
Show elapsed time on entries without @done tag
|
1517
1620
|
|
1518
1621
|
|
1519
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
|
+
|
1520
1633
|
===== -t|--[no-]times
|
1521
1634
|
Show time intervals on @done tasks
|
1522
1635
|
|
@@ -1527,6 +1640,11 @@ Show time totals at the end of output
|
|
1527
1640
|
|
1528
1641
|
|
1529
1642
|
|
1643
|
+
===== -x|--exact
|
1644
|
+
Force exact search string matching (case sensitive)
|
1645
|
+
|
1646
|
+
|
1647
|
+
|
1530
1648
|
==== Command: <tt>open </tt>
|
1531
1649
|
Open the "doing" file in an editor
|
1532
1650
|
|
@@ -1595,6 +1713,14 @@ Section
|
|
1595
1713
|
[Default Value] All
|
1596
1714
|
|
1597
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
|
+
|
1598
1724
|
===== --tag_sort KEY
|
1599
1725
|
|
1600
1726
|
Sort tags by (name|time)
|
@@ -1620,13 +1746,18 @@ Select from a menu of matching entries to perform additional operations
|
|
1620
1746
|
|
1621
1747
|
|
1622
1748
|
|
1749
|
+
===== --only_timed
|
1750
|
+
Only show items with recorded time intervals
|
1751
|
+
|
1752
|
+
|
1753
|
+
|
1623
1754
|
===== -t|--[no-]times
|
1624
1755
|
Show time intervals on @done tasks
|
1625
1756
|
|
1626
1757
|
|
1627
1758
|
|
1628
1759
|
===== --totals
|
1629
|
-
Show
|
1760
|
+
Show time totals at the end of output
|
1630
1761
|
|
1631
1762
|
|
1632
1763
|
|
@@ -1807,15 +1938,35 @@ Force exact search string matching (case sensitive)
|
|
1807
1938
|
|
1808
1939
|
|
1809
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>
|
1810
1950
|
List sections
|
1811
1951
|
|
1812
1952
|
|
1813
|
-
|
1814
|
-
|
1953
|
+
======= Options
|
1954
|
+
======= -c|--column
|
1815
1955
|
List in single column
|
1816
1956
|
|
1817
1957
|
|
1818
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
|
1819
1970
|
==== Command: <tt>select </tt>
|
1820
1971
|
Display an interactive menu to perform operations
|
1821
1972
|
|
@@ -2163,7 +2314,7 @@ Show time intervals on @done tasks
|
|
2163
2314
|
|
2164
2315
|
|
2165
2316
|
===== --totals
|
2166
|
-
Show
|
2317
|
+
Show time totals at the end of output
|
2167
2318
|
|
2168
2319
|
|
2169
2320
|
|
@@ -2178,6 +2329,22 @@ List entries since a date
|
|
2178
2329
|
Date argument can be natural language and are always interpreted as being in the past. "thursday" would be interpreted as "last thursday,"
|
2179
2330
|
and "2d" would be interpreted as "two days ago."
|
2180
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
|
+
|
2181
2348
|
===== --config_template TEMPLATE_KEY
|
2182
2349
|
|
2183
2350
|
Output using a template from configuration
|
@@ -2199,6 +2366,29 @@ Section
|
|
2199
2366
|
[Default Value] All
|
2200
2367
|
|
2201
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
|
+
|
2202
2392
|
===== --tag_sort KEY
|
2203
2393
|
|
2204
2394
|
Sort tags by (name|time)
|
@@ -2214,11 +2404,30 @@ Override output format with a template string containing %placeholders
|
|
2214
2404
|
[Default Value] None
|
2215
2405
|
|
2216
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
|
+
|
2217
2416
|
===== --[no-]duration
|
2218
2417
|
Show elapsed time on entries without @done tag
|
2219
2418
|
|
2220
2419
|
|
2221
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
|
+
|
2222
2431
|
===== -t|--[no-]times
|
2223
2432
|
Show time intervals on @done tasks
|
2224
2433
|
|
@@ -2229,6 +2438,11 @@ Show time totals at the end of output
|
|
2229
2438
|
|
2230
2439
|
|
2231
2440
|
|
2441
|
+
===== -x|--exact
|
2442
|
+
Force exact search string matching (case sensitive)
|
2443
|
+
|
2444
|
+
|
2445
|
+
|
2232
2446
|
==== Command: <tt>tag TAG...</tt>
|
2233
2447
|
Add tag(s) to last entry
|
2234
2448
|
|
@@ -2529,6 +2743,7 @@ Output using a template from configuration
|
|
2529
2743
|
Time range to show `doing today --from "12pm to 4pm"`
|
2530
2744
|
|
2531
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))?$)
|
2532
2747
|
|
2533
2748
|
|
2534
2749
|
===== -o|--output FORMAT
|
@@ -2545,6 +2760,14 @@ Specify a section
|
|
2545
2760
|
[Default Value] All
|
2546
2761
|
|
2547
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
|
+
|
2548
2771
|
===== --tag_sort KEY
|
2549
2772
|
|
2550
2773
|
Sort tags by (name|time)
|
@@ -2565,6 +2788,11 @@ Show elapsed time on entries without @done tag
|
|
2565
2788
|
|
2566
2789
|
|
2567
2790
|
|
2791
|
+
===== --only_timed
|
2792
|
+
Only show items with recorded time intervals
|
2793
|
+
|
2794
|
+
|
2795
|
+
|
2568
2796
|
===== -t|--[no-]times
|
2569
2797
|
Show time intervals on @done tasks
|
2570
2798
|
|
@@ -2871,10 +3099,10 @@ Output using a template from configuration
|
|
2871
3099
|
|
2872
3100
|
===== --from TIME_RANGE
|
2873
3101
|
|
2874
|
-
Time range to show
|
3102
|
+
Time range to show `doing yesterday --from "12pm to 4pm"`
|
2875
3103
|
|
2876
3104
|
[Default Value] None
|
2877
|
-
[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))?$)
|
2878
3106
|
|
2879
3107
|
|
2880
3108
|
===== -o|--output FORMAT
|
@@ -2919,6 +3147,11 @@ Show elapsed time on entries without @done tag
|
|
2919
3147
|
|
2920
3148
|
|
2921
3149
|
|
3150
|
+
===== --only_timed
|
3151
|
+
Only show items with recorded time intervals
|
3152
|
+
|
3153
|
+
|
3154
|
+
|
2922
3155
|
===== -t|--[no-]times
|
2923
3156
|
Show time intervals on @done tasks
|
2924
3157
|
|
data/example_plugin.rb
CHANGED
@@ -54,7 +54,7 @@ module Doing
|
|
54
54
|
## automatically be added for the user to override
|
55
55
|
## The config key will be available at:
|
56
56
|
##
|
57
|
-
##
|
57
|
+
## Doing.config.settings['export_templates'][PLUGIN_NAME]
|
58
58
|
##
|
59
59
|
## config: (optional) A Hash which will be
|
60
60
|
## added to the main configuration in the plugins section.
|
@@ -65,7 +65,7 @@ module Doing
|
|
65
65
|
##
|
66
66
|
## The configuration keys will be available at:
|
67
67
|
##
|
68
|
-
##
|
68
|
+
## Doing.config.settings['plugins'][PLUGIN_NAME][KEY]
|
69
69
|
##
|
70
70
|
## Method to return plugin settings (required)
|
71
71
|
##
|
@@ -125,6 +125,8 @@ module Doing
|
|
125
125
|
def self.render(wwid, items, variables: {})
|
126
126
|
return unless items.good?
|
127
127
|
|
128
|
+
config = Doing.config.settings
|
129
|
+
|
128
130
|
# the :options key includes the flags passed to the
|
129
131
|
# command that called the plugin use `puts
|
130
132
|
# variables.inspect` to see properties and methods
|
@@ -162,8 +164,8 @@ module Doing
|
|
162
164
|
title = i.title.gsub(/@/, 'hashtag ')
|
163
165
|
tpl = template('say')
|
164
166
|
|
165
|
-
if
|
166
|
-
cfg_tpl =
|
167
|
+
if config['export_templates'].key?('say')
|
168
|
+
cfg_tpl = config['export_templates']['say']
|
167
169
|
tpl = cfg_tpl if cfg_tpl.good?
|
168
170
|
end
|
169
171
|
output = tpl.dup
|
@@ -188,7 +190,7 @@ module Doing
|
|
188
190
|
Doing.logger.info('Spoke the last entry. Did you hear it?')
|
189
191
|
|
190
192
|
# This export runs a command for fun, most plugins won't
|
191
|
-
voice =
|
193
|
+
voice = config['plugins']['say']['say_voice'] || 'Alex'
|
192
194
|
`say -v "#{voice}" "#{output}"`
|
193
195
|
|
194
196
|
# Return the result (don't output to terminal with puts or print)
|
data/inputrc
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
"\e[3~": delete-char
|
2
|
+
"\ex": 'cd !$ \015ls\015'
|
3
|
+
"\ez": 'cd -\015'
|
4
|
+
"\e\C-m": '\C-a "$(\C-e|fzf)"\C-a'
|
5
|
+
"\e/": '"$(!!|fzf)"\C-a \C-m\C-m'
|
6
|
+
# these allow you to use alt+left/right arrow keys
|
7
|
+
# to jump the cursor over words
|
8
|
+
"\e[1;5C": forward-word
|
9
|
+
"\e[1;5D": backward-word
|
10
|
+
# "\e[D": backward-word
|
11
|
+
# "\e[C": forward-word
|
12
|
+
"\ea": menu-complete
|
13
|
+
# TAB: menu-complete
|
14
|
+
# "\e[Z": "\e-1\C-i"
|
15
|
+
|
16
|
+
"\e\C-l": history-and-alias-expand-line
|
17
|
+
|
18
|
+
# these allow you to start typing a command and
|
19
|
+
# use the up/down arrow to auto complete from
|
20
|
+
# commands in your history
|
21
|
+
"\e[B": history-search-forward
|
22
|
+
"\e[A": history-search-backward
|
23
|
+
"\ew": history-search-backward
|
24
|
+
"\es": history-search-forward
|
25
|
+
# this lets you hit tab to auto-complete a file or
|
26
|
+
# directory name ignoring case
|
27
|
+
set completion-ignore-case On
|
28
|
+
set mark-symlinked-directories On
|
29
|
+
set completion-prefix-display-length 2
|
30
|
+
set bell-style none
|
31
|
+
# set bell-style visible
|
32
|
+
set meta-flag on
|
33
|
+
set convert-meta off
|
34
|
+
set input-meta on
|
35
|
+
set output-meta on
|
36
|
+
set show-all-if-ambiguous on
|
37
|
+
set show-all-if-unmodified on
|
38
|
+
set completion-map-case on
|
39
|
+
set visible-stats on
|
40
|
+
|
41
|
+
# Do history expansion when space entered?
|
42
|
+
$if bash
|
43
|
+
Space: magic-space
|
44
|
+
$endif
|
45
|
+
|
46
|
+
# Show extra file information when completing, like `ls -F` does
|
47
|
+
set visible-stats on
|
48
|
+
|
49
|
+
# Be more intelligent when autocompleting by also looking at the text after
|
50
|
+
# the cursor. For example, when the current line is "cd ~/src/mozil", and
|
51
|
+
# the cursor is on the "z", pressing Tab will not autocomplete it to "cd
|
52
|
+
# ~/src/mozillail", but to "cd ~/src/mozilla". (This is supported by the
|
53
|
+
# Readline used by Bash 4.)
|
54
|
+
set skip-completed-text on
|
55
|
+
|
56
|
+
# Use Alt/Meta + Delete to delete the preceding word
|
57
|
+
"\e[3;3~": kill-word
|