doing 2.1.4pre → 2.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardoc/checksums +14 -13
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardopts +1 -1
- data/CHANGELOG.md +37 -1
- data/Gemfile.lock +3 -1
- data/README.md +5 -1
- data/bin/doing +192 -95
- data/docs/_config.yml +1 -0
- data/{doc → docs/doc}/Array.html +63 -1
- data/docs/doc/BooleanTermParser/Clause.html +293 -0
- data/docs/doc/BooleanTermParser/Operator.html +172 -0
- data/docs/doc/BooleanTermParser/Query.html +417 -0
- data/docs/doc/BooleanTermParser/QueryParser.html +135 -0
- data/docs/doc/BooleanTermParser/QueryTransformer.html +124 -0
- data/docs/doc/BooleanTermParser.html +115 -0
- data/docs/doc/Doing/CLIFormat.html +131 -0
- data/{doc → docs/doc}/Doing/Color.html +2 -2
- data/{doc → docs/doc}/Doing/Completion.html +1 -1
- data/{doc → docs/doc}/Doing/Configuration.html +117 -12
- data/{doc → docs/doc}/Doing/Content.html +0 -0
- data/{doc → docs/doc}/Doing/Errors/DoingNoTraceError.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/DoingRuntimeError.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/DoingStandardError.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/EmptyInput.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/NoResults.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/PluginException.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/UserCancelled.html +1 -1
- data/{doc → docs/doc}/Doing/Errors/WrongCommand.html +1 -1
- data/{doc → docs/doc}/Doing/Errors.html +1 -1
- data/{doc → docs/doc}/Doing/Hooks.html +1 -1
- data/{doc → docs/doc}/Doing/Item.html +100 -73
- data/{doc → docs/doc}/Doing/Items.html +2 -2
- data/{doc → docs/doc}/Doing/LogAdapter.html +70 -1
- data/{doc → docs/doc}/Doing/Note.html +5 -134
- data/{doc → docs/doc}/Doing/Pager.html +1 -1
- data/{doc → docs/doc}/Doing/Plugins.html +431 -35
- data/{doc → docs/doc}/Doing/Prompt.html +1 -1
- data/{doc → docs/doc}/Doing/Section.html +1 -1
- data/docs/doc/Doing/TemplateString.html +713 -0
- data/docs/doc/Doing/Util/Backup.html +686 -0
- data/{doc → docs/doc}/Doing/Util.html +1 -1
- data/{doc → docs/doc}/Doing/WWID.html +5 -5
- data/{doc → docs/doc}/Doing/WWIDFile.html +0 -0
- data/{doc → docs/doc}/Doing.html +4 -4
- data/{doc → docs/doc}/GLI/Commands/MarkdownDocumentListener.html +1 -1
- data/{doc → docs/doc}/GLI/Commands.html +1 -1
- data/{doc → docs/doc}/GLI.html +1 -1
- data/{doc → docs/doc}/Hash.html +1 -1
- data/docs/doc/PhraseParser/Operator.html +172 -0
- data/docs/doc/PhraseParser/PhraseClause.html +303 -0
- data/docs/doc/PhraseParser/Query.html +495 -0
- data/docs/doc/PhraseParser/QueryParser.html +136 -0
- data/docs/doc/PhraseParser/QueryTransformer.html +124 -0
- data/docs/doc/PhraseParser/TermClause.html +293 -0
- data/docs/doc/PhraseParser.html +115 -0
- data/{doc → docs/doc}/Status.html +1 -1
- data/{doc → docs/doc}/String.html +182 -12
- data/{doc → docs/doc}/Symbol.html +35 -1
- data/{doc → docs/doc}/Time.html +1 -1
- data/{doc → docs/doc}/_index.html +21 -14
- data/{doc → docs/doc}/class_list.html +1 -1
- data/{doc → docs/doc}/css/common.css +0 -0
- data/{doc → docs/doc}/css/full_list.css +0 -0
- data/{doc → docs/doc}/css/style.css +0 -0
- data/{doc → docs/doc}/file.README.html +6 -2
- data/{doc → docs/doc}/file_list.html +0 -0
- data/{doc → docs/doc}/frames.html +0 -0
- data/{doc → docs/doc}/index.html +6 -2
- data/{doc → docs/doc}/js/app.js +0 -0
- data/{doc → docs/doc}/js/full_list.js +0 -0
- data/{doc → docs/doc}/js/jquery.js +0 -0
- data/{doc → docs/doc}/method_list.html +313 -161
- data/{doc → docs/doc}/top-level-namespace.html +1 -1
- data/docs/index.md +60 -0
- data/doing.gemspec +1 -0
- data/doing.rdoc +74 -15
- data/example_plugin.rb +3 -1
- data/lib/completion/_doing.zsh +53 -41
- data/lib/completion/doing.bash +17 -6
- data/lib/completion/doing.fish +321 -2
- data/lib/doing/array.rb +9 -0
- data/lib/doing/completion/fish_completion.rb +46 -3
- data/lib/doing/completion/zsh_completion.rb +1 -1
- data/lib/doing/configuration.rb +33 -11
- data/lib/doing/item.rb +12 -3
- data/lib/doing/log_adapter.rb +28 -0
- data/lib/doing/note.rb +31 -30
- data/lib/doing/plugin_manager.rb +84 -21
- data/lib/doing/plugins/export/dayone_export.rb +209 -0
- data/lib/doing/plugins/export/html_export.rb +2 -2
- data/lib/doing/plugins/export/json_export.rb +1 -0
- data/lib/doing/plugins/export/markdown_export.rb +1 -1
- data/lib/doing/plugins/export/template_export.rb +90 -85
- data/lib/doing/prompt.rb +9 -6
- data/lib/doing/string.rb +68 -27
- data/lib/doing/symbol.rb +4 -0
- data/lib/doing/template_string.rb +197 -0
- data/lib/doing/util.rb +4 -2
- data/lib/doing/util_backup.rb +55 -3
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid.rb +37 -22
- data/lib/doing.rb +3 -0
- data/lib/examples/plugins/say_export.rb +1 -1
- data/lib/examples/plugins/wiki_export/wiki_export.rb +3 -3
- data/lib/templates/doing-dayone-entry.erb +6 -0
- data/lib/templates/doing-dayone.erb +5 -0
- metadata +95 -53
@@ -102,7 +102,7 @@
|
|
102
102
|
</div>
|
103
103
|
|
104
104
|
<div id="footer">
|
105
|
-
Generated on
|
105
|
+
Generated on Mon Dec 20 16:04:14 2021 by
|
106
106
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
107
107
|
0.9.26 (ruby-3.0.1).
|
108
108
|
</div>
|
data/docs/index.md
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
# doing
|
2
|
+
|
3
|
+
**A command line tool for remembering what you were doing and tracking what you've done.**
|
4
|
+
|
5
|
+
_If you're one of the rare people like me who find this useful, feel free to [buy me some coffee](http://brettterpstra.com/donate/)._
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
The current version of `doing` is 2.1.4.
|
10
|
+
|
11
|
+
Find all of the documentation in the [doing wiki](https://github.com/ttscoff/doing/wiki).
|
12
|
+
|
13
|
+
See [what's new in Doing 2.0](https://brettterpstra.com/2021/11/20/doing-2-dot-0/).
|
14
|
+
|
15
|
+
Check out some craziness with Doing in the [iTerm status bar](https://brettterpstra.com/2021/10/15/see-what-youre-doing-in-the-iterm-status-bar/) and the [Mac Touch Bar/menu bar](https://brettterpstra.com/2021/07/21/crazy-bettertouchtool-touch-bar-simulator/).
|
16
|
+
|
17
|
+
## What and why
|
18
|
+
|
19
|
+
`doing` is a basic CLI for adding and listing "what was I doing" reminders in a [TaskPaper-formatted](https://www.taskpaper.com) text file. It allows for multiple sections/categories and flexible output formatting.
|
20
|
+
|
21
|
+
While I'm working, I have hourly reminders to record what I'm working on, and I try to remember to punch in quick notes if I'm unexpectedly called away from a project. I can do this just by typing `doing now tracking down the CG bug`.
|
22
|
+
|
23
|
+
If there's something I want to look at later but doesn't need to be added to a task list or tracker, I can type `doing later check out the pinboard bookmarks from macdrifter`. When I get back to my computer --- or just need a refresher after a distraction --- I can type `doing last` to see what the last thing on my plate was. I can also type `doing recent` (or just `doing`) to get a list of the last few entries. `doing today` gives me everything since midnight for the current day, making it easy to see what I've accomplished over a sleepless night.
|
24
|
+
|
25
|
+
Doing has over 30 commands for tracking your status, recording your time, and analyzing the results.
|
26
|
+
|
27
|
+
See [the wiki](https://github.com/ttscoff/doing/wiki) for installation and usage instructions.
|
28
|
+
|
29
|
+
## Launchbar/Alfred
|
30
|
+
|
31
|
+
The LaunchBar action requires that `doing` be available in `/usr/local/bin/doing`. If it's not (because you're using RVM or similar), you'll need to symlink it there. Running the action with Return will show the latest 9 items from Currently, along with any time intervals recorded, and includes a submenu of Timers for each tag.
|
32
|
+
|
33
|
+
Pressing Spacebar and typing allows you to add a new entry to currently. You an also trigger a custom show command by typing "show [section/tag]" and hitting return. Include any command line flags at the end of the string, and if you add text in parenthesis, it will be processed as a note on the entry.
|
34
|
+
|
35
|
+
Point of interest, the LaunchBar Action makes use of the `-o json` flag for outputting JSON to the action's script for parsing.
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
See the [doing project on BrettTerpstra.com](https://brettterpstra.com/projects/doing/) for the download.
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
Evan Lovely has [created an Alfred workflow as well](http://www.evanlovely.com/blog/technology/alfred-for-terpstras-doing/).
|
45
|
+
|
46
|
+
## Contributing
|
47
|
+
|
48
|
+
If you [create a plugin](https://github.com/ttscoff/doing/wiki/Creating-Plugins), custom command, or hook you can share, please [let me know](https://brettterpstra.com/contact/). If I get a few plugin contributions, I'll set up a second repository for them.
|
49
|
+
|
50
|
+
Feel free to fork [the repository](https://github.com/ttscoff/doing/) on GitHub and make pull requests with changes. Please target the `develop` branch with pull requests.
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
---
|
55
|
+
|
56
|
+
PayPal link: [paypal.me/ttscoff](https://paypal.me/ttscoff)
|
57
|
+
|
58
|
+
## Changelog
|
59
|
+
|
60
|
+
See [CHANGELOG.md](https://github.com/ttscoff/doing/blob/master/CHANGELOG.md)
|
data/doing.gemspec
CHANGED
@@ -41,5 +41,6 @@ spec = Gem::Specification.new do |s|
|
|
41
41
|
s.add_runtime_dependency('tty-which', '~> 0.5', '>= 0.5.0')
|
42
42
|
s.add_runtime_dependency('tty-markdown', '~> 0.7', '>= 0.7.0')
|
43
43
|
s.add_runtime_dependency('parslet', '~> 2.0', '>= 2.0.0')
|
44
|
+
s.add_runtime_dependency('plist', '~> 3.6', '>= 3.6.0')
|
44
45
|
# s.add_runtime_dependency('amatch', '~> 0.4', '>= 0.4.0')
|
45
46
|
end
|
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.7
|
9
9
|
|
10
10
|
=== Global Options
|
11
11
|
=== --config_file arg
|
@@ -380,10 +380,10 @@ List available color variables for configuration templates and views
|
|
380
380
|
|
381
381
|
|
382
382
|
==== Command: <tt>completion </tt>
|
383
|
+
Generate shell completion scripts
|
384
|
+
|
383
385
|
Generates the necessary scripts to add command line completion to various shells, so typing 'doing' and hitting
|
384
386
|
tab will offer completions of subcommands and their options.
|
385
|
-
|
386
|
-
|
387
387
|
===== Options
|
388
388
|
===== -f|--file PATH
|
389
389
|
|
@@ -493,11 +493,11 @@ Update default config file, adding any missing keys
|
|
493
493
|
|
494
494
|
[Default Command] edit
|
495
495
|
==== Command: <tt>done|did ENTRY</tt>
|
496
|
+
Add a completed item with @done(date). No argument finishes last entry.
|
497
|
+
|
496
498
|
Use this command to add an entry after you've already finished it. It will be immediately marked as @done.
|
497
499
|
You can modify the start and end times of the entry using the --back, --took, and --at flags, making it an easy
|
498
500
|
way to add entries in post and maintain accurate (albeit manual) time tracking.
|
499
|
-
|
500
|
-
|
501
501
|
===== Options
|
502
502
|
===== --at DATE_STRING
|
503
503
|
|
@@ -711,7 +711,7 @@ Date range to show, or a single day to filter date on.
|
|
711
711
|
|
712
712
|
===== -o|--output FORMAT
|
713
713
|
|
714
|
-
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)
|
715
715
|
|
716
716
|
[Default Value] None
|
717
717
|
|
@@ -1204,7 +1204,7 @@ it will create a range.
|
|
1204
1204
|
===== Options
|
1205
1205
|
===== -o|--output FORMAT
|
1206
1206
|
|
1207
|
-
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)
|
1208
1208
|
|
1209
1209
|
[Default Value] None
|
1210
1210
|
|
@@ -1532,7 +1532,7 @@ Move selected items to section
|
|
1532
1532
|
|
1533
1533
|
===== -o|--output FORMAT
|
1534
1534
|
|
1535
|
-
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)
|
1536
1536
|
|
1537
1537
|
[Default Value] None
|
1538
1538
|
|
@@ -1669,6 +1669,7 @@ Show entries older than date. If this is only a time (8am, 1:30pm, 15:00), all d
|
|
1669
1669
|
Max count to show
|
1670
1670
|
|
1671
1671
|
[Default Value] 0
|
1672
|
+
[Must Match] (?-mix:^\d+$)
|
1672
1673
|
|
1673
1674
|
|
1674
1675
|
===== --case TYPE
|
@@ -1693,7 +1694,7 @@ Date range to show, or a single day to filter date on.
|
|
1693
1694
|
|
1694
1695
|
===== -o|--output FORMAT
|
1695
1696
|
|
1696
|
-
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)
|
1697
1698
|
|
1698
1699
|
[Default Value] None
|
1699
1700
|
|
@@ -1784,7 +1785,7 @@ and "2d" would be interpreted as "two days ago."
|
|
1784
1785
|
===== Options
|
1785
1786
|
===== -o|--output FORMAT
|
1786
1787
|
|
1787
|
-
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)
|
1788
1789
|
|
1789
1790
|
[Default Value] None
|
1790
1791
|
|
@@ -1939,6 +1940,22 @@ List all tags in the current Doing file
|
|
1939
1940
|
|
1940
1941
|
|
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
|
+
|
1942
1959
|
===== -o|--order ORDER
|
1943
1960
|
|
1944
1961
|
Sort order (asc/desc)
|
@@ -1954,6 +1971,14 @@ Section
|
|
1954
1971
|
[Default Value] All
|
1955
1972
|
|
1956
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
|
+
|
1957
1982
|
===== --sort SORT_ORDER
|
1958
1983
|
|
1959
1984
|
Sort by name or count
|
@@ -1962,17 +1987,46 @@ Sort by name or count
|
|
1962
1987
|
[Must Match] (?-mix:^(?:n(?:ame)?|c(?:ount)?)$)
|
1963
1988
|
|
1964
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
|
+
|
1965
1997
|
===== -c|--[no-]counts
|
1966
1998
|
Show count of occurrences
|
1967
1999
|
|
1968
2000
|
|
1969
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
|
+
|
1970
2017
|
==== Command: <tt>template TYPE</tt>
|
1971
2018
|
Output HTML, CSS, and Markdown (ERB) templates for customization
|
1972
2019
|
|
1973
2020
|
Templates are printed to STDOUT for piping to a file.
|
1974
2021
|
Save them and use them in the configuration file under export_templates.
|
1975
2022
|
===== Options
|
2023
|
+
===== -p|--path DIRECTORY
|
2024
|
+
|
2025
|
+
Save template to alternate location
|
2026
|
+
|
2027
|
+
[Default Value] /Users/ttscoff/.config/doing/templates
|
2028
|
+
|
2029
|
+
|
1976
2030
|
===== -c|--[no-]column
|
1977
2031
|
List in single column for completion
|
1978
2032
|
|
@@ -1983,6 +2037,11 @@ List all available templates
|
|
1983
2037
|
|
1984
2038
|
|
1985
2039
|
|
2040
|
+
===== -s|--save
|
2041
|
+
Save template to file instead of STDOUT
|
2042
|
+
|
2043
|
+
|
2044
|
+
|
1986
2045
|
==== Command: <tt>test </tt>
|
1987
2046
|
Test Stuff
|
1988
2047
|
|
@@ -2016,7 +2075,7 @@ Time range to show `doing today --from "12pm to 4pm"`
|
|
2016
2075
|
|
2017
2076
|
===== -o|--output FORMAT
|
2018
2077
|
|
2019
|
-
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)
|
2020
2079
|
|
2021
2080
|
[Default Value] None
|
2022
2081
|
|
@@ -2141,7 +2200,7 @@ Date range to show, or a single day to filter date on.
|
|
2141
2200
|
|
2142
2201
|
===== -o|--output FORMAT
|
2143
2202
|
|
2144
|
-
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)
|
2145
2204
|
|
2146
2205
|
[Default Value] None
|
2147
2206
|
|
@@ -2296,10 +2355,10 @@ Only show items with recorded time intervals
|
|
2296
2355
|
|
2297
2356
|
|
2298
2357
|
==== Command: <tt>yesterday </tt>
|
2358
|
+
List entries from yesterday
|
2359
|
+
|
2299
2360
|
Show only entries with start times within the previous 24 hour period. Use --before, --after, and --from to limit to
|
2300
2361
|
time spans within the day.
|
2301
|
-
|
2302
|
-
|
2303
2362
|
===== Options
|
2304
2363
|
===== --after TIME_STRING
|
2305
2364
|
|
@@ -2324,7 +2383,7 @@ Time range to show, e.g. `doing yesterday --from "1am to 8am"`
|
|
2324
2383
|
|
2325
2384
|
===== -o|--output FORMAT
|
2326
2385
|
|
2327
|
-
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)
|
2328
2387
|
|
2329
2388
|
[Default Value] None
|
2330
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'
|
data/lib/completion/_doing.zsh
CHANGED
@@ -14,6 +14,8 @@ function _doing() {
|
|
14
14
|
'move:Move entries between sections'
|
15
15
|
'autotag:Autotag last entry or filtered entries'
|
16
16
|
'cancel:End last X entries with no time tracked'
|
17
|
+
'changelog:List recent changes in Doing'
|
18
|
+
'changes:List recent changes in Doing'
|
17
19
|
'choose:Select a section to display from a menu'
|
18
20
|
'colors:List available color variables for configuration templates and views'
|
19
21
|
'completion:Generate shell completion scripts'
|
@@ -45,10 +47,11 @@ function _doing() {
|
|
45
47
|
'show:List all entries'
|
46
48
|
'since:List entries since a date'
|
47
49
|
'tag:Add tag(s) to last entry'
|
50
|
+
'tags:List all tags in the current Doing file'
|
48
51
|
'template:Output HTML'
|
49
52
|
'test:Test Stuff'
|
50
53
|
'today:List entries from today'
|
51
|
-
'undo:Undo the last
|
54
|
+
'undo:Undo the last X changes to the Doing file'
|
52
55
|
'view:Display a user-created view'
|
53
56
|
'views:List available custom views'
|
54
57
|
'wiki:Output a tag wiki'
|
@@ -66,21 +69,27 @@ function _doing() {
|
|
66
69
|
args=( )
|
67
70
|
;;
|
68
71
|
again)
|
69
|
-
args=(
|
72
|
+
args=( "(--bool=)--bool=}[Boolean used to combine multiple tags]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-e,--editor}"[Edit duplicated entry with vim before adding]" {-i,--interactive}"[Select item to resume from a menu of matching entries]" "(--in=)--in=}[Add new entry to section]" {-n,--note=}"[Note]" "(--not)--not}[Resume items that *dont* match search/tag filterst* match search/tag filters]" {-s,--section=}"[Get last entry from a specific section]" "(--search=)--search=}[Repeat last entry matching search]" "(--tag=)--tag=}[Repeat last entry matching tags]" {-x,--exact}"[Force exact search string matching]" )
|
70
73
|
;;
|
71
74
|
resume)
|
72
|
-
args=(
|
75
|
+
args=( "(--bool=)--bool=}[Boolean used to combine multiple tags]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-e,--editor}"[Edit duplicated entry with vim before adding]" {-i,--interactive}"[Select item to resume from a menu of matching entries]" "(--in=)--in=}[Add new entry to section]" {-n,--note=}"[Note]" "(--not)--not}[Resume items that *dont* match search/tag filterst* match search/tag filters]" {-s,--section=}"[Get last entry from a specific section]" "(--search=)--search=}[Repeat last entry matching search]" "(--tag=)--tag=}[Repeat last entry matching tags]" {-x,--exact}"[Force exact search string matching]" )
|
73
76
|
;;
|
74
77
|
archive)
|
75
|
-
args=(
|
78
|
+
args=( "(--before=)--before=}[Archive entries older than date]" "(--bool=)--bool=}[Tag boolean]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-k,--keep=}"[How many items to keep]" "(--label)--label}[Label moved items with @from(SECTION_NAME)]" "(--not)--not}[Show items that *dont* match search stringt* match search string]" "(--search=)--search=}[Search filter]" {-t,--to=}"[Move entries to]" "(--tag=)--tag=}[Tag filter]" {-x,--exact}"[Force exact search string matching]" )
|
76
79
|
;;
|
77
80
|
move)
|
78
|
-
args=(
|
81
|
+
args=( "(--before=)--before=}[Archive entries older than date]" "(--bool=)--bool=}[Tag boolean]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-k,--keep=}"[How many items to keep]" "(--label)--label}[Label moved items with @from(SECTION_NAME)]" "(--not)--not}[Show items that *dont* match search stringt* match search string]" "(--search=)--search=}[Search filter]" {-t,--to=}"[Move entries to]" "(--tag=)--tag=}[Tag filter]" {-x,--exact}"[Force exact search string matching]" )
|
79
82
|
;;
|
80
83
|
autotag)
|
81
|
-
args=(
|
84
|
+
args=( "(--bool=)--bool=}[Boolean]" {-c,--count=}"[How many recent entries to autotag]" "(--force)--force}[Dont ask permission to autotag all entries when count is 0t ask permission to autotag all entries when count is 0]" {-i,--interactive}"[Select item(s) to tag from a menu of matching entries]" {-s,--section=}"[Section]" "(--search=)--search=}[Autotag entries matching search filter]" "(--tag=)--tag=}[Autotag the last X entries containing TAG]" {-u,--unfinished}"[Autotag last entry]" )
|
82
85
|
;;
|
83
86
|
cancel)
|
87
|
+
args=( {-a,--archive}"[Archive entries]" "(--bool=)--bool=}[Boolean]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-i,--interactive}"[Select item(s) to cancel from a menu of matching entries]" "(--not)--not}[Finish items that *dont* match search/tag filterst* match search/tag filters]" {-s,--section=}"[Section]" "(--search=)--search=}[Cancel the last X entries matching search filter]" "(--tag=)--tag=}[Cancel the last X entries containing TAG]" {-u,--unfinished}"[Cancel last entry]" {-x,--exact}"[Force exact search string matching]" )
|
88
|
+
;;
|
89
|
+
changelog)
|
90
|
+
args=( )
|
91
|
+
;;
|
92
|
+
changes)
|
84
93
|
args=( )
|
85
94
|
;;
|
86
95
|
choose)
|
@@ -90,115 +99,118 @@ function _doing() {
|
|
90
99
|
args=( )
|
91
100
|
;;
|
92
101
|
completion)
|
93
|
-
args=(
|
102
|
+
args=( {-f,--file=}"[File to write output to]" {-t,--type=}"[Shell to generate for]" )
|
94
103
|
;;
|
95
104
|
config)
|
96
|
-
args=(
|
105
|
+
args=( {-d,--dump}"[DEPRECATED]" {-u,--update}"[DEPRECATED]" )
|
97
106
|
;;
|
98
107
|
done)
|
99
|
-
args=(
|
108
|
+
args=( {-a,--archive}"[Immediately archive the entry]" "(--at=)--at=}[Set finish date to specific date/time]" "(--started=)--started=}[Backdate start date by interval or set to time [4pm|20m|2h|"yesterday noon"]]" "(--date)--date}[Include date]" {-e,--editor}"[Edit entry with vim]" {-n,--note=}"[Include a note]" {-r,--remove}"[Remove @done tag]" {-s,--section=}"[Section]" {-t,--took=}"[Set completion date to start date plus interval]" {-u,--unfinished}"[Finish last entry not already marked @done]" )
|
100
109
|
;;
|
101
110
|
did)
|
102
|
-
args=(
|
111
|
+
args=( {-a,--archive}"[Immediately archive the entry]" "(--at=)--at=}[Set finish date to specific date/time]" "(--started=)--started=}[Backdate start date by interval or set to time [4pm|20m|2h|"yesterday noon"]]" "(--date)--date}[Include date]" {-e,--editor}"[Edit entry with vim]" {-n,--note=}"[Include a note]" {-r,--remove}"[Remove @done tag]" {-s,--section=}"[Section]" {-t,--took=}"[Set completion date to start date plus interval]" {-u,--unfinished}"[Finish last entry not already marked @done]" )
|
103
112
|
;;
|
104
113
|
finish)
|
105
|
-
args=(
|
114
|
+
args=( {-a,--archive}"[Archive entries]" "(--at=)--at=}[Set finish date to specific date/time]" "(--auto)--auto}[Auto-generate finish dates from next entrys start times start time]" {-b,--back=}"[Backdate completed date to date string [4pm|20m|2h|yesterday noon]]" "(--bool=)--bool=}[Boolean]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" "(--date)--date}[Include date]" {-i,--interactive}"[Select item(s) to finish from a menu of matching entries]" "(--not)--not}[Finish items that *dont* match search/tag filterst* match search/tag filters]" {-r,--remove}"[Remove done tag]" {-s,--section=}"[Section]" "(--search=)--search=}[Finish the last X entries matching search filter]" {-t,--took=}"[Set the completed date to the start date plus XX[hmd]]" "(--tag=)--tag=}[Finish the last X entries containing TAG]" {-u,--unfinished}"[Finish last entry]" {-x,--exact}"[Force exact search string matching]" )
|
106
115
|
;;
|
107
116
|
grep)
|
108
|
-
args=(
|
117
|
+
args=( "(--after=)--after=}[Search entries newer than date]" "(--before=)--before=}[Search entries older than date]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" "(--duration)--duration}[Show elapsed time on entries without @done tag]" "(--from=)--from=}[Date range to show]" {-i,--interactive}"[Display an interactive menu of results to perform further operations]" "(--not)--not}[Show items that *dont* match search stringt* match search string]" {-o,--output=}"[Output to export format]" "(--only_timed)--only_timed}[Only show items with recorded time intervals]" {-s,--section=}"[Section]" {-t,--times}"[Show time intervals on @done tasks]" "(--tag_sort=)--tag_sort=}[Sort tags by]" "(--totals)--totals}[Show intervals with totals at the end of output]" {-x,--exact}"[Force exact string matching]" )
|
109
118
|
;;
|
110
119
|
search)
|
111
|
-
args=(
|
120
|
+
args=( "(--after=)--after=}[Search entries newer than date]" "(--before=)--before=}[Search entries older than date]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" "(--duration)--duration}[Show elapsed time on entries without @done tag]" "(--from=)--from=}[Date range to show]" {-i,--interactive}"[Display an interactive menu of results to perform further operations]" "(--not)--not}[Show items that *dont* match search stringt* match search string]" {-o,--output=}"[Output to export format]" "(--only_timed)--only_timed}[Only show items with recorded time intervals]" {-s,--section=}"[Section]" {-t,--times}"[Show time intervals on @done tasks]" "(--tag_sort=)--tag_sort=}[Sort tags by]" "(--totals)--totals}[Show intervals with totals at the end of output]" {-x,--exact}"[Force exact string matching]" )
|
112
121
|
;;
|
113
122
|
help)
|
114
123
|
args=( )
|
115
124
|
;;
|
116
125
|
import)
|
117
|
-
args=(
|
126
|
+
args=( "(--after=)--after=}[Import entries newer than date]" "(--autotag)--autotag}[Autotag entries]" "(--before=)--before=}[Import entries older than date]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-f,--from=}"[Date range to import]" "(--not)--not}[Import items that *dont* match search/tag/date filterst* match search/tag/date filters]" "(--only_timed)--only_timed}[Only import items with recorded time intervals]" "(--overlap)--overlap}[Allow entries that overlap existing times]" "(--prefix=)--prefix=}[Prefix entries with]" {-s,--section=}"[Target section]" "(--search=)--search=}[Only import items matching search]" "(--tag=)--tag=}[Tag all imported entries]" "(--type=)--type=}[Import type]" {-x,--exact}"[Force exact search string matching]" )
|
118
127
|
;;
|
119
128
|
last)
|
120
|
-
args=(
|
129
|
+
args=( "(--bool=)--bool=}[Tag boolean]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" "(--duration)--duration}[Show elapsed time if entry is not tagged @done]" {-e,--editor}"[Edit entry with vim]" "(--not)--not}[Show items that *dont* match search string or tag filtert* match search string or tag filter]" {-s,--section=}"[Specify a section]" "(--search=)--search=}[Search filter]" "(--tag=)--tag=}[Tag filter]" {-x,--exact}"[Force exact search string matching]" )
|
121
130
|
;;
|
122
131
|
later)
|
123
|
-
args=(
|
132
|
+
args=( {-b,--back=}"[Backdate start time to date string [4pm|20m|2h|yesterday noon]]" {-e,--editor}"[Edit entry with vim]" {-n,--note=}"[Note]" )
|
124
133
|
;;
|
125
134
|
mark)
|
126
|
-
args=(
|
135
|
+
args=( "(--bool=)--bool=}[Boolean]" {-c,--count=}"[How many recent entries to tag]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-d,--date}"[Include current date/time with tag]" "(--force)--force}[Dont ask permission to flag all entries when count is 0t ask permission to flag all entries when count is 0]" {-i,--interactive}"[Select item(s) to flag from a menu of matching entries]" "(--not)--not}[Flag items that *dont* match search/tag/date filterst* match search/tag/date filters]" {-r,--remove}"[Remove flag]" {-s,--section=}"[Section]" "(--search=)--search=}[Flag the last entry matching search filter]" "(--tag=)--tag=}[Flag the last entry containing TAG]" {-u,--unfinished}"[Flag last entry]" {-x,--exact}"[Force exact search string matching]" )
|
127
136
|
;;
|
128
137
|
flag)
|
129
|
-
args=(
|
138
|
+
args=( "(--bool=)--bool=}[Boolean]" {-c,--count=}"[How many recent entries to tag]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-d,--date}"[Include current date/time with tag]" "(--force)--force}[Dont ask permission to flag all entries when count is 0t ask permission to flag all entries when count is 0]" {-i,--interactive}"[Select item(s) to flag from a menu of matching entries]" "(--not)--not}[Flag items that *dont* match search/tag/date filterst* match search/tag/date filters]" {-r,--remove}"[Remove flag]" {-s,--section=}"[Section]" "(--search=)--search=}[Flag the last entry matching search filter]" "(--tag=)--tag=}[Flag the last entry containing TAG]" {-u,--unfinished}"[Flag last entry]" {-x,--exact}"[Force exact search string matching]" )
|
130
139
|
;;
|
131
140
|
meanwhile)
|
132
|
-
args=(
|
141
|
+
args=( {-a,--archive}"[Archive previous @meanwhile entry]" {-b,--back=}"[Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]]" {-e,--editor}"[Edit entry with vim]" {-n,--note=}"[Note]" {-s,--section=}"[Section]" )
|
133
142
|
;;
|
134
143
|
note)
|
135
|
-
args=(
|
144
|
+
args=( "(--bool=)--bool=}[Boolean]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-e,--editor}"[Edit entry with vim]" {-i,--interactive}"[Select item for new note from a menu of matching entries]" "(--not)--not}[Add note to item that *doesnt* match search/tag filterst* match search/tag filters]" {-r,--remove}"[Replace/Remove last entrys notes note]" {-s,--section=}"[Section]" "(--search=)--search=}[Add/remove note from last entry matching search filter]" "(--tag=)--tag=}[Add/remove note from last entry matching tag]" {-x,--exact}"[Force exact search string matching]" )
|
136
145
|
;;
|
137
146
|
now)
|
138
|
-
args=(
|
147
|
+
args=( "(--started=)--started=}[Backdate start time [4pm|20m|2h|"yesterday noon"]]" {-e,--editor}"[Edit entry with vim]" {-f,--finish_last}"[Timed entry]" {-n,--note=}"[Include a note]" {-s,--section=}"[Section]" )
|
139
148
|
;;
|
140
149
|
next)
|
141
|
-
args=(
|
150
|
+
args=( "(--started=)--started=}[Backdate start time [4pm|20m|2h|"yesterday noon"]]" {-e,--editor}"[Edit entry with vim]" {-f,--finish_last}"[Timed entry]" {-n,--note=}"[Include a note]" {-s,--section=}"[Section]" )
|
142
151
|
;;
|
143
152
|
on)
|
144
|
-
args=(
|
153
|
+
args=( "(--duration)--duration}[Show elapsed time on entries without @done tag]" {-o,--output=}"[Output to export format]" {-s,--section=}"[Section]" {-t,--times}"[Show time intervals on @done tasks]" "(--tag_sort=)--tag_sort=}[Sort tags by]" "(--totals)--totals}[Show time totals at the end of output]" )
|
145
154
|
;;
|
146
155
|
open)
|
147
|
-
args=(
|
156
|
+
args=( {-a,--app=}"[Open with app name]" {-b,--bundle_id=}"[Open with app bundle id]" {-e,--editor=}"[Open with editor command]" )
|
148
157
|
;;
|
149
158
|
plugins)
|
150
|
-
args=(
|
159
|
+
args=( {-c,--column}"[List in single column for completion]" {-t,--type=}"[List plugins of type]" )
|
151
160
|
;;
|
152
161
|
recent)
|
153
|
-
args=(
|
162
|
+
args=( "(--duration)--duration}[Show elapsed time on entries without @done tag]" {-i,--interactive}"[Select from a menu of matching entries to perform additional operations]" {-s,--section=}"[Section]" {-t,--times}"[Show time intervals on @done tasks]" "(--tag_sort=)--tag_sort=}[Sort tags by]" "(--totals)--totals}[Show intervals with totals at the end of output]" )
|
154
163
|
;;
|
155
164
|
reset)
|
156
|
-
args=(
|
165
|
+
args=( "(--bool=)--bool=}[Boolean]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-i,--interactive}"[Select from a menu of matching entries]" "(--not)--not}[Reset items that *dont* match search/tag filterst* match search/tag filters]" {-r,--resume}"[Resume entry]" {-s,--section=}"[Limit search to section]" "(--search=)--search=}[Reset last entry matching search filter]" "(--tag=)--tag=}[Reset last entry matching tag]" {-x,--exact}"[Force exact search string matching]" )
|
157
166
|
;;
|
158
167
|
begin)
|
159
|
-
args=(
|
168
|
+
args=( "(--bool=)--bool=}[Boolean]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-i,--interactive}"[Select from a menu of matching entries]" "(--not)--not}[Reset items that *dont* match search/tag filterst* match search/tag filters]" {-r,--resume}"[Resume entry]" {-s,--section=}"[Limit search to section]" "(--search=)--search=}[Reset last entry matching search filter]" "(--tag=)--tag=}[Reset last entry matching tag]" {-x,--exact}"[Force exact search string matching]" )
|
160
169
|
;;
|
161
170
|
rotate)
|
162
|
-
args=(
|
171
|
+
args=( "(--before=)--before=}[Rotate entries older than date]" "(--bool=)--bool=}[Tag boolean]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-k,--keep=}"[How many items to keep in each section]" "(--not)--not}[Rotate items that *dont* match search string or tag filtert* match search string or tag filter]" {-s,--section=}"[Section to rotate]" "(--search=)--search=}[Search filter]" "(--tag=)--tag=}[Tag filter]" {-x,--exact}"[Force exact search string matching]" )
|
163
172
|
;;
|
164
173
|
sections)
|
165
|
-
args=(
|
174
|
+
args=( {-c,--column}"[List in single column]" )
|
166
175
|
;;
|
167
176
|
select)
|
168
|
-
args=(
|
177
|
+
args=( {-a,--archive}"[Archive selected items]" "(--after=)--after=}[Select from entries newer than date]" "(--resume)--resume}[Copy selection as a new entry with current time and no @done tag]" "(--before=)--before=}[Select from entries older than date]" {-c,--cancel}"[Cancel selected items]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-d,--delete}"[Delete selected items]" {-e,--editor}"[Edit selected item(s)]" {-f,--finish}"[Add @done with current time to selected item(s)]" "(--flag)--flag}[Add flag to selected item(s)]" "(--force)--force}[Perform action without confirmation]" "(--from=)--from=}[Date range to show]" {-m,--move=}"[Move selected items to section]" "(--menu)--menu}[Use --no-menu to skip the interactive menu]" "(--not)--not}[Select items that *dont* match search/tag filterst* match search/tag filters]" {-o,--output=}"[Output entries to format]" "(--search=)--search=}[Initial search query for filtering]" {-r,--remove}"[Reverse -c]" {-s,--section=}"[Select from a specific section]" "(--save_to=)--save_to=}[Save selected entries to file using --output format]" {-t,--tag=}"[Tag selected entries]" {-x,--exact}"[Force exact search string matching]" )
|
169
178
|
;;
|
170
179
|
show)
|
171
|
-
args=(
|
180
|
+
args=( {-a,--age=}"[Age]" "(--after=)--after=}[Show entries newer than date]" {-b,--bool=}"[Tag boolean]" "(--before=)--before=}[Show entries older than date]" {-c,--count=}"[Max count to show]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" "(--duration)--duration}[Show elapsed time on entries without @done tag]" "(--from=)--from=}[Date range to show]" {-i,--interactive}"[Select from a menu of matching entries to perform additional operations]" {-m,--menu}"[Select section or tag to display from a menu]" "(--not)--not}[Show items that *dont* match search/tag/date filterst* match search/tag/date filters]" {-o,--output=}"[Output to export format]" "(--only_timed)--only_timed}[Only show items with recorded time intervals]" {-s,--sort=}"[Sort order]" "(--search=)--search=}[Search filter]" {-t,--times}"[Show time intervals on @done tasks]" "(--tag=)--tag=}[Tag filter]" "(--tag_order=)--tag_order=}[Tag sort direction]" "(--tag_sort=)--tag_sort=}[Sort tags by]" "(--totals)--totals}[Show intervals with totals at the end of output]" {-x,--exact}"[Force exact search string matching]" )
|
172
181
|
;;
|
173
182
|
since)
|
174
|
-
args=(
|
183
|
+
args=( "(--duration)--duration}[Show elapsed time on entries without @done tag]" {-o,--output=}"[Output to export format]" {-s,--section=}"[Section]" {-t,--times}"[Show time intervals on @done tasks]" "(--tag_sort=)--tag_sort=}[Sort tags by]" "(--totals)--totals}[Show time totals at the end of output]" )
|
175
184
|
;;
|
176
185
|
tag)
|
177
|
-
args=(
|
186
|
+
args=( {-a,--autotag}"[Autotag entries based on autotag configuration in ~/]" "(--bool=)--bool=}[Boolean]" {-c,--count=}"[How many recent entries to tag]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-d,--date}"[Include current date/time with tag]" "(--force)--force}[Dont ask permission to tag all entries when count is 0t ask permission to tag all entries when count is 0]" {-i,--interactive}"[Select item(s) to tag from a menu of matching entries]" "(--not)--not}[Tag items that *dont* match search/tag filterst* match search/tag filters]" {-r,--remove}"[Remove given tag(s)]" "(--regex)--regex}[Interpret tag string as regular expression]" "(--rename=)--rename=}[Replace existing tag with tag argument]" {-s,--section=}"[Section]" "(--search=)--search=}[Tag entries matching search filter]" "(--tag=)--tag=}[Tag the last X entries containing TAG]" {-u,--unfinished}"[Tag last entry]" {-x,--exact}"[Force exact search string matching]" )
|
187
|
+
;;
|
188
|
+
tags)
|
189
|
+
args=( "(--bool=)--bool=}[Boolean used to combine multiple tags]" {-c,--counts}"[Show count of occurrences]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" {-i,--interactive}"[Select items to scan from a menu of matching entries]" "(--not)--not}[Get tags from items that *dont* match search/tag filterst* match search/tag filters]" {-o,--order=}"[Sort order]" {-s,--section=}"[Section]" "(--search=)--search=}[Get tags for items matching search]" "(--sort=)--sort=}[Sort by name or count]" "(--tag=)--tag=}[Get tags for entries matching tags]" {-x,--exact}"[Force exact search string matching]" )
|
178
190
|
;;
|
179
191
|
template)
|
180
|
-
args=(
|
192
|
+
args=( {-c,--column}"[List in single column for completion]" {-l,--list}"[List all available templates]" {-p,--path=}"[Save template to alternate location]" {-s,--save}"[Save template to file instead of STDOUT]" )
|
181
193
|
;;
|
182
194
|
test)
|
183
195
|
args=( )
|
184
196
|
;;
|
185
197
|
today)
|
186
|
-
args=(
|
198
|
+
args=( "(--after=)--after=}[View entries after specified time]" "(--before=)--before=}[View entries before specified time]" "(--duration)--duration}[Show elapsed time on entries without @done tag]" "(--from=)--from=}[Time range to show `doing today --from "12pm to 4pm"`]" {-o,--output=}"[Output to export format]" {-s,--section=}"[Specify a section]" {-t,--times}"[Show time intervals on @done tasks]" "(--tag_sort=)--tag_sort=}[Sort tags by]" "(--totals)--totals}[Show time totals at the end of output]" )
|
187
199
|
;;
|
188
200
|
undo)
|
189
|
-
args=(
|
201
|
+
args=( {-f,--file=}"[Specify alternate doing file]" {-i,--interactive}"[Select from recent backups]" {-p,--prune=}"[Remove old backups]" {-r,--redo}"[Redo last undo]" )
|
190
202
|
;;
|
191
203
|
view)
|
192
|
-
args=(
|
204
|
+
args=( "(--after=)--after=}[View entries newer than date]" {-b,--bool=}"[Tag boolean]" "(--before=)--before=}[View entries older than date]" {-c,--count=}"[Count to display]" "(--case=)--case=}[Case sensitivity for search string matching [(c)ase-sensitive]" "(--color)--color}[Include colors in output]" "(--duration)--duration}[Show elapsed time on entries without @done tag]" "(--from=)--from=}[Date range to show]" {-i,--interactive}"[Select from a menu of matching entries to perform additional operations]" "(--not)--not}[Show items that *dont* match search stringt* match search string]" {-o,--output=}"[Output to export format]" "(--only_timed)--only_timed}[Only show items with recorded time intervals]" {-s,--section=}"[Section]" "(--search=)--search=}[Search filter]" {-t,--times}"[Show time intervals on @done tasks]" "(--tag=)--tag=}[Tag filter]" "(--tag_order=)--tag_order=}[Tag sort direction]" "(--tag_sort=)--tag_sort=}[Sort tags by]" "(--totals)--totals}[Show intervals with totals at the end of output]" {-x,--exact}"[Force exact search string matching]" )
|
193
205
|
;;
|
194
206
|
views)
|
195
|
-
args=(
|
207
|
+
args=( {-c,--column}"[List in single column]" )
|
196
208
|
;;
|
197
209
|
wiki)
|
198
|
-
args=(
|
210
|
+
args=( "(--after=)--after=}[Include entries newer than date]" {-b,--bool=}"[Tag boolean]" "(--before=)--before=}[Include entries older than date]" {-f,--from=}"[Date range to include]" "(--only_timed)--only_timed}[Only show items with recorded time intervals]" {-s,--section=}"[Section to rotate]" "(--search=)--search=}[Search filter]" "(--tag=)--tag=}[Tag filter]" )
|
199
211
|
;;
|
200
212
|
yesterday)
|
201
|
-
args=(
|
213
|
+
args=( "(--after=)--after=}[View entries after specified time]" "(--before=)--before=}[View entries before specified time]" "(--duration)--duration}[Show elapsed time on entries without @done tag]" "(--from=)--from=}[Time range to show]" {-o,--output=}"[Output to export format]" {-s,--section=}"[Specify a section]" {-t,--times}"[Show time intervals on @done tasks]" "(--tag_order=)--tag_order=}[Tag sort direction]" "(--tag_sort=)--tag_sort=}[Sort tags by]" "(--totals)--totals}[Show time totals at the end of output]" )
|
202
214
|
;;
|
203
215
|
esac
|
204
216
|
|
data/lib/completion/doing.bash
CHANGED
@@ -276,9 +276,9 @@ local words=$(doing sections)
|
|
276
276
|
IFS="$OLD_IFS"
|
277
277
|
|
278
278
|
if [[ "$token" == --* ]]; then
|
279
|
-
COMPREPLY=( $( compgen -W '--age --after --bool --before --count --case --duration --from --interactive --not --output --only_timed --sort --search --times --tag --tag_order --tag_sort --totals --exact' -- $token ) )
|
279
|
+
COMPREPLY=( $( compgen -W '--age --after --bool --before --count --case --duration --from --interactive --menu --not --output --only_timed --sort --search --times --tag --tag_order --tag_sort --totals --exact' -- $token ) )
|
280
280
|
elif [[ "$token" == -* ]]; then
|
281
|
-
COMPREPLY=( $( compgen -W '-a -b -c -i -o -s -t -x --age --after --bool --before --count --case --duration --from --interactive --not --output --only_timed --sort --search --times --tag --tag_order --tag_sort --totals --exact' -- $token ) )
|
281
|
+
COMPREPLY=( $( compgen -W '-a -b -c -i -m -o -s -t -x --age --after --bool --before --count --case --duration --from --interactive --menu --not --output --only_timed --sort --search --times --tag --tag_order --tag_sort --totals --exact' -- $token ) )
|
282
282
|
else
|
283
283
|
local nocasematchWasOff=0
|
284
284
|
shopt nocasematch >/dev/null || nocasematchWasOff=1
|
@@ -318,12 +318,22 @@ _doing_tag() {
|
|
318
318
|
fi
|
319
319
|
}
|
320
320
|
|
321
|
+
_doing_tags() {
|
322
|
+
|
323
|
+
if [[ "$token" == --* ]]; then
|
324
|
+
COMPREPLY=( $( compgen -W '--bool --counts --case --interactive --not --order --section --search --sort --tag --exact' -- $token ) )
|
325
|
+
elif [[ "$token" == -* ]]; then
|
326
|
+
COMPREPLY=( $( compgen -W '-c -i -o -s -x --bool --counts --case --interactive --not --order --section --search --sort --tag --exact' -- $token ) )
|
327
|
+
|
328
|
+
fi
|
329
|
+
}
|
330
|
+
|
321
331
|
_doing_template() {
|
322
332
|
|
323
333
|
if [[ "$token" == --* ]]; then
|
324
|
-
COMPREPLY=( $( compgen -W '--column --list' -- $token ) )
|
334
|
+
COMPREPLY=( $( compgen -W '--column --list --path --save' -- $token ) )
|
325
335
|
elif [[ "$token" == -* ]]; then
|
326
|
-
COMPREPLY=( $( compgen -W '-c -l --column --list' -- $token ) )
|
336
|
+
COMPREPLY=( $( compgen -W '-c -l -p -s --column --list --path --save' -- $token ) )
|
327
337
|
|
328
338
|
fi
|
329
339
|
}
|
@@ -341,9 +351,9 @@ _doing_today() {
|
|
341
351
|
_doing_undo() {
|
342
352
|
|
343
353
|
if [[ "$token" == --* ]]; then
|
344
|
-
COMPREPLY=( $( compgen -W '--file' -- $token ) )
|
354
|
+
COMPREPLY=( $( compgen -W '--file --interactive --prune --redo' -- $token ) )
|
345
355
|
elif [[ "$token" == -* ]]; then
|
346
|
-
COMPREPLY=( $( compgen -W '-f --file' -- $token ) )
|
356
|
+
COMPREPLY=( $( compgen -W '-f -i -p -r --file --interactive --prune --redo' -- $token ) )
|
347
357
|
|
348
358
|
fi
|
349
359
|
}
|
@@ -441,6 +451,7 @@ _doing()
|
|
441
451
|
elif [[ $last =~ (show) ]]; then _doing_show
|
442
452
|
elif [[ $last =~ (since) ]]; then _doing_since
|
443
453
|
elif [[ $last =~ (tag) ]]; then _doing_tag
|
454
|
+
elif [[ $last =~ (tags) ]]; then _doing_tags
|
444
455
|
elif [[ $last =~ (template) ]]; then _doing_template
|
445
456
|
elif [[ $last =~ (today) ]]; then _doing_today
|
446
457
|
elif [[ $last =~ (undo) ]]; then _doing_undo
|