doing 2.1.28 → 2.1.32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/.irbrc +1 -0
  3. data/CHANGELOG.md +4962 -0
  4. data/Dockerfile-2.6 +3 -1
  5. data/Dockerfile-2.7 +4 -2
  6. data/Dockerfile-3.0 +3 -1
  7. data/Gemfile.lock +2 -67
  8. data/README.md +1 -1
  9. data/bash_profile +13 -0
  10. data/bin/commands/again.rb +1 -1
  11. data/bin/commands/archive.rb +3 -3
  12. data/bin/commands/cancel.rb +1 -1
  13. data/bin/commands/changes.rb +24 -14
  14. data/bin/commands/commands.rb +8 -8
  15. data/bin/commands/completion.rb +61 -19
  16. data/bin/commands/config.rb +20 -17
  17. data/bin/commands/done.rb +1 -1
  18. data/bin/commands/flag.rb +1 -1
  19. data/bin/commands/grep.rb +5 -5
  20. data/bin/commands/last.rb +1 -1
  21. data/bin/commands/meanwhile.rb +1 -1
  22. data/bin/commands/now.rb +1 -1
  23. data/bin/commands/on.rb +1 -1
  24. data/bin/commands/open.rb +4 -4
  25. data/bin/commands/recent.rb +4 -4
  26. data/bin/commands/show.rb +8 -8
  27. data/bin/commands/since.rb +1 -1
  28. data/bin/commands/tag_dir.rb +27 -3
  29. data/bin/commands/today.rb +1 -1
  30. data/bin/commands/view.rb +3 -3
  31. data/bin/commands/yesterday.rb +2 -2
  32. data/bin/doing +26 -135
  33. data/docs/doc/Array.html +1 -1
  34. data/docs/doc/BooleanTermParser/Clause.html +1 -1
  35. data/docs/doc/BooleanTermParser/Operator.html +1 -1
  36. data/docs/doc/BooleanTermParser/Query.html +1 -1
  37. data/docs/doc/BooleanTermParser/QueryParser.html +1 -1
  38. data/docs/doc/BooleanTermParser/QueryTransformer.html +1 -1
  39. data/docs/doc/BooleanTermParser.html +1 -1
  40. data/docs/doc/Doing/Color.html +1 -1
  41. data/docs/doc/Doing/Completion.html +324 -4
  42. data/docs/doc/Doing/Configuration.html +3 -3
  43. data/docs/doc/Doing/Errors/DoingNoTraceError.html +1 -1
  44. data/docs/doc/Doing/Errors/DoingRuntimeError.html +1 -1
  45. data/docs/doc/Doing/Errors/DoingStandardError.html +1 -1
  46. data/docs/doc/Doing/Errors/EmptyInput.html +1 -1
  47. data/docs/doc/Doing/Errors/NoResults.html +1 -1
  48. data/docs/doc/Doing/Errors/PluginException.html +1 -1
  49. data/docs/doc/Doing/Errors/UserCancelled.html +1 -1
  50. data/docs/doc/Doing/Errors/WrongCommand.html +1 -1
  51. data/docs/doc/Doing/Errors.html +1 -1
  52. data/docs/doc/Doing/Hooks.html +1 -1
  53. data/docs/doc/Doing/Item.html +125 -1
  54. data/docs/doc/Doing/Items.html +1 -1
  55. data/docs/doc/Doing/LogAdapter.html +1 -1
  56. data/docs/doc/Doing/Note.html +109 -3
  57. data/docs/doc/Doing/Pager.html +1 -1
  58. data/docs/doc/Doing/Plugins.html +1 -1
  59. data/docs/doc/Doing/Prompt.html +1 -1
  60. data/docs/doc/Doing/Section.html +1 -1
  61. data/docs/doc/Doing/TemplateString.html +1 -1
  62. data/docs/doc/Doing/Types.html +1 -1
  63. data/docs/doc/Doing/Util/Backup.html +1 -1
  64. data/docs/doc/Doing/Util.html +1 -1
  65. data/docs/doc/Doing/WWID.html +6 -6
  66. data/docs/doc/Doing.html +2 -2
  67. data/docs/doc/FalseClass.html +1 -1
  68. data/docs/doc/GLI/Commands/Help.html +1 -1
  69. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
  70. data/docs/doc/GLI/Commands.html +1 -1
  71. data/docs/doc/GLI.html +1 -1
  72. data/docs/doc/Hash.html +1 -1
  73. data/docs/doc/Object.html +1 -1
  74. data/docs/doc/PhraseParser/Operator.html +1 -1
  75. data/docs/doc/PhraseParser/PhraseClause.html +1 -1
  76. data/docs/doc/PhraseParser/Query.html +1 -1
  77. data/docs/doc/PhraseParser/QueryParser.html +1 -1
  78. data/docs/doc/PhraseParser/QueryTransformer.html +1 -1
  79. data/docs/doc/PhraseParser/TermClause.html +1 -1
  80. data/docs/doc/PhraseParser.html +1 -1
  81. data/docs/doc/Status.html +1 -1
  82. data/docs/doc/String.html +1 -1
  83. data/docs/doc/Symbol.html +1 -1
  84. data/docs/doc/Time.html +1 -1
  85. data/docs/doc/TrueClass.html +1 -1
  86. data/docs/doc/_index.html +3 -1
  87. data/docs/doc/file.README.html +2 -2
  88. data/docs/doc/index.html +2 -2
  89. data/docs/doc/method_list.html +337 -241
  90. data/docs/doc/top-level-namespace.html +105 -1
  91. data/docs/index.md +1 -1
  92. data/doing.gemspec +24 -23
  93. data/doing.rdoc +43 -41
  94. data/example_plugin.rb +7 -5
  95. data/inputrc +57 -0
  96. data/lib/completion/_doing.zsh +4 -8
  97. data/lib/completion/doing.fish +4 -8
  98. data/lib/doing/add_options.rb +117 -0
  99. data/lib/doing/array/array.rb +16 -0
  100. data/lib/doing/changelog/changes.rb +23 -6
  101. data/lib/doing/changelog/version.rb +11 -3
  102. data/lib/doing/completion/bash_completion.rb +12 -51
  103. data/lib/doing/completion/fish_completion.rb +16 -52
  104. data/lib/doing/completion/zsh_completion.rb +12 -51
  105. data/lib/doing/completion.rb +203 -17
  106. data/lib/doing/configuration.rb +12 -6
  107. data/lib/doing/item.rb +21 -3
  108. data/lib/doing/items.rb +5 -5
  109. data/lib/doing/note.rb +24 -8
  110. data/lib/doing/plugins/export/dayone_export.rb +8 -6
  111. data/lib/doing/plugins/export/html_export.rb +4 -4
  112. data/lib/doing/plugins/export/json_export.rb +19 -20
  113. data/lib/doing/plugins/export/markdown_export.rb +2 -2
  114. data/lib/doing/plugins/export/template_export.rb +4 -4
  115. data/lib/doing/plugins/import/calendar_import.rb +1 -1
  116. data/lib/doing/plugins/import/doing_import.rb +1 -1
  117. data/lib/doing/plugins/import/timing_import.rb +1 -1
  118. data/lib/doing/section.rb +1 -1
  119. data/lib/doing/string/highlight.rb +3 -4
  120. data/lib/doing/string/string.rb +8 -0
  121. data/lib/doing/util.rb +1 -1
  122. data/lib/doing/util_backup.rb +12 -12
  123. data/lib/doing/version.rb +1 -1
  124. data/lib/doing/wwid.rb +75 -76
  125. data/lib/doing.rb +58 -0
  126. data/lib/examples/commands/wiki.rb +27 -19
  127. data/lib/helpers/threaded_tests.rb +2 -0
  128. data/scripts/setting_replace.rb +11 -0
  129. metadata +107 -103
  130. data/.yardoc/checksums +0 -29
  131. data/.yardoc/complete +0 -0
  132. data/.yardoc/object_types +0 -0
  133. data/.yardoc/objects/root.dat +0 -0
  134. data/.yardoc/proxy_types +0 -0
  135. data/lib/completion/doing.bash +0 -504
data/CHANGELOG.md CHANGED
@@ -1,3 +1,4965 @@
1
+ ### 2.1.32
2
+
3
+ 2022-02-18 08:34
4
+
5
+ #### NEW
6
+
7
+ - `doing config set --local` flag to force updates to local .doingrc, creating if it doesn't exist, and bypassing menu selection
8
+
9
+ #### IMPROVED
10
+
11
+ - `doing tag_dir` will not allow duplicate tags or tags that are already applied by a config higher up the hierarchy
12
+ - `doing tag_dir` will force updates to .doingrc in the current directory rather than offering a menu
13
+
14
+ #### FIXED
15
+
16
+ - When running without subcommand, e.g. `doing this thing`, the first word was being lost
17
+ - Remove blank lines when running `doing changes --changes --md` (output changes only in Markdown format)
18
+
19
+ ### 2.1.31
20
+
21
+ 2022-02-17 12:59
22
+
23
+ #### NEW
24
+
25
+ - `doing completion install SHELL` will copy the default completion scripts to your ~/.local/share/doing folder and offer to symlink them to autoload directories. These scripts are generated with each release but will not include any custom commands or plugins in the completions.
26
+ - `doing completion` now uses subcommands, `generate` and `install`. The install command will write default scripts to ~/.local/share/doing/completion and link them into the appropriate autoload directory for the shell. The generate command will create new scripts that include any custom commands and plugins.
27
+ - Convenience methods for plugins getting and setting configuration options using dot key paths (`Doing.setting('plugins.myplugin.setting')` and `Doing.set('plugins.myplugin.setting', value)`)
28
+
29
+ #### IMPROVED
30
+
31
+ - When generating completion scripts using `doing completion --file FILE_PATH`, if the file specified is not in an auto-load directory for the shell type, offer to symlink the output to an appropriate directory
32
+ - Update examples in `doing help completion` and its subcommands
33
+ - Move in-memory configuration into a module variable so it can be persisted/accessed outside of a WWID object using `Doing.config`
34
+ - Clean up/update `wiki` example command
35
+
36
+ #### FIXED
37
+
38
+ - Don't output empty notes as empty brackets in JSON output (also fixes the LaunchBar view of recent entries)
39
+ - Error in `--back` flag for `doing again`
40
+ - Don't try to finish items already marked @done in `doing again`
41
+ - Generating scripts using `doing completion` would fail if the terminal running it was narrow enough to wrap help output
42
+
43
+ ### 2.1.29
44
+
45
+ 2022-02-14 12:42
46
+
47
+ #### IMPROVED
48
+
49
+ - `doing changes --interactive` will load up a changelog viewer using fzf. Because it makes me happy, that's why.
50
+
51
+ ### 2.1.28
52
+
53
+ 2022-02-14 11:39
54
+
55
+ #### FIXED
56
+
57
+ - Lines merging in `doing changes --changes` output
58
+
59
+ ### 2.1.27
60
+
61
+ 2022-02-14 06:04
62
+
63
+ #### NEW
64
+
65
+ - `doing finish --update` will overwrite any existing @done tag with a new date (current time or set with `--at` or `--back`)
66
+
67
+ #### IMPROVED
68
+
69
+ - Code refactoring and cleanup
70
+ - Include release dates in `doing changes` output when available
71
+ - Allow various naming conventions for %color strings in templates. Now `boldwhite`, `brightwhite`, `bg_bold_cyan`, and `bold_bg_cyan` all work (for example)
72
+ - Common flags (e.g. --search, --tag) found on multiple commands consolidated and help descriptions matched
73
+ - `commands_accepting` now accepts multiple arguments and a `--bool` flag
74
+ - `changes` command can now output changes only (no version numbers) and defaults to raw Markdown if not a TTY or the `--md` flag is used
75
+ - `doing archive` now accepts `--after` and `--from` date filters
76
+
77
+ #### FIXED
78
+
79
+ - Some flag descriptions in help
80
+ - Editor detection
81
+
82
+ ### 2.1.26
83
+
84
+ 2022-01-23 16:14
85
+
86
+ #### NEW
87
+
88
+ - Use plugins.hidden_commands in configuration to disable any command (array of command names). Note that some commands use aliases and the first name should be used.
89
+ - `doing commands [add|remove]` allows interactive enabling and disabling of default and custom commands
90
+
91
+ #### IMPROVED
92
+
93
+ - Moved all commands into separate files for management
94
+
95
+ #### FIXED
96
+
97
+ - Changelog command regex too greedy when parsing changelog
98
+
99
+ ### 2.1.25
100
+
101
+ 2022-01-23 09:25
102
+
103
+ ### 2.1.24
104
+
105
+ 2022-01-22 17:27
106
+
107
+ #### IMPROVED
108
+
109
+ - Minor update to Fish completion script
110
+
111
+ #### FIXED
112
+
113
+ - Changelog formatting issue
114
+
115
+ ### 2.1.23
116
+
117
+ 2022-01-22 15:52
118
+
119
+ #### NEW
120
+
121
+ - All display commands (except view) now accept `--config_template TEMPLATE_KEY` to override that commands default template.
122
+ - Display commands accept `--template`, which takes a template string containing %placeholders and overrides the commands default template output. Affects grep, last, on, recent, show, since, today, yesterday
123
+
124
+ #### IMPROVED
125
+
126
+ - With complete examples in the help output for most commands, `doing help` almost always requires scrolling up. It now automatically paginates using your system $PAGER (or best detected option).
127
+ - `doing tags` takes a MAX_COUNT argument to limit results when searching
128
+ - `doing tags --line` flag to output tags in a single line
129
+ - Mostly for my own use, `doing changes` (which views the changelog) now accepts `--lookup VERSION` and `--search SEARCH_PATTERN`
130
+ - `doing changes --lookup` accepts `"< 2.1 > 2.0"`, `"2.1.10-2.2"`, a specific version, or a version number with wildcards
131
+ - When registering hooks, you can pass an array to register a block for multiple events, assuming the events provide the same block arguments (like post_entry_added and post_entry_updated)
132
+
133
+ #### FIXED
134
+
135
+ - Running `--tag "@doing"` wouldn't work where `--tag "doing"` would. Now properly ignoring @ symbols
136
+
137
+ ### 2.1.22
138
+
139
+ 2022-01-21 14:53
140
+
141
+ ### 2.1.21
142
+
143
+ 2022-01-20 12:05
144
+
145
+ #### FIXED
146
+
147
+ - Custom types not available to custom commands
148
+
149
+ ### 2.1.20
150
+
151
+ 2022-01-20 11:49
152
+
153
+ #### NEW
154
+
155
+ - Autotag option for interactive `doing select` menu
156
+ - (Breaking change) Made the later command an optional plugin, see wiki for how to install (and create) custom commands
157
+ - Config setting doing_file_sort (asc or desc) determines the sort order of entries in the actual Doing file. Has no effect on other operations, just allows you to store the file with newest entries at top (desc) or bottom (asc).
158
+
159
+ #### IMPROVED
160
+
161
+ - Autotag improvements
162
+ - If doing is run without a command but with arguments, execute it as if you'd run `doing now`, passing the arguments to that. So you can just write "doing this thing" instead of "doing now this thing", as long as the first word of the arguments is not a recognized command.
163
+
164
+ #### FIXED
165
+
166
+ - `doing again` should only mark the original repeating entry @done, not search for the last unfinished entry
167
+ - Error when using `doing finish --auto`
168
+ - `doing on wed` when today is wednesday not returning results
169
+ - Using `config set` with a false value deleted the key from config
170
+ - `config set` with true or false value was inserting a quoted string
171
+ - Entries were not being sorted (at all) within sections when writing the Doing file
172
+
173
+ ### 2.1.19
174
+
175
+ 2022-01-18 08:40
176
+
177
+ #### FIXED
178
+
179
+ - Search highlighting error with some pattern searches
180
+ - Reverse sort of items in menu from `--interactive` flags
181
+ - Nil error when `--interactive` was called without search results
182
+
183
+ ### 2.1.18
184
+
185
+ Build automation test
186
+
187
+ ### 2.1.17
188
+
189
+ 2022-01-18 07:26
190
+
191
+ #### NEW
192
+
193
+ - `--hilite` option for `doing search` to highlight matches in search results (terminal output only)
194
+ - `--hilite` flag for `show` and `view` to highlight results when used with `--search`
195
+
196
+ #### IMPROVED
197
+
198
+ - Show preview of up to 5 items when confirming a delete operation so you actually know what you're deleting
199
+ - Allow `--ask` when creating new entry via STDIN pipe
200
+ - Tab completion for known tags when creating an entry interactively
201
+ - Add purple as an alias for magenta in template colors
202
+
203
+ #### FIXED
204
+
205
+ - Clear STDIN before requesting input
206
+
207
+ ### 2.1.16
208
+
209
+ 2022-01-18 02:45
210
+
211
+ #### NEW
212
+
213
+ - `doing done --from "3pm to 3:15pm"` to set start and end times with natural language string
214
+
215
+ #### IMPROVED
216
+
217
+ - Running `doing tag` without arguments takes command line input
218
+ - If `doing now` or `doing later` are run without arguments, interactively request necessary information (you can still use `--editor` to edit in your preferred editor)
219
+ - Tab completion for tags when entering at prompt
220
+ - Use readline when requesting input text, better editing features
221
+ - `doing done --at` no longer overrides `--back`
222
+
223
+ #### FIXED
224
+
225
+ - `doing select` -> output formatted empty output
226
+ - Sort items by date when using `doing select --editor` (was loading in selection order instead)
227
+ - Ruby 2.7 error in template output (.empty? on FalseClass)
228
+ - Don't add empty entry when cancelling `--editor`
229
+ - Batch editing bugs
230
+
231
+ ### 2.1.15
232
+
233
+ 2022-01-17 07:25
234
+
235
+ #### NEW
236
+
237
+ - When completing an entry, if the elapsed time would be greater than a (configurable) amount, doing will now ask for confirmation and allow you to enter a new duration before setting the @done date
238
+
239
+ #### IMPROVED
240
+
241
+ - When entering intervals, you can now use 1h30m in addition to 1.5h or 90m
242
+ - Date expansion works in more circumstances
243
+ - You can include date tags with natural language values when adding tags via `doing select`
244
+
245
+ #### FIXED
246
+
247
+ - Tags containing values with spaces no longer cause errors
248
+
249
+ ### 2.1.14
250
+
251
+ #### NEW
252
+
253
+ - All commands that accept `--note` now accept `--ask`, which requests input via readline after creating the note. Multiple lines are allowed, hit return twice to end editing. Works alongside `--note` and `--editor`
254
+
255
+ #### IMPROVED
256
+
257
+ - Implement `--search` and `--from` filtering for import plugins
258
+ - UTC format date strings in select menus for consistency (was relative date formatting)
259
+ - Don't populate the fzf search with `--search`, it's already filtered. Separated `--query` from `--search` if you do want to populate the query string in addition to `--search` filtering
260
+ - When showing relative dates, don't include the year if the date is the previous year but a later month than the current month (less than a year old)
261
+ - When using `--editor` while adding an entry, include any note specified on the command line or via `--ask` for further editing
262
+
263
+ ### 2.1.13
264
+
265
+ #### NEW
266
+
267
+ - `--val` flag for all display commands, allows tag value queries. Tag values are contained in parenthesis after the tag, e.g. @progress(50). Queries look like `--val "done < two weeks ago"`, "project *= oracle" or "progress >= 50". Wildcards allowed in value, comparators can be <, >, <=, >=, ==, *= (contains), ^= (begins with), $= (ends with). Numeric and date comparisons are detected automatically. Text comparisons are case insensitive. `--val` can be used multiple times in a command and you can use `--bool` to specify AND, OR, or NOT (default AND)
268
+ - `doing tag` now accepts a `--value` flag to define a value for a single tag, e.g. @tag(value)
269
+
270
+ #### FIXED
271
+
272
+ - `doing last --editor` errors
273
+
274
+ ### 2.1.12
275
+
276
+ #### NEW
277
+
278
+ - Tag_dir command creates/updates .doingrc files in the current directory with default_tags values. Then all entries created within that directory (or subdirs) get tagged with that value.
279
+ - Synonym triggers allow `*` and `?` wildcards
280
+ - Add `--delete` flag for `doing last` to delete last entry
281
+ - `--delete` and `--editor` flags for `doing search`, batch edit and delete
282
+ - Example hook to add new entries containing a certain tag to Day One
283
+ - New hooks: pre_entry_add, post_entry_added, post_entry_updated, post_entry_removed, pre_export
284
+
285
+ #### IMPROVED
286
+
287
+ - If you need to use a colon in an autotag transform pattern, you can split with double colon, e.g. pattern::replacement
288
+ - Arrays defined in local configurations merge with main config instead of overwriting
289
+
290
+ #### FIXED
291
+
292
+ - `doing tags --interactive` wasn't showing menu
293
+
294
+ ### 2.1.10
295
+
296
+ #### NEW
297
+
298
+ - `--age` (oldest|newest) option for view command
299
+
300
+ ### 2.1.9
301
+
302
+ #### IMPROVED
303
+
304
+ - Only attempt to install fzf if it doesn't exist on the system. In case of errors, this means a user can manually install fzf and still be able to access `--interactive` options
305
+
306
+ #### FIXED
307
+
308
+ - Rotate command only archiving half of requested items
309
+ - Frozen string error in doing import plugin
310
+
311
+ ### 2.1.8
312
+
313
+ #### NEW
314
+
315
+ - Hidden command `doing commands_accepting` which shows all commands that accept a given option, e.g. `doing commands_accepting search` shows all commands that take a search filter
316
+ - Hidden command `doing changelog` which outputs a paginated, formatted version of the change history.
317
+
318
+ #### IMPROVED
319
+
320
+ - The output of `doing template --list` now shows the file type of each template
321
+ - Output templates can now be saved to a default location/filename using `doing template html --save`
322
+
323
+ #### FIXED
324
+
325
+ - Error running `doing recent` on certain older ruby versions
326
+
327
+ ### 2.1.6
328
+
329
+ #### NEW
330
+
331
+ - `doing redo` undoes a redo
332
+ - `doing undo -i` offers a list of available versions for selection
333
+ - Multiple undo. Every time a command modifies the doing file, a backup is written. Running `doing undo` repeatedly steps back through history, `doing undo 5` jumps back 5 versions
334
+ - When resetting via `doing select`, prompt for a date string
335
+ - `doing reset` accepts a date string argument to use as start date instead of current time if provided
336
+ - `doing tags` lists tags used in any/all sections, sortable, with or without frequency counts
337
+ - `doing show --menu` offers an interactive menu for selecting section and tag filters
338
+ - All commands that accept a `--tag` filter can now handle wildcards in the tag names. * to match any number of characters, ? to match a single character.
339
+ - New boolean type for tag searches, PATTERN (which is now the default). Combine tags using symbols to create more complex boolean searches, e.g. "doing +coding -work"
340
+ - You can now define `date_tags` in config, an array of tags/patterns that will be recognized when parsing for natural language dates which are converted when saving new entries
341
+ - `--search` strings can contain quoted phrases and use +/- to require or ban terms, e.g. `--search 'doing +coding -writing'
342
+ - Interactive option for redo command
343
+ - Plugins for Day One export
344
+
345
+ #### IMPROVED
346
+
347
+ - Better diff output for fzf preview of `doing undo` history
348
+ - Fall back to good ol' sed for colorizing diffs when no good tool is available
349
+ - `doing redo` (a.k.a. `doing undo --redo`) can be run multiple times, stepping forward through undo history. Can also take a count to jump
350
+ - Matching algorithm can be configured in settings
351
+ - All template placeholders can now use the "printf" formatting that %title and %note have, allowing for padding, prefixes, etc.
352
+ - Move default locations for doing file and backups to ~/.local/share/doing
353
+ - `doing show --menu` will only offer tags that exist after any tag/search filters have been run
354
+ - `doing show @tag` with `--menu` will first filter by the @tag, then do an OR search for tags selected from the menu
355
+
356
+ #### FIXED
357
+
358
+ - `doing reset` without filter not automatically affecting most recent entry
359
+ - `config set` now preserves value type (string, array, mapping) of previous value, coercing new value if needed
360
+ - Preserve colors when wrapping text to new lines
361
+ - Tag highlighting errors
362
+ - Template options specified in views were being overriden by options in templates. View config now has precedence, but will fall back to template config for missing keys
363
+
364
+ #### IMPROVED
365
+
366
+ - Better diff output for fzf preview of `doing undo` history
367
+ - Fall back to good ol' sed for colorizing diffs when no good tool is available
368
+ - `doing redo` (a.k.a. `doing undo --redo`) can be run multiple times, stepping forward through undo history. Can also take a count to jump
369
+
370
+ #### FIXED
371
+
372
+ - `doing reset` without filter not automatically affecting most recent entry
373
+ - `config set` now preserves value type (string, array, mapping) of previous value, coercing new value if needed
374
+
375
+ ### 2.1.3
376
+
377
+ #### NEW
378
+
379
+ - BREAKING CHANGE: custom classes for Section (hash) and Items (Array). @content is still a regular Hash. Sections have methods :original and :items. This will affect plugins as wwid.content[section][:items] is now wwid[section].items (same for :original)
380
+ - `doing config set -r key.path` will delete a key from any config file, removing empty parent keys
381
+ - `config list` will list detected .doingrc files and the main config file in order of precedence - refactoring
382
+ - When modifying start dates or @done dates via an editor command, natural language strings can be used and will be parsed into doing-formatted dates automatically
383
+ - When editor is invoked, entry titles include start date, which can be modified
384
+ - `--before`, `--after`, and `--from` date filters for select command
385
+ - `--from` flag for `doing today` and `doing yesterday`, filter by time range
386
+ - `--from` flag for `doing search`, filter by date/time range
387
+ - Commands that accept `--before`, `--after`, and `--from` can now filter on time ranges. If the date string given contains only a time (no day or date), it will be interpreted as a time range, meaning the date isn't filtered, but only entries within the time range are shown/processed
388
+ - Add %duration placeholder to template variables
389
+ - Add `interval_format` setting to config (applies to root or any view/template) to set intervals/durations to human (2h 15m) or text (00:02:15)
390
+ - Add `duration` key to config (root or view/template). If set to true, will display durations by default (no need for `--duration`)
391
+ - Most display commands now have a `--duration` flag that will display an elapsed time if the entry is not marked @done
392
+
393
+ #### IMPROVED
394
+
395
+ - Config -o raw outputs value as YAML if result is a Hash/mapping, unquoted string if a single value, comma-separated list if it's an Array.
396
+ - Config -o json no longer includes key, only value.
397
+ - System agnostic method for checking available executables (pager, editor)
398
+ - Using `config set` and selecting a local config will no longer write the entire config to the local .doingrc. Instead, a nested path to the particular setting will be added to the config file.
399
+ - Config set will create missing keys. Fuzzy matching will work until the path fails, then path elements after that point will be added as verbatim keys to the specified configuration (with confirmation)
400
+ - Make menus only as tall as needed, so 5 options don't take up the whole screen
401
+ - Better word wrap for long note lines
402
+
403
+ #### FIXED
404
+
405
+ - `finish --took 60m` is supposed to backdate the start date if needed to finish at the current time and maintain an elapsed time
406
+ - If an editor was specified for config (or default as fallback) with command line options (e.g. `emacs -nw`), Doing would fail to recognize that the executable was available.
407
+
408
+ ### 2.0.25
409
+
410
+ #### NEW
411
+
412
+ - `doing config set` to set single config values from command line
413
+ - BREAKING CHANGE: Moves ~/.doingrc to ~/.config/doing/config.yml
414
+ - BREAKING CHANGE: convert config flags to subcommands, e.g. `doing config --udpate` => `doing config update`, and `doing config --dump` => `doing config dump`
415
+
416
+ ### 2.0.24
417
+
418
+ - include fzf source directly, in case git isn't installed
419
+ - fall back to installing fzf with sudo on error
420
+
421
+ ### 2.0.20
422
+
423
+ #### IMPROVED
424
+
425
+ - completion script generator refactor and progress bars
426
+
427
+ #### FIXED
428
+
429
+ - compile fzf for current operating system
430
+
431
+ ### 2.0.19
432
+
433
+ #### FIXED
434
+
435
+ - Remove any coloring before writing to doing file
436
+
437
+ ### 2.0.18
438
+
439
+ #### FIXED
440
+
441
+ - Escape codes being included in doing file
442
+
443
+ ### 2.0.17
444
+
445
+ #### IMPROVED
446
+
447
+ - Improvements to %title formatting and wrapping
448
+
449
+ ### 2.0.16
450
+
451
+ - Test release to validate git flow automation
452
+
453
+ ### 2.0.13
454
+
455
+ #### FIXED
456
+
457
+ - Remove amatch gem dependency due to compatibility issues with Windows systems (also removes `--fuzzy` option from all search commands)
458
+
459
+ ### 2.0.11
460
+
461
+ #### NEW
462
+
463
+ - Append `/r` to tag transforms to replace original tag
464
+
465
+ #### FIXED
466
+
467
+ - Autotag tag transform fixes
468
+
469
+ ### 2.0.10
470
+
471
+ #### NEW
472
+
473
+ - Add 'timer_format' config with 'human' option for tag totals
474
+ - If `doing view` and `doing show` are confused, offer option to run the other command
475
+ - `doing completion` to generate shell completion scripts for zsh, bash, and fish
476
+ - `--search` and `--not` for cancel command
477
+ - `--case` flag for commands with `--search`. Can be (c)ase-sensitive, (i)nsensitive, or (s)mart (default smart, case insensitive unless search string contains uppercase letters)
478
+ - Add `--exact` flag to all commands with `--search` flag to force exact matching without requiring single quote prefix
479
+ - Add `--not` flag to all commands with filters (`--tag`, `--search`, `--before`, etc.) to negate the filter and return entries NOT matched
480
+
481
+ #### IMPROVED
482
+
483
+ - More command line feedback
484
+ - Error formatting and output
485
+ - Add subcommand completion for `doing help` in fish shell
486
+ - Logging and error handling
487
+
488
+ #### FIXED
489
+
490
+ - Zsh completion not outputting results
491
+ - Remove `--[no]` from non-negatable options
492
+ - `doing plugins -t export -c` not outputting columns
493
+ - View config not respecting tag_order setting
494
+
495
+ ### 2.0.3.pre
496
+
497
+ #### NEW
498
+
499
+ - Import calendar events from Calendar.app on macOS
500
+ - `doing config --update` will add newly added config keys to your existing config file (handy with plugins that define their own config keys)
501
+ - Add %idnote template placeholder for "indented note" (entire note indented one tab)
502
+ - (loosely printf-esque) formatting options for `%note` template placeholder
503
+ - `--interactive` mode to act on results of `doing grep`
504
+ - Printf formatting for title and date
505
+ - Doing import plugin
506
+ - Plugins command to list plugins
507
+ - `--dump` option for `doing config` to output a key.path config key as JSON, YAML, or raw output
508
+ - `--no-color` global flag
509
+ - Log levels, with `--quiet` and `--verbose` global flags
510
+ - Convert CLI messaging to Logger-based system
511
+ - Use DOING_DEBUG, DOING_QUIET, or DOING_LOG_LEVEL environment variables to specify log levels before configuration is read
512
+ - Hooks, register plugins to run based on events
513
+ - --[no-]pager and paginate: config option to enable paging output
514
+ - Never_finish and never_time config options to prevent items matching tags/sections from ever receiving @done (never_finish) or @done timestamp (never_time) - More configuration refactoring
515
+
516
+ #### IMPROVED
517
+
518
+ - Timeline output formatting
519
+ - Major plugin architecture refactoring
520
+ - Fix regression where notes stored in doing file were outdented, breaking TaskPaper compatibility
521
+ - When accepting a date filter, allow end date to be in the future
522
+ - If an edited item has no changes, don't update/output notification - Don't start with query when using grep `--interactive`
523
+ - Select menu item formatting
524
+ - Output wrapping for terminal display
525
+ - Redirect warn to STDOUT when run with `--stdout`
526
+ - Fish autocomplete
527
+ - `--config_file` global flag deprected, now uses $DOING_CONFIG environment variable so that config overrides can be available before the initial configuration is run
528
+ - When `--stdout` or not a TTY, no color or output formatting
529
+ - Highlight tags when showing results. Because it looks nice.
530
+ - `--tag` and `--search` for `doing note`
531
+ - View/section fuzzy guessing
532
+ - Error reporting
533
+ - If `doing config` finds local doingrc files, offers a menu for editing
534
+ - More filtering options for `doing finish`
535
+ - Doing done accepts `--unfinished` flag to finish last entry not marked @done (instead of last entry)
536
+ - Doing done accepts `--note` flag to append a note when completing an entry
537
+
538
+ #### FIXED
539
+
540
+ - Multi-word unquoted arguments to add_section being truncated
541
+ - Show `--from` with date span
542
+ - Handling of arbitrary times in natural language dates
543
+ - Backward scope of since command with arbitrary times
544
+ - `doing rotate --keep` wasn't respecting keep value
545
+
546
+ ### 1.0.93
547
+
548
+ #### FIXED
549
+
550
+ - Gemfile error
551
+
552
+ ### 1.0.91
553
+
554
+ #### NEW
555
+
556
+ - "taskpaper" format available for all output options
557
+ - "markdown" format available for all output commands (GFM-style task list, customizable template)
558
+ - `--rename` option for tag command to replace tags
559
+ - `--regex` option for tag command, for `--remove` and `--rename`
560
+
561
+ ### 1.0.90
562
+
563
+ #### IMPROVED
564
+
565
+ - doing finish `--auto` now pulls from all sections, not just the section of the target entry
566
+
567
+ #### FIXED
568
+
569
+ - Minor fix for shell command in doing select
570
+ - Fix for doing finish `--auto` when matched item is last in list
571
+
572
+ ### 1.0.89
573
+
574
+ #### NEW
575
+
576
+ - Pretty print JSON output
577
+ - `--no-menu` option for select command to use `--query` as a filter and act on matching entries without displaying menu
578
+
579
+ ### 1.0.88
580
+
581
+ #### IMPROVED
582
+
583
+ - Add `--before` and `--after` time search to yesterday command
584
+ - Add `--before` and `--after` date search to search/grep command
585
+ - Add `--tag_order` to yesterday command
586
+
587
+ ### 1.0.87
588
+
589
+ #### IMPROVED
590
+
591
+ - Add leading spaces to make %shortdate align properly, at least for the last week
592
+ - Add `--tag`, `--bool`, and `--search` to view command
593
+ - Add `--before` and `--after` date search to view command
594
+ - Add `--before` and `--after` date search to show command
595
+ - Add `--before` and `--after` time search to today command
596
+ - Add `--search` filter to show command
597
+ - More alignment/formatting fixes for %shortdate
598
+
599
+ ### 1.0.86
600
+
601
+ #### IMPROVED
602
+
603
+ - Add `count` config option for templates->recent
604
+
605
+ ### 1.0.85
606
+
607
+ #### IMPROVED
608
+
609
+ - Add `--before` DATE_STRING to archive and rotate commands
610
+ - Only create on rotate file per day, merge new entries into existing file
611
+
612
+ #### FIXED
613
+
614
+ - Fix `--auto` for finish command
615
+
616
+ ### 1.0.84
617
+
618
+ #### NEW
619
+
620
+ - `rotate` command for archiving entries to new file
621
+
622
+ #### FIXED
623
+
624
+ - Fixed current_section config key not being honored in some commands
625
+
626
+ ### 1.0.83
627
+
628
+ #### FIXED
629
+
630
+ - Fixes for `doing view` options, additional config keys for views
631
+
632
+ ### 1.0.82
633
+
634
+ #### FIXED
635
+
636
+ - Bugfixes
637
+
638
+ ### 1.0.81
639
+
640
+ #### IMPROVED
641
+
642
+ - fzf menu improvements
643
+ - allow multiple selections `doing select` action menu
644
+
645
+ ### 1.0.80
646
+
647
+ #### IMPROVED
648
+
649
+ - Convert all menus to fzf screens
650
+
651
+ ### 1.0.79
652
+
653
+ #### IMPROVED
654
+
655
+ - Wildcard tag removal using `doing select -t "tag*" -r`
656
+ - fzf menu display polish
657
+
658
+ #### FIXED
659
+
660
+ #### FIXED
661
+
662
+ - Gem missing fzf
663
+
664
+ ### 1.0.78
665
+
666
+ #### IMPROVED
667
+
668
+ - If no action is specified with select command, an interactive menu is
669
+ presented
670
+ - add output action select command with formatting and save options
671
+ - Don't link URLs in html output that don't have a protocol
672
+
673
+ ### 1.0.76
674
+
675
+ #### IMPROVED
676
+
677
+ - Refine editing multiple selections (doing select)
678
+
679
+ ### 1.0.74
680
+
681
+ #### NEW
682
+
683
+ - Add `--tag` and `--search` flags to tag command to tag all entries matching search terms
684
+ - Add since command, which is the same as `doing on tuesday to now` but `doing since tuesday` just feels more intuitive.
685
+
686
+ ### 1.0.73
687
+
688
+ #### FIXED
689
+
690
+ - Fix for timeline output
691
+
692
+ ### 1.0.72
693
+
694
+ #### NEW
695
+
696
+ - Add `doing select` to show menu of all tasks, searchable with fuzzy matching and the ability to perform certain tasks on multiple selections.
697
+
698
+ ### 1.0.71
699
+
700
+ #### FIXED
701
+
702
+ - Fix for template command not working at all
703
+
704
+ ### 1.0.70
705
+
706
+ #### FIXED
707
+
708
+ - Fix for `doing done --took 30m` setting the wrong @done timestamp when completing previous item
709
+
710
+ ### 1.0.69
711
+
712
+ #### IMPROVED
713
+
714
+ - Add `--unfinished` option to finish and cancel commands
715
+
716
+ ### 1.0.68
717
+
718
+ #### FIXED
719
+
720
+ - Fix error in `doing show --sort` argument parsing
721
+
722
+ ### 1.0.67
723
+
724
+ #### FIXED
725
+
726
+ - Gem packaging error
727
+
728
+ ### 1.0.66
729
+
730
+ #### IMPROVED
731
+
732
+ - More flexible boolean specification, can be: all, and, any, or, not, or none
733
+
734
+ #### FIXED
735
+
736
+ - Fix for some long flags being interpreted as arrays instead of strings
737
+ - Fix for archive command not removing original entries from archived section
738
+
739
+ ### 1.0.65
740
+
741
+ #### IMPROVED
742
+
743
+ - Prevent duplicates/overlapping entries when importing
744
+
745
+ ### 1.0.64
746
+
747
+ #### NEW
748
+
749
+ - Initial import feature for Timing.app reports
750
+
751
+ ### 1.0.63
752
+
753
+ #### IMPROVED
754
+
755
+ - If `doing done --took=X` results in completion date greater than current time, use current time as completion date and backdate the entry's timestamp to fit
756
+
757
+ ### 1.0.62
758
+
759
+ #### FIXED
760
+
761
+ - `doing done` with `--took=` and without `--back=` should set end time to start date plus `--took` value
762
+
763
+ ### 1.0.61
764
+
765
+ #### IMPROVED
766
+
767
+ - Add `--search` filter to `doing archive`
768
+
769
+ ### 1.0.60
770
+
771
+ #### FIXED
772
+
773
+ - Default value for `doing again --bool` was ALL, should be AND
774
+
775
+ ### 1.0.59
776
+
777
+ #### IMPROVED
778
+
779
+ - Improvements to `doing again --tag=` functionality
780
+
781
+ ### 1.0.58
782
+
783
+ #### IMPROVED
784
+
785
+ - Finish previous task if `doing again` and not already completed
786
+
787
+ ### 1.0.57
788
+
789
+ #### IMPROVED
790
+
791
+ - Unit tests
792
+
793
+ ### 1.0.56
794
+
795
+ #### IMPROVED
796
+
797
+ - Tag command tests
798
+
799
+ #### FIXED
800
+
801
+ - Doing not reading per-directory .doingrc configs
802
+
803
+ ### 1.0.55
804
+
805
+ #### NEW
806
+
807
+ - Added config_editor_app setting to config so you can have
808
+ - A parenthetical at the end of an entry title becomes an attached
809
+ - `--editor` flag for `doing last` to edit last entry
810
+ - `--tag=` flag to filter `doing last` by tag
811
+ - `--search=` to filter `doing last` by text/regex search
812
+ - `--search=` for `doing finish`, finish last X entries matching search
813
+ - Add `tags_color` as a primary config key to highlight @tags in displayed entries
814
+
815
+ #### IMPROVED
816
+
817
+ - Clean up command line help
818
+ - `--editor` improvements for all commands that use it
819
+
820
+ #### FIXED
821
+
822
+ - Doing finish `--took` throwing error
823
+ - Doing tag `--remove` was adding tags if they didn't exist
824
+ - Creating a meanwhile task with a note resulted in an error
825
+
826
+ ### 1.0.54
827
+
828
+ #### FIXED
829
+
830
+ - Bugfix for `finish --tag=TAG`
831
+
832
+ ### 1.0.53
833
+
834
+ #### NEW
835
+
836
+ - `--tag` and `--bool` filtering for again/resume, cancel
837
+ - `--in` flag for `again`/`resume` to specify to which section the new
838
+ - Finish command accepts `--tag=` flag, finishing last entry
839
+ - `doing cancel` to end X tasks without completion date
840
+
841
+ #### IMPROVED
842
+
843
+ - Add `--no-color` option to view command
844
+ - Add `--tag` to show for compatibility
845
+
846
+ #### FIXED
847
+
848
+ - Error running finish without `--tag` flag
849
+ - `--archive` flag on finish, done, and cancel causing error
850
+
851
+ ### 1.0.52
852
+
853
+ #### NEW
854
+
855
+ - Finish command accepts `--tag=` flag, finishing last entry
856
+
857
+ #### FIXED
858
+
859
+ - `--archive` flag on finish, done, and cancel causing error
860
+
861
+ ### 1.0.49
862
+
863
+ #### FIXED
864
+
865
+ - Fix for missing date on @done tags
866
+
867
+ ### 1.0.48
868
+
869
+ #### FIXED
870
+
871
+ - Fix confirmation dialog for `doing tag -a -c 0` (autotag all)
872
+
873
+ ### 1.0.47
874
+
875
+ #### IMPROVED
876
+
877
+ - Remove check for file existence before attempting to run run_after script
878
+ - Don't autotag entries restarted with `again/resume`
879
+ - Add short flags (`-b`) for `--back` on all commands that support it
880
+
881
+ ### 1.0.46
882
+
883
+ #### IMPROVED
884
+
885
+ - Code cleanup
886
+
887
+ ### 1.0.45
888
+
889
+ #### IMPROVED
890
+
891
+ - Only execute run_after script if changes are written
892
+
893
+ ### 1.0.44
894
+
895
+ #### IMPROVED
896
+
897
+ - Remove unnecessary console logging
898
+
899
+ ### 1.0.43
900
+
901
+ #### NEW
902
+
903
+ - Add `again` command to repeat last entry without @done tag
904
+ - Add `run_after` configuration option to execute external script after any change
905
+
906
+ ### 1.0.42
907
+
908
+ #### FIXED
909
+
910
+ - Fix note indentation in doing file
911
+
912
+ ### 1.0.41
913
+
914
+ #### FIXED
915
+
916
+ - Fix for repeated backreferences in tag transform
917
+
918
+ ### 1.0.40
919
+
920
+ #### IMPROVED
921
+
922
+ - Add `--tag_sort` to all subcommands with `--totals` option
923
+
924
+ ### 1.0.39
925
+
926
+ #### NEW
927
+
928
+ - Tag transforms
929
+ - Option to sort tags by name in `--totals`
930
+
931
+ ### 1.0.33
932
+
933
+ #### FIXED
934
+
935
+ - Gem dependency updates
936
+
937
+ ### 1.0.30
938
+
939
+ #### FIXED
940
+
941
+ - Fix for array comparison error
942
+
943
+ ### 1.0.29
944
+
945
+ #### FIXED
946
+
947
+ - Bugfixes
948
+
949
+ ### 1.0.28
950
+
951
+ #### IMPROVED
952
+
953
+ - Global option `-x` to skip autotags and default_tags from global/local .doingrc
954
+ - Remove extra spaces when creating entry
955
+
956
+ ### 1.0.27
957
+
958
+ #### IMPROVED
959
+
960
+ - More graceful writing of default config (~/.doingrc) on first run
961
+ - Repaired testing setup. Needs moar tests.
962
+
963
+ ### 1.0.26
964
+
965
+ #### IMPROVED
966
+
967
+ - Add `--at` flag for `doing done`, e.g. `doing done --at=1:35pm --took=15m A new task I already finished`
968
+ - Allow decimal quantities when using natural language for hours or days, e.g. `--took=2.5h`
969
+ - Add `did` as a synonym for `done` subcommand
970
+
971
+ ### 1.0.25
972
+
973
+ #### IMPROVED
974
+
975
+ #### IMPROVED
976
+
977
+ - Smarter method of getting user $HOME
978
+ - Improved avoiding duplicate tags when autotagging
979
+ - Improved autotag reporting
980
+
981
+ ### 1.0.24
982
+
983
+ #### IMPROVED
984
+
985
+ - `doing note` operates on whatever is most recent, not just the last note in Currently
986
+ - `doing tag` with no count specified operates on most recent entry in any section, not just Currently
987
+ - `doing tag` with a count greater than 1 requires a section to be specified
988
+ - Improved results reporting for `doing tag`
989
+ - When removing tag do a whole-word match to avoid removing part of a longer tag
990
+
991
+ ### 1.0.23
992
+
993
+ #### IMPROVED
994
+
995
+ - Apply default_tags after autotagging to avoid tags triggering tags
996
+ - Set `doing recent` to default to All sections instead of Currently
997
+ - Fix error in time reporting
998
+ - improved y/n prompt for TTY
999
+
1000
+ ### 1.0.22
1001
+
1002
+ #### IMPROVED
1003
+
1004
+ - Allow cascading of local config files
1005
+ - Allow `doing today` and `yesterday` to specify a section
1006
+
1007
+ #### FIXED
1008
+
1009
+ - Fix handling of "local" config files, allowing per-project configurations
1010
+
1011
+ ### 1.0.21
1012
+
1013
+ #### NEW
1014
+
1015
+ - Add legitimate regex search capabilities
1016
+ - Synonyms for grep (search) and now (next)
1017
+
1018
+ #### FIXED
1019
+
1020
+ - CSS fix
1021
+
1022
+ ### 1.0.20
1023
+
1024
+ #### NEW
1025
+
1026
+ - New command `doing templates` to export default templates for HAML and CSS
1027
+ - New config options under `html_template` for `haml` and `css`
1028
+
1029
+ #### IMPROVED
1030
+
1031
+ - Rewrite HTML export templates with responsive layout and typography
1032
+ - Ability to customize the HTML output using HAML and CSS
1033
+
1034
+ ### 1.0.19
1035
+
1036
+ #### IMPROVED
1037
+
1038
+ - For `doing note -e` include the entry title so you know what you're adding a note to
1039
+ - For any other command that allows `-e` include a comment noting that anything after the first line creates a note
1040
+ - Ignore # comments when parsing editor results
1041
+ - Add a .md extension to the temp file passed to the editor so you can take advantage of any syntax highlighting and other features in your editor
1042
+
1043
+ ### 1.0.18
1044
+
1045
+ #### IMPROVED
1046
+
1047
+ - Loosened up the template color resetting a bit more
1048
+
1049
+ #### FIXED
1050
+
1051
+ - Fix `undefined method [] for nil class` error in `doing view`
1052
+
1053
+ ### 1.0.17
1054
+
1055
+ #### NEW
1056
+
1057
+ - Add `--stdout` global option to send reporting to STDOUT instead of STDERR (for use with LaunchBar et al)
1058
+
1059
+ ### 1.0.16
1060
+
1061
+ #### FIXED
1062
+
1063
+ - Fixes overzealous color resetting
1064
+
1065
+ ### 1.0.15
1066
+
1067
+ #### FIXED
1068
+
1069
+ - CLI/text totals block was outputting when HTML output was selected
1070
+ - Have all template colors reset bold and background automatically when called
1071
+
1072
+ ### 1.0.14
1073
+
1074
+ #### IMPROVED
1075
+
1076
+ - Fish completion
1077
+ - views and sections subcommands have -c option to output single column
1078
+ - Fix html title when tag_bool is NONE
1079
+ - Fix @from tagging missing closing paren
1080
+ - Fix tag coloring
1081
+
1082
+ ### 1.0.13
1083
+
1084
+ #### FIXED
1085
+
1086
+ - Fix gsub error in doing meanwhile
1087
+
1088
+ ### 1.0.8pre
1089
+
1090
+ #### NEW
1091
+
1092
+ - added doing on command
1093
+ - Added autotagging to tag command
1094
+ - JSON output option to view commands
1095
+ - date filtering, improved date language
1096
+ - let view templates define output format (csv, json, html, template)
1097
+
1098
+ #### IMPROVED
1099
+
1100
+ - add `%chompnote` template variable (item note with newlines and extra whitespace stripped)
1101
+
1102
+ ### 1.0.7pre
1103
+
1104
+ #### IMPROVED
1105
+
1106
+ - Slightly fuzzier searching in the grep command
1107
+ - cleaner exits, `only_timed` key for view configs
1108
+ - making the note command append new notes better, and load existing notes in the editor if `-e` is called
1109
+ - handle multiple tag input in `show` tag filter
1110
+ - Global tag operations, better reporting
1111
+
1112
+ #### FIXED
1113
+
1114
+ - fix for `-v` option
1115
+
1116
+ ### 1.0.4pre
1117
+
1118
+ #### IMPROVED
1119
+
1120
+ - Improved HTML output
1121
+ - `--only_timed` option for view/show commands that only outputs items with elapsed timers (interval between start and done dates)
1122
+ - add seconds for timed items in CSV output, run `--only_timed` before chopping off `--count #`
1123
+ - fix for 1.8.7 `Dir.home` issue
1124
+ - version bump
1125
+ - don't show tag totals with zero times
1126
+ - zsh completion for doing
1127
+ - HTML styling
1128
+ - `--only_timed` option
1129
+ - added zsh completion file to `README.md`
1130
+ - add zsh completion file
1131
+
1132
+ ### 1.0.3pre
1133
+
1134
+ #### IMPROVED
1135
+
1136
+ - `done` command: making `--took` modify start time if `--back` isn't specified
1137
+ - Cleaned up time totals, improved HTML output
1138
+ - fixes for `--back` and `--took` parsing
1139
+ - Adding more complete terminal reporting to archive command
1140
+
1141
+ ### 1.0.0pre
1142
+
1143
+ #### IMPROVED
1144
+
1145
+ - Skipped ahead in the version numbering. Because I don't care.
1146
+ - Added a `note` command and `--note` flags for entry creation commands
1147
+
1148
+ ### 0.2.6pre
1149
+
1150
+ #### IMPROVED
1151
+
1152
+ - `--totals`, `--[no-]times`, `--output [csv,html]` options for `yesterday` command.
1153
+ - Add tests for Darwin to hide OS X-only features on other systems
1154
+ - `-f` flag to `now` command for finishing last task when starting a new one (Looks back for the last unfinished task in the list)
1155
+ - `--took` option for `done` and `finish` for specifying intervals from the start date for the completion date
1156
+ - Basic command line reporting
1157
+ - `--auto` flag for `finish` and `done` that will automatically set the completion time to 1 minute before the next start time in the list. You can use it retroactively to add times to sequential todos.
1158
+ - `doing grep` for searching by text or regex
1159
+
1160
+ ### 0.2.5
1161
+
1162
+ #### IMPROVED
1163
+
1164
+ - Default to showing times #26, show totals even if no tags exist #27, fix indentation #29
1165
+ - Add section label to archived tasks automatically, excepting `Currently` section
1166
+ - Today outputs and backdate for finish
1167
+ - HTML styling and fix for 1.8.7 HAML errors
1168
+ - Look, HTML output! (`--output html`)
1169
+ - Also, `--output csv`
1170
+ - let doing `archive` function on all sections
1171
+ - option to exclude date from _@done_,
1172
+ - output newlines in sections and views
1173
+ - Flagging (`doing mark`)
1174
+ - fix for view/section guess error
1175
+ - Adding tag filtering to archive command (`doing archive \@done`)
1176
+ - `doing yesterday`
1177
+ - `doing done -r` to remove last doing tag (optionally from `-s Section`)
1178
+ - Add `-f` flag to specify alternate doing file
1179
+ - `meanwhile` command
1180
+
1181
+ ### 0.2.1
1182
+
1183
+ #### IMPROVED
1184
+
1185
+ - CSV output for show command (`--csv`)
1186
+ - HTML output for show command (`--output html`)
1187
+ - fuzzy searching for all commands that specify a view.
1188
+ - In the terminal, you'll see "Assume you meant XXX" to show what match it found, but this is output to STDERR (and won't show up if you're redirecting the output or using it in GeekTool, etc.)
1189
+ - `tags_color` in view config to highlight tags at the end of the lines. Can be set to any of the `%colors`.
1190
+ - Basic time tracking.
1191
+ - `-t` on `show` and `view` will turn on time calculations
1192
+ - Intervals between timestamps and dated _@done_ tags are calculated for each line, if the tag exists.
1193
+ - You must include a `%interval` token in the appropriate template for it to show
1194
+ - _@start(date)_ tags can optionally be used to override the timestamp in the calculation
1195
+ - Any other tags in the line have that line's total added to them
1196
+ - Totals for tags can be displayed at the end of output with `--totals`
1197
+
1198
+
1199
+ ### 0.2.0
1200
+
1201
+ #### IMPROVED
1202
+
1203
+ - `doing done` without argument tags last entry done
1204
+ - `-a` archives them
1205
+ - `doing finish` or `doing finish X` marks last X entries done
1206
+ - `-a` archives them
1207
+ - `doing tag tag1 [tag2]` tags last entry or `-c X` entries
1208
+ - `doing tag -r tag1 [tag2]` removes said tag(s)
1209
+ - custom views additions
1210
+ - custom views can include `tags` and `tags_bool`
1211
+ - `tags` is a space-separated list of tags to filter the results by
1212
+ - `tags_bool` defines `AND` (all tags must exist), `OR` (any tag exists), or `NONE` (none of the tags exist)
1213
+ - `order` key (`asc` or `desc`) defines output sort order by date
1214
+ - section key can be set to `All` to combine sections
1215
+ - `doing show` updates
1216
+ - accepts `all` as a section
1217
+ - arguments following section name are tags to filter by
1218
+ - `-b` sets boolean (`AND`, `OR`, `NONE`) or (`ALL`, `ANY`, `NONE`) (default `OR`/`ANY`)
1219
+ - use `-c X` to limit results
1220
+ - use `-s` to set sort order (`asc` or `desc`)
1221
+ - use `-a` to set age (`newest` or `oldest`)
1222
+ - fuzzy section guessing when specified section isn't found
1223
+ - fuzzy view guessing for `doing view` command
1224
+
1225
+ ### 0.1.9
1226
+
1227
+ #### IMPROVED
1228
+
1229
+ - colors in templated output
1230
+ - `open` command
1231
+ - opens in the default app for file type
1232
+ - `-a APPNAME` (`doing open -a TaskPaper`)
1233
+ - `-b bundle_id` (`doing open -b com.sublimetext.3`)
1234
+ - `-e` switch for `now`, `later` and `done` commands
1235
+ - save a tmp file and open it in an editor
1236
+ - allows multi-line entries, anything after first line is considered a note
1237
+ - assumed when no input is provided (`doing now`)
1238
+ - `doing views` shows all available custom views
1239
+ - `doing view` without a view name will let you choose a view from a menu
1240
+ - `doing archive` fixed so that `-k X` works to keep `X` number of entries in the section
1241
+
1242
+ ### 0.1.7
1243
+
1244
+ #### IMPROVED
1245
+
1246
+ - colors in templated output
1247
+ - `open` command
1248
+ - opens in the default app for file type
1249
+ - `-a APPNAME` (`doing open -a TaskPaper`)
1250
+ - `-b bundle_id` (`doing open -b com.sublimetext.3`)
1251
+ - `-e` switch for `now`, `later`, and `done` commands
1252
+ - save a tmp file and open it in an editor
1253
+ - allows multi-line entries, anything after first line is considered a note
1254
+ - assumed when no input is provided (`doing now`)
1255
+
1256
+ doing### 2.1.30
1257
+
1258
+ 2022-02-16 07:18
1259
+
1260
+ #### IMPROVED
1261
+
1262
+ - `doing changes` does a better job of parsing a lookup string like '>= 2.1.10 < 2.1.15'
1263
+
1264
+ #### FIXED
1265
+
1266
+ - System agnostic platform detection, so commands that check for Darwin won't error out on other systems
1267
+ - `doing completions` debugging code
1268
+
1269
+ ### 2.1.29
1270
+
1271
+ 2022-02-14 12:42
1272
+
1273
+ #### IMPROVED
1274
+
1275
+ - `doing changes --interactive` will load up a changelog viewer using fzf. Because it makes me happy, that's why.
1276
+
1277
+ ### 2.1.28
1278
+
1279
+ 2022-02-14 11:39
1280
+
1281
+ #### FIXED
1282
+
1283
+ - Lines merging in `doing changes --changes` output
1284
+
1285
+ ### 2.1.27
1286
+
1287
+ 2022-02-14 06:04
1288
+
1289
+ #### NEW
1290
+
1291
+ - `doing finish --update` will overwrite any existing @done tag with a new date (current time or set with `--at` or `--back`)
1292
+
1293
+ #### IMPROVED
1294
+
1295
+ - Code refactoring and cleanup
1296
+ - Include release dates in `doing changes` output when available
1297
+ - Allow various naming conventions for %color strings in templates. Now `boldwhite`, `brightwhite`, `bg_bold_cyan`, and `bold_bg_cyan` all work (for example)
1298
+ - Common flags (e.g. --search, --tag) found on multiple commands consolidated and help descriptions matched
1299
+ - `commands_accepting` now accepts multiple arguments and a `--bool` flag
1300
+ - `changes` command can now output changes only (no version numbers) and defaults to raw Markdown if not a TTY or the `--md` flag is used
1301
+ - `doing archive` now accepts `--after` and `--from` date filters
1302
+
1303
+ #### FIXED
1304
+
1305
+ - Some flag descriptions in help
1306
+ - Editor detection
1307
+
1308
+ ### 2.1.26
1309
+
1310
+ 2022-01-23 16:14
1311
+
1312
+ #### NEW
1313
+
1314
+ - Use plugins.hidden_commands in configuration to disable any command (array of command names). Note that some commands use aliases and the first name should be used.
1315
+ - `doing commands [add|remove]` allows interactive enabling and disabling of default and custom commands
1316
+
1317
+ #### IMPROVED
1318
+
1319
+ - Moved all commands into separate files for management
1320
+
1321
+ #### FIXED
1322
+
1323
+ - Changelog command regex too greedy when parsing changelog
1324
+
1325
+ ### 2.1.25
1326
+
1327
+ 2022-01-23 09:25
1328
+
1329
+ ### 2.1.24
1330
+
1331
+ 2022-01-22 17:27
1332
+
1333
+ #### IMPROVED
1334
+
1335
+ - Minor update to Fish completion script
1336
+
1337
+ #### FIXED
1338
+
1339
+ - Changelog formatting issue
1340
+
1341
+ ### 2.1.23
1342
+
1343
+ 2022-01-22 15:52
1344
+
1345
+ #### NEW
1346
+
1347
+ - All display commands (except view) now accept `--config_template TEMPLATE_KEY` to override that commands default template.
1348
+ - Display commands accept `--template`, which takes a template string containing %placeholders and overrides the commands default template output. Affects grep, last, on, recent, show, since, today, yesterday
1349
+
1350
+ #### IMPROVED
1351
+
1352
+ - With complete examples in the help output for most commands, `doing help` almost always requires scrolling up. It now automatically paginates using your system $PAGER (or best detected option).
1353
+ - `doing tags` takes a MAX_COUNT argument to limit results when searching
1354
+ - `doing tags --line` flag to output tags in a single line
1355
+ - Mostly for my own use, `doing changes` (which views the changelog) now accepts `--lookup VERSION` and `--search SEARCH_PATTERN`
1356
+ - `doing changes --lookup` accepts `"< 2.1 > 2.0"`, `"2.1.10-2.2"`, a specific version, or a version number with wildcards
1357
+ - When registering hooks, you can pass an array to register a block for multiple events, assuming the events provide the same block arguments (like post_entry_added and post_entry_updated)
1358
+
1359
+ #### FIXED
1360
+
1361
+ - Running `--tag "@doing"` wouldn't work where `--tag "doing"` would. Now properly ignoring @ symbols
1362
+
1363
+ ### 2.1.22
1364
+
1365
+ 2022-01-21 14:53
1366
+
1367
+ ### 2.1.21
1368
+
1369
+ 2022-01-20 12:05
1370
+
1371
+ #### FIXED
1372
+
1373
+ - Custom types not available to custom commands
1374
+
1375
+ ### 2.1.20
1376
+
1377
+ 2022-01-20 11:49
1378
+
1379
+ #### NEW
1380
+
1381
+ - Autotag option for interactive `doing select` menu
1382
+ - (Breaking change) Made the later command an optional plugin, see wiki for how to install (and create) custom commands
1383
+ - Config setting doing_file_sort (asc or desc) determines the sort order of entries in the actual Doing file. Has no effect on other operations, just allows you to store the file with newest entries at top (desc) or bottom (asc).
1384
+
1385
+ #### IMPROVED
1386
+
1387
+ - Autotag improvements
1388
+ - If doing is run without a command but with arguments, execute it as if you'd run `doing now`, passing the arguments to that. So you can just write "doing this thing" instead of "doing now this thing", as long as the first word of the arguments is not a recognized command.
1389
+
1390
+ #### FIXED
1391
+
1392
+ - `doing again` should only mark the original repeating entry @done, not search for the last unfinished entry
1393
+ - Error when using `doing finish --auto`
1394
+ - `doing on wed` when today is wednesday not returning results
1395
+ - Using `config set` with a false value deleted the key from config
1396
+ - `config set` with true or false value was inserting a quoted string
1397
+ - Entries were not being sorted (at all) within sections when writing the Doing file
1398
+
1399
+ ### 2.1.19
1400
+
1401
+ 2022-01-18 08:40
1402
+
1403
+ #### FIXED
1404
+
1405
+ - Search highlighting error with some pattern searches
1406
+ - Reverse sort of items in menu from `--interactive` flags
1407
+ - Nil error when `--interactive` was called without search results
1408
+
1409
+ ### 2.1.18
1410
+
1411
+ Build automation test
1412
+
1413
+ ### 2.1.17
1414
+
1415
+ 2022-01-18 07:26
1416
+
1417
+ #### NEW
1418
+
1419
+ - `--hilite` option for `doing search` to highlight matches in search results (terminal output only)
1420
+ - `--hilite` flag for `show` and `view` to highlight results when used with `--search`
1421
+
1422
+ #### IMPROVED
1423
+
1424
+ - Show preview of up to 5 items when confirming a delete operation so you actually know what you're deleting
1425
+ - Allow `--ask` when creating new entry via STDIN pipe
1426
+ - Tab completion for known tags when creating an entry interactively
1427
+ - Add purple as an alias for magenta in template colors
1428
+
1429
+ #### FIXED
1430
+
1431
+ - Clear STDIN before requesting input
1432
+
1433
+ ### 2.1.16
1434
+
1435
+ 2022-01-18 02:45
1436
+
1437
+ #### NEW
1438
+
1439
+ - `doing done --from "3pm to 3:15pm"` to set start and end times with natural language string
1440
+
1441
+ #### IMPROVED
1442
+
1443
+ - Running `doing tag` without arguments takes command line input
1444
+ - If `doing now` or `doing later` are run without arguments, interactively request necessary information (you can still use `--editor` to edit in your preferred editor)
1445
+ - Tab completion for tags when entering at prompt
1446
+ - Use readline when requesting input text, better editing features
1447
+ - `doing done --at` no longer overrides `--back`
1448
+
1449
+ #### FIXED
1450
+
1451
+ - `doing select` -> output formatted empty output
1452
+ - Sort items by date when using `doing select --editor` (was loading in selection order instead)
1453
+ - Ruby 2.7 error in template output (.empty? on FalseClass)
1454
+ - Don't add empty entry when cancelling `--editor`
1455
+ - Batch editing bugs
1456
+
1457
+ ### 2.1.15
1458
+
1459
+ 2022-01-17 07:25
1460
+
1461
+ #### NEW
1462
+
1463
+ - When completing an entry, if the elapsed time would be greater than a (configurable) amount, doing will now ask for confirmation and allow you to enter a new duration before setting the @done date
1464
+
1465
+ #### IMPROVED
1466
+
1467
+ - When entering intervals, you can now use 1h30m in addition to 1.5h or 90m
1468
+ - Date expansion works in more circumstances
1469
+ - You can include date tags with natural language values when adding tags via `doing select`
1470
+
1471
+ #### FIXED
1472
+
1473
+ - Tags containing values with spaces no longer cause errors
1474
+
1475
+ ### 2.1.14
1476
+
1477
+ #### NEW
1478
+
1479
+ - All commands that accept `--note` now accept `--ask`, which requests input via readline after creating the note. Multiple lines are allowed, hit return twice to end editing. Works alongside `--note` and `--editor`
1480
+
1481
+ #### IMPROVED
1482
+
1483
+ - Implement `--search` and `--from` filtering for import plugins
1484
+ - UTC format date strings in select menus for consistency (was relative date formatting)
1485
+ - Don't populate the fzf search with `--search`, it's already filtered. Separated `--query` from `--search` if you do want to populate the query string in addition to `--search` filtering
1486
+ - When showing relative dates, don't include the year if the date is the previous year but a later month than the current month (less than a year old)
1487
+ - When using `--editor` while adding an entry, include any note specified on the command line or via `--ask` for further editing
1488
+
1489
+ ### 2.1.13
1490
+
1491
+ #### NEW
1492
+
1493
+ - `--val` flag for all display commands, allows tag value queries. Tag values are contained in parenthesis after the tag, e.g. @progress(50). Queries look like `--val "done < two weeks ago"`, "project *= oracle" or "progress >= 50". Wildcards allowed in value, comparators can be <, >, <=, >=, ==, *= (contains), ^= (begins with), $= (ends with). Numeric and date comparisons are detected automatically. Text comparisons are case insensitive. `--val` can be used multiple times in a command and you can use `--bool` to specify AND, OR, or NOT (default AND)
1494
+ - `doing tag` now accepts a `--value` flag to define a value for a single tag, e.g. @tag(value)
1495
+
1496
+ #### FIXED
1497
+
1498
+ - `doing last --editor` errors
1499
+
1500
+ ### 2.1.12
1501
+
1502
+ #### NEW
1503
+
1504
+ - Tag_dir command creates/updates .doingrc files in the current directory with default_tags values. Then all entries created within that directory (or subdirs) get tagged with that value.
1505
+ - Synonym triggers allow `*` and `?` wildcards
1506
+ - Add `--delete` flag for `doing last` to delete last entry
1507
+ - `--delete` and `--editor` flags for `doing search`, batch edit and delete
1508
+ - Example hook to add new entries containing a certain tag to Day One
1509
+ - New hooks: pre_entry_add, post_entry_added, post_entry_updated, post_entry_removed, pre_export
1510
+
1511
+ #### IMPROVED
1512
+
1513
+ - If you need to use a colon in an autotag transform pattern, you can split with double colon, e.g. pattern::replacement
1514
+ - Arrays defined in local configurations merge with main config instead of overwriting
1515
+
1516
+ #### FIXED
1517
+
1518
+ - `doing tags --interactive` wasn't showing menu
1519
+
1520
+ ### 2.1.10
1521
+
1522
+ #### NEW
1523
+
1524
+ - `--age` (oldest|newest) option for view command
1525
+
1526
+ ### 2.1.9
1527
+
1528
+ #### IMPROVED
1529
+
1530
+ - Only attempt to install fzf if it doesn't exist on the system. In case of errors, this means a user can manually install fzf and still be able to access `--interactive` options
1531
+
1532
+ #### FIXED
1533
+
1534
+ - Rotate command only archiving half of requested items
1535
+ - Frozen string error in doing import plugin
1536
+
1537
+ ### 2.1.8
1538
+
1539
+ #### NEW
1540
+
1541
+ - Hidden command `doing commands_accepting` which shows all commands that accept a given option, e.g. `doing commands_accepting search` shows all commands that take a search filter
1542
+ - Hidden command `doing changelog` which outputs a paginated, formatted version of the change history.
1543
+
1544
+ #### IMPROVED
1545
+
1546
+ - The output of `doing template --list` now shows the file type of each template
1547
+ - Output templates can now be saved to a default location/filename using `doing template html --save`
1548
+
1549
+ #### FIXED
1550
+
1551
+ - Error running `doing recent` on certain older ruby versions
1552
+
1553
+ ### 2.1.6
1554
+
1555
+ #### NEW
1556
+
1557
+ - `doing redo` undoes a redo
1558
+ - `doing undo -i` offers a list of available versions for selection
1559
+ - Multiple undo. Every time a command modifies the doing file, a backup is written. Running `doing undo` repeatedly steps back through history, `doing undo 5` jumps back 5 versions
1560
+ - When resetting via `doing select`, prompt for a date string
1561
+ - `doing reset` accepts a date string argument to use as start date instead of current time if provided
1562
+ - `doing tags` lists tags used in any/all sections, sortable, with or without frequency counts
1563
+ - `doing show --menu` offers an interactive menu for selecting section and tag filters
1564
+ - All commands that accept a `--tag` filter can now handle wildcards in the tag names. * to match any number of characters, ? to match a single character.
1565
+ - New boolean type for tag searches, PATTERN (which is now the default). Combine tags using symbols to create more complex boolean searches, e.g. "doing +coding -work"
1566
+ - You can now define `date_tags` in config, an array of tags/patterns that will be recognized when parsing for natural language dates which are converted when saving new entries
1567
+ - `--search` strings can contain quoted phrases and use +/- to require or ban terms, e.g. `--search 'doing +coding -writing'
1568
+ - Interactive option for redo command
1569
+ - Plugins for Day One export
1570
+
1571
+ #### IMPROVED
1572
+
1573
+ - Better diff output for fzf preview of `doing undo` history
1574
+ - Fall back to good ol' sed for colorizing diffs when no good tool is available
1575
+ - `doing redo` (a.k.a. `doing undo --redo`) can be run multiple times, stepping forward through undo history. Can also take a count to jump
1576
+ - Matching algorithm can be configured in settings
1577
+ - All template placeholders can now use the "printf" formatting that %title and %note have, allowing for padding, prefixes, etc.
1578
+ - Move default locations for doing file and backups to ~/.local/share/doing
1579
+ - `doing show --menu` will only offer tags that exist after any tag/search filters have been run
1580
+ - `doing show @tag` with `--menu` will first filter by the @tag, then do an OR search for tags selected from the menu
1581
+
1582
+ #### FIXED
1583
+
1584
+ - `doing reset` without filter not automatically affecting most recent entry
1585
+ - `config set` now preserves value type (string, array, mapping) of previous value, coercing new value if needed
1586
+ - Preserve colors when wrapping text to new lines
1587
+ - Tag highlighting errors
1588
+ - Template options specified in views were being overriden by options in templates. View config now has precedence, but will fall back to template config for missing keys
1589
+
1590
+ #### IMPROVED
1591
+
1592
+ - Better diff output for fzf preview of `doing undo` history
1593
+ - Fall back to good ol' sed for colorizing diffs when no good tool is available
1594
+ - `doing redo` (a.k.a. `doing undo --redo`) can be run multiple times, stepping forward through undo history. Can also take a count to jump
1595
+
1596
+ #### FIXED
1597
+
1598
+ - `doing reset` without filter not automatically affecting most recent entry
1599
+ - `config set` now preserves value type (string, array, mapping) of previous value, coercing new value if needed
1600
+
1601
+ ### 2.1.3
1602
+
1603
+ #### NEW
1604
+
1605
+ - BREAKING CHANGE: custom classes for Section (hash) and Items (Array). @content is still a regular Hash. Sections have methods :original and :items. This will affect plugins as wwid.content[section][:items] is now wwid[section].items (same for :original)
1606
+ - `doing config set -r key.path` will delete a key from any config file, removing empty parent keys
1607
+ - `config list` will list detected .doingrc files and the main config file in order of precedence - refactoring
1608
+ - When modifying start dates or @done dates via an editor command, natural language strings can be used and will be parsed into doing-formatted dates automatically
1609
+ - When editor is invoked, entry titles include start date, which can be modified
1610
+ - `--before`, `--after`, and `--from` date filters for select command
1611
+ - `--from` flag for `doing today` and `doing yesterday`, filter by time range
1612
+ - `--from` flag for `doing search`, filter by date/time range
1613
+ - Commands that accept `--before`, `--after`, and `--from` can now filter on time ranges. If the date string given contains only a time (no day or date), it will be interpreted as a time range, meaning the date isn't filtered, but only entries within the time range are shown/processed
1614
+ - Add %duration placeholder to template variables
1615
+ - Add `interval_format` setting to config (applies to root or any view/template) to set intervals/durations to human (2h 15m) or text (00:02:15)
1616
+ - Add `duration` key to config (root or view/template). If set to true, will display durations by default (no need for `--duration`)
1617
+ - Most display commands now have a `--duration` flag that will display an elapsed time if the entry is not marked @done
1618
+
1619
+ #### IMPROVED
1620
+
1621
+ - Config -o raw outputs value as YAML if result is a Hash/mapping, unquoted string if a single value, comma-separated list if it's an Array.
1622
+ - Config -o json no longer includes key, only value.
1623
+ - System agnostic method for checking available executables (pager, editor)
1624
+ - Using `config set` and selecting a local config will no longer write the entire config to the local .doingrc. Instead, a nested path to the particular setting will be added to the config file.
1625
+ - Config set will create missing keys. Fuzzy matching will work until the path fails, then path elements after that point will be added as verbatim keys to the specified configuration (with confirmation)
1626
+ - Make menus only as tall as needed, so 5 options don't take up the whole screen
1627
+ - Better word wrap for long note lines
1628
+
1629
+ #### FIXED
1630
+
1631
+ - `finish --took 60m` is supposed to backdate the start date if needed to finish at the current time and maintain an elapsed time
1632
+ - If an editor was specified for config (or default as fallback) with command line options (e.g. `emacs -nw`), Doing would fail to recognize that the executable was available.
1633
+
1634
+ ### 2.0.25
1635
+
1636
+ #### NEW
1637
+
1638
+ - `doing config set` to set single config values from command line
1639
+ - BREAKING CHANGE: Moves ~/.doingrc to ~/.config/doing/config.yml
1640
+ - BREAKING CHANGE: convert config flags to subcommands, e.g. `doing config --udpate` => `doing config update`, and `doing config --dump` => `doing config dump`
1641
+
1642
+ ### 2.0.24
1643
+
1644
+ - include fzf source directly, in case git isn't installed
1645
+ - fall back to installing fzf with sudo on error
1646
+
1647
+ ### 2.0.20
1648
+
1649
+ #### IMPROVED
1650
+
1651
+ - completion script generator refactor and progress bars
1652
+
1653
+ #### FIXED
1654
+
1655
+ - compile fzf for current operating system
1656
+
1657
+ ### 2.0.19
1658
+
1659
+ #### FIXED
1660
+
1661
+ - Remove any coloring before writing to doing file
1662
+
1663
+ ### 2.0.18
1664
+
1665
+ #### FIXED
1666
+
1667
+ - Escape codes being included in doing file
1668
+
1669
+ ### 2.0.17
1670
+
1671
+ #### IMPROVED
1672
+
1673
+ - Improvements to %title formatting and wrapping
1674
+
1675
+ ### 2.0.16
1676
+
1677
+ - Test release to validate git flow automation
1678
+
1679
+ ### 2.0.13
1680
+
1681
+ #### FIXED
1682
+
1683
+ - Remove amatch gem dependency due to compatibility issues with Windows systems (also removes `--fuzzy` option from all search commands)
1684
+
1685
+ ### 2.0.11
1686
+
1687
+ #### NEW
1688
+
1689
+ - Append `/r` to tag transforms to replace original tag
1690
+
1691
+ #### FIXED
1692
+
1693
+ - Autotag tag transform fixes
1694
+
1695
+ ### 2.0.10
1696
+
1697
+ #### NEW
1698
+
1699
+ - Add 'timer_format' config with 'human' option for tag totals
1700
+ - If `doing view` and `doing show` are confused, offer option to run the other command
1701
+ - `doing completion` to generate shell completion scripts for zsh, bash, and fish
1702
+ - `--search` and `--not` for cancel command
1703
+ - `--case` flag for commands with `--search`. Can be (c)ase-sensitive, (i)nsensitive, or (s)mart (default smart, case insensitive unless search string contains uppercase letters)
1704
+ - Add `--exact` flag to all commands with `--search` flag to force exact matching without requiring single quote prefix
1705
+ - Add `--not` flag to all commands with filters (`--tag`, `--search`, `--before`, etc.) to negate the filter and return entries NOT matched
1706
+
1707
+ #### IMPROVED
1708
+
1709
+ - More command line feedback
1710
+ - Error formatting and output
1711
+ - Add subcommand completion for `doing help` in fish shell
1712
+ - Logging and error handling
1713
+
1714
+ #### FIXED
1715
+
1716
+ - Zsh completion not outputting results
1717
+ - Remove `--[no]` from non-negatable options
1718
+ - `doing plugins -t export -c` not outputting columns
1719
+ - View config not respecting tag_order setting
1720
+
1721
+ ### 2.0.3.pre
1722
+
1723
+ #### NEW
1724
+
1725
+ - Import calendar events from Calendar.app on macOS
1726
+ - `doing config --update` will add newly added config keys to your existing config file (handy with plugins that define their own config keys)
1727
+ - Add %idnote template placeholder for "indented note" (entire note indented one tab)
1728
+ - (loosely printf-esque) formatting options for `%note` template placeholder
1729
+ - `--interactive` mode to act on results of `doing grep`
1730
+ - Printf formatting for title and date
1731
+ - Doing import plugin
1732
+ - Plugins command to list plugins
1733
+ - `--dump` option for `doing config` to output a key.path config key as JSON, YAML, or raw output
1734
+ - `--no-color` global flag
1735
+ - Log levels, with `--quiet` and `--verbose` global flags
1736
+ - Convert CLI messaging to Logger-based system
1737
+ - Use DOING_DEBUG, DOING_QUIET, or DOING_LOG_LEVEL environment variables to specify log levels before configuration is read
1738
+ - Hooks, register plugins to run based on events
1739
+ - --[no-]pager and paginate: config option to enable paging output
1740
+ - Never_finish and never_time config options to prevent items matching tags/sections from ever receiving @done (never_finish) or @done timestamp (never_time) - More configuration refactoring
1741
+
1742
+ #### IMPROVED
1743
+
1744
+ - Timeline output formatting
1745
+ - Major plugin architecture refactoring
1746
+ - Fix regression where notes stored in doing file were outdented, breaking TaskPaper compatibility
1747
+ - When accepting a date filter, allow end date to be in the future
1748
+ - If an edited item has no changes, don't update/output notification - Don't start with query when using grep `--interactive`
1749
+ - Select menu item formatting
1750
+ - Output wrapping for terminal display
1751
+ - Redirect warn to STDOUT when run with `--stdout`
1752
+ - Fish autocomplete
1753
+ - `--config_file` global flag deprected, now uses $DOING_CONFIG environment variable so that config overrides can be available before the initial configuration is run
1754
+ - When `--stdout` or not a TTY, no color or output formatting
1755
+ - Highlight tags when showing results. Because it looks nice.
1756
+ - `--tag` and `--search` for `doing note`
1757
+ - View/section fuzzy guessing
1758
+ - Error reporting
1759
+ - If `doing config` finds local doingrc files, offers a menu for editing
1760
+ - More filtering options for `doing finish`
1761
+ - Doing done accepts `--unfinished` flag to finish last entry not marked @done (instead of last entry)
1762
+ - Doing done accepts `--note` flag to append a note when completing an entry
1763
+
1764
+ #### FIXED
1765
+
1766
+ - Multi-word unquoted arguments to add_section being truncated
1767
+ - Show `--from` with date span
1768
+ - Handling of arbitrary times in natural language dates
1769
+ - Backward scope of since command with arbitrary times
1770
+ - `doing rotate --keep` wasn't respecting keep value
1771
+
1772
+ ### 1.0.93
1773
+
1774
+ #### FIXED
1775
+
1776
+ - Gemfile error
1777
+
1778
+ ### 1.0.91
1779
+
1780
+ #### NEW
1781
+
1782
+ - "taskpaper" format available for all output options
1783
+ - "markdown" format available for all output commands (GFM-style task list, customizable template)
1784
+ - `--rename` option for tag command to replace tags
1785
+ - `--regex` option for tag command, for `--remove` and `--rename`
1786
+
1787
+ ### 1.0.90
1788
+
1789
+ #### IMPROVED
1790
+
1791
+ - doing finish `--auto` now pulls from all sections, not just the section of the target entry
1792
+
1793
+ #### FIXED
1794
+
1795
+ - Minor fix for shell command in doing select
1796
+ - Fix for doing finish `--auto` when matched item is last in list
1797
+
1798
+ ### 1.0.89
1799
+
1800
+ #### NEW
1801
+
1802
+ - Pretty print JSON output
1803
+ - `--no-menu` option for select command to use `--query` as a filter and act on matching entries without displaying menu
1804
+
1805
+ ### 1.0.88
1806
+
1807
+ #### IMPROVED
1808
+
1809
+ - Add `--before` and `--after` time search to yesterday command
1810
+ - Add `--before` and `--after` date search to search/grep command
1811
+ - Add `--tag_order` to yesterday command
1812
+
1813
+ ### 1.0.87
1814
+
1815
+ #### IMPROVED
1816
+
1817
+ - Add leading spaces to make %shortdate align properly, at least for the last week
1818
+ - Add `--tag`, `--bool`, and `--search` to view command
1819
+ - Add `--before` and `--after` date search to view command
1820
+ - Add `--before` and `--after` date search to show command
1821
+ - Add `--before` and `--after` time search to today command
1822
+ - Add `--search` filter to show command
1823
+ - More alignment/formatting fixes for %shortdate
1824
+
1825
+ ### 1.0.86
1826
+
1827
+ #### IMPROVED
1828
+
1829
+ - Add `count` config option for templates->recent
1830
+
1831
+ ### 1.0.85
1832
+
1833
+ #### IMPROVED
1834
+
1835
+ - Add `--before` DATE_STRING to archive and rotate commands
1836
+ - Only create on rotate file per day, merge new entries into existing file
1837
+
1838
+ #### FIXED
1839
+
1840
+ - Fix `--auto` for finish command
1841
+
1842
+ ### 1.0.84
1843
+
1844
+ #### NEW
1845
+
1846
+ - `rotate` command for archiving entries to new file
1847
+
1848
+ #### FIXED
1849
+
1850
+ - Fixed current_section config key not being honored in some commands
1851
+
1852
+ ### 1.0.83
1853
+
1854
+ #### FIXED
1855
+
1856
+ - Fixes for `doing view` options, additional config keys for views
1857
+
1858
+ ### 1.0.82
1859
+
1860
+ #### FIXED
1861
+
1862
+ - Bugfixes
1863
+
1864
+ ### 1.0.81
1865
+
1866
+ #### IMPROVED
1867
+
1868
+ - fzf menu improvements
1869
+ - allow multiple selections `doing select` action menu
1870
+
1871
+ ### 1.0.80
1872
+
1873
+ #### IMPROVED
1874
+
1875
+ - Convert all menus to fzf screens
1876
+
1877
+ ### 1.0.79
1878
+
1879
+ #### IMPROVED
1880
+
1881
+ - Wildcard tag removal using `doing select -t "tag*" -r`
1882
+ - fzf menu display polish
1883
+
1884
+ #### FIXED
1885
+
1886
+ #### FIXED
1887
+
1888
+ - Gem missing fzf
1889
+
1890
+ ### 1.0.78
1891
+
1892
+ #### IMPROVED
1893
+
1894
+ - If no action is specified with select command, an interactive menu is
1895
+ presented
1896
+ - add output action select command with formatting and save options
1897
+ - Don't link URLs in html output that don't have a protocol
1898
+
1899
+ ### 1.0.76
1900
+
1901
+ #### IMPROVED
1902
+
1903
+ - Refine editing multiple selections (doing select)
1904
+
1905
+ ### 1.0.74
1906
+
1907
+ #### NEW
1908
+
1909
+ - Add `--tag` and `--search` flags to tag command to tag all entries matching search terms
1910
+ - Add since command, which is the same as `doing on tuesday to now` but `doing since tuesday` just feels more intuitive.
1911
+
1912
+ ### 1.0.73
1913
+
1914
+ #### FIXED
1915
+
1916
+ - Fix for timeline output
1917
+
1918
+ ### 1.0.72
1919
+
1920
+ #### NEW
1921
+
1922
+ - Add `doing select` to show menu of all tasks, searchable with fuzzy matching and the ability to perform certain tasks on multiple selections.
1923
+
1924
+ ### 1.0.71
1925
+
1926
+ #### FIXED
1927
+
1928
+ - Fix for template command not working at all
1929
+
1930
+ ### 1.0.70
1931
+
1932
+ #### FIXED
1933
+
1934
+ - Fix for `doing done --took 30m` setting the wrong @done timestamp when completing previous item
1935
+
1936
+ ### 1.0.69
1937
+
1938
+ #### IMPROVED
1939
+
1940
+ - Add `--unfinished` option to finish and cancel commands
1941
+
1942
+ ### 1.0.68
1943
+
1944
+ #### FIXED
1945
+
1946
+ - Fix error in `doing show --sort` argument parsing
1947
+
1948
+ ### 1.0.67
1949
+
1950
+ #### FIXED
1951
+
1952
+ - Gem packaging error
1953
+
1954
+ ### 1.0.66
1955
+
1956
+ #### IMPROVED
1957
+
1958
+ - More flexible boolean specification, can be: all, and, any, or, not, or none
1959
+
1960
+ #### FIXED
1961
+
1962
+ - Fix for some long flags being interpreted as arrays instead of strings
1963
+ - Fix for archive command not removing original entries from archived section
1964
+
1965
+ ### 1.0.65
1966
+
1967
+ #### IMPROVED
1968
+
1969
+ - Prevent duplicates/overlapping entries when importing
1970
+
1971
+ ### 1.0.64
1972
+
1973
+ #### NEW
1974
+
1975
+ - Initial import feature for Timing.app reports
1976
+
1977
+ ### 1.0.63
1978
+
1979
+ #### IMPROVED
1980
+
1981
+ - If `doing done --took=X` results in completion date greater than current time, use current time as completion date and backdate the entry's timestamp to fit
1982
+
1983
+ ### 1.0.62
1984
+
1985
+ #### FIXED
1986
+
1987
+ - `doing done` with `--took=` and without `--back=` should set end time to start date plus `--took` value
1988
+
1989
+ ### 1.0.61
1990
+
1991
+ #### IMPROVED
1992
+
1993
+ - Add `--search` filter to `doing archive`
1994
+
1995
+ ### 1.0.60
1996
+
1997
+ #### FIXED
1998
+
1999
+ - Default value for `doing again --bool` was ALL, should be AND
2000
+
2001
+ ### 1.0.59
2002
+
2003
+ #### IMPROVED
2004
+
2005
+ - Improvements to `doing again --tag=` functionality
2006
+
2007
+ ### 1.0.58
2008
+
2009
+ #### IMPROVED
2010
+
2011
+ - Finish previous task if `doing again` and not already completed
2012
+
2013
+ ### 1.0.57
2014
+
2015
+ #### IMPROVED
2016
+
2017
+ - Unit tests
2018
+
2019
+ ### 1.0.56
2020
+
2021
+ #### IMPROVED
2022
+
2023
+ - Tag command tests
2024
+
2025
+ #### FIXED
2026
+
2027
+ - Doing not reading per-directory .doingrc configs
2028
+
2029
+ ### 1.0.55
2030
+
2031
+ #### NEW
2032
+
2033
+ - Added config_editor_app setting to config so you can have
2034
+ - A parenthetical at the end of an entry title becomes an attached
2035
+ - `--editor` flag for `doing last` to edit last entry
2036
+ - `--tag=` flag to filter `doing last` by tag
2037
+ - `--search=` to filter `doing last` by text/regex search
2038
+ - `--search=` for `doing finish`, finish last X entries matching search
2039
+ - Add `tags_color` as a primary config key to highlight @tags in displayed entries
2040
+
2041
+ #### IMPROVED
2042
+
2043
+ - Clean up command line help
2044
+ - `--editor` improvements for all commands that use it
2045
+
2046
+ #### FIXED
2047
+
2048
+ - Doing finish `--took` throwing error
2049
+ - Doing tag `--remove` was adding tags if they didn't exist
2050
+ - Creating a meanwhile task with a note resulted in an error
2051
+
2052
+ ### 1.0.54
2053
+
2054
+ #### FIXED
2055
+
2056
+ - Bugfix for `finish --tag=TAG`
2057
+
2058
+ ### 1.0.53
2059
+
2060
+ #### NEW
2061
+
2062
+ - `--tag` and `--bool` filtering for again/resume, cancel
2063
+ - `--in` flag for `again`/`resume` to specify to which section the new
2064
+ - Finish command accepts `--tag=` flag, finishing last entry
2065
+ - `doing cancel` to end X tasks without completion date
2066
+
2067
+ #### IMPROVED
2068
+
2069
+ - Add `--no-color` option to view command
2070
+ - Add `--tag` to show for compatibility
2071
+
2072
+ #### FIXED
2073
+
2074
+ - Error running finish without `--tag` flag
2075
+ - `--archive` flag on finish, done, and cancel causing error
2076
+
2077
+ ### 1.0.52
2078
+
2079
+ #### NEW
2080
+
2081
+ - Finish command accepts `--tag=` flag, finishing last entry
2082
+
2083
+ #### FIXED
2084
+
2085
+ - `--archive` flag on finish, done, and cancel causing error
2086
+
2087
+ ### 1.0.49
2088
+
2089
+ #### FIXED
2090
+
2091
+ - Fix for missing date on @done tags
2092
+
2093
+ ### 1.0.48
2094
+
2095
+ #### FIXED
2096
+
2097
+ - Fix confirmation dialog for `doing tag -a -c 0` (autotag all)
2098
+
2099
+ ### 1.0.47
2100
+
2101
+ #### IMPROVED
2102
+
2103
+ - Remove check for file existence before attempting to run run_after script
2104
+ - Don't autotag entries restarted with `again/resume`
2105
+ - Add short flags (`-b`) for `--back` on all commands that support it
2106
+
2107
+ ### 1.0.46
2108
+
2109
+ #### IMPROVED
2110
+
2111
+ - Code cleanup
2112
+
2113
+ ### 1.0.45
2114
+
2115
+ #### IMPROVED
2116
+
2117
+ - Only execute run_after script if changes are written
2118
+
2119
+ ### 1.0.44
2120
+
2121
+ #### IMPROVED
2122
+
2123
+ - Remove unnecessary console logging
2124
+
2125
+ ### 1.0.43
2126
+
2127
+ #### NEW
2128
+
2129
+ - Add `again` command to repeat last entry without @done tag
2130
+ - Add `run_after` configuration option to execute external script after any change
2131
+
2132
+ ### 1.0.42
2133
+
2134
+ #### FIXED
2135
+
2136
+ - Fix note indentation in doing file
2137
+
2138
+ ### 1.0.41
2139
+
2140
+ #### FIXED
2141
+
2142
+ - Fix for repeated backreferences in tag transform
2143
+
2144
+ ### 1.0.40
2145
+
2146
+ #### IMPROVED
2147
+
2148
+ - Add `--tag_sort` to all subcommands with `--totals` option
2149
+
2150
+ ### 1.0.39
2151
+
2152
+ #### NEW
2153
+
2154
+ - Tag transforms
2155
+ - Option to sort tags by name in `--totals`
2156
+
2157
+ ### 1.0.33
2158
+
2159
+ #### FIXED
2160
+
2161
+ - Gem dependency updates
2162
+
2163
+ ### 1.0.30
2164
+
2165
+ #### FIXED
2166
+
2167
+ - Fix for array comparison error
2168
+
2169
+ ### 1.0.29
2170
+
2171
+ #### FIXED
2172
+
2173
+ - Bugfixes
2174
+
2175
+ ### 1.0.28
2176
+
2177
+ #### IMPROVED
2178
+
2179
+ - Global option `-x` to skip autotags and default_tags from global/local .doingrc
2180
+ - Remove extra spaces when creating entry
2181
+
2182
+ ### 1.0.27
2183
+
2184
+ #### IMPROVED
2185
+
2186
+ - More graceful writing of default config (~/.doingrc) on first run
2187
+ - Repaired testing setup. Needs moar tests.
2188
+
2189
+ ### 1.0.26
2190
+
2191
+ #### IMPROVED
2192
+
2193
+ - Add `--at` flag for `doing done`, e.g. `doing done --at=1:35pm --took=15m A new task I already finished`
2194
+ - Allow decimal quantities when using natural language for hours or days, e.g. `--took=2.5h`
2195
+ - Add `did` as a synonym for `done` subcommand
2196
+
2197
+ ### 1.0.25
2198
+
2199
+ #### IMPROVED
2200
+
2201
+ #### IMPROVED
2202
+
2203
+ - Smarter method of getting user $HOME
2204
+ - Improved avoiding duplicate tags when autotagging
2205
+ - Improved autotag reporting
2206
+
2207
+ ### 1.0.24
2208
+
2209
+ #### IMPROVED
2210
+
2211
+ - `doing note` operates on whatever is most recent, not just the last note in Currently
2212
+ - `doing tag` with no count specified operates on most recent entry in any section, not just Currently
2213
+ - `doing tag` with a count greater than 1 requires a section to be specified
2214
+ - Improved results reporting for `doing tag`
2215
+ - When removing tag do a whole-word match to avoid removing part of a longer tag
2216
+
2217
+ ### 1.0.23
2218
+
2219
+ #### IMPROVED
2220
+
2221
+ - Apply default_tags after autotagging to avoid tags triggering tags
2222
+ - Set `doing recent` to default to All sections instead of Currently
2223
+ - Fix error in time reporting
2224
+ - improved y/n prompt for TTY
2225
+
2226
+ ### 1.0.22
2227
+
2228
+ #### IMPROVED
2229
+
2230
+ - Allow cascading of local config files
2231
+ - Allow `doing today` and `yesterday` to specify a section
2232
+
2233
+ #### FIXED
2234
+
2235
+ - Fix handling of "local" config files, allowing per-project configurations
2236
+
2237
+ ### 1.0.21
2238
+
2239
+ #### NEW
2240
+
2241
+ - Add legitimate regex search capabilities
2242
+ - Synonyms for grep (search) and now (next)
2243
+
2244
+ #### FIXED
2245
+
2246
+ - CSS fix
2247
+
2248
+ ### 1.0.20
2249
+
2250
+ #### NEW
2251
+
2252
+ - New command `doing templates` to export default templates for HAML and CSS
2253
+ - New config options under `html_template` for `haml` and `css`
2254
+
2255
+ #### IMPROVED
2256
+
2257
+ - Rewrite HTML export templates with responsive layout and typography
2258
+ - Ability to customize the HTML output using HAML and CSS
2259
+
2260
+ ### 1.0.19
2261
+
2262
+ #### IMPROVED
2263
+
2264
+ - For `doing note -e` include the entry title so you know what you're adding a note to
2265
+ - For any other command that allows `-e` include a comment noting that anything after the first line creates a note
2266
+ - Ignore # comments when parsing editor results
2267
+ - Add a .md extension to the temp file passed to the editor so you can take advantage of any syntax highlighting and other features in your editor
2268
+
2269
+ ### 1.0.18
2270
+
2271
+ #### IMPROVED
2272
+
2273
+ - Loosened up the template color resetting a bit more
2274
+
2275
+ #### FIXED
2276
+
2277
+ - Fix `undefined method [] for nil class` error in `doing view`
2278
+
2279
+ ### 1.0.17
2280
+
2281
+ #### NEW
2282
+
2283
+ - Add `--stdout` global option to send reporting to STDOUT instead of STDERR (for use with LaunchBar et al)
2284
+
2285
+ ### 1.0.16
2286
+
2287
+ #### FIXED
2288
+
2289
+ - Fixes overzealous color resetting
2290
+
2291
+ ### 1.0.15
2292
+
2293
+ #### FIXED
2294
+
2295
+ - CLI/text totals block was outputting when HTML output was selected
2296
+ - Have all template colors reset bold and background automatically when called
2297
+
2298
+ ### 1.0.14
2299
+
2300
+ #### IMPROVED
2301
+
2302
+ - Fish completion
2303
+ - views and sections subcommands have -c option to output single column
2304
+ - Fix html title when tag_bool is NONE
2305
+ - Fix @from tagging missing closing paren
2306
+ - Fix tag coloring
2307
+
2308
+ ### 1.0.13
2309
+
2310
+ #### FIXED
2311
+
2312
+ - Fix gsub error in doing meanwhile
2313
+
2314
+ ### 1.0.8pre
2315
+
2316
+ #### NEW
2317
+
2318
+ - added doing on command
2319
+ - Added autotagging to tag command
2320
+ - JSON output option to view commands
2321
+ - date filtering, improved date language
2322
+ - let view templates define output format (csv, json, html, template)
2323
+
2324
+ #### IMPROVED
2325
+
2326
+ - add `%chompnote` template variable (item note with newlines and extra whitespace stripped)
2327
+
2328
+ ### 1.0.7pre
2329
+
2330
+ #### IMPROVED
2331
+
2332
+ - Slightly fuzzier searching in the grep command
2333
+ - cleaner exits, `only_timed` key for view configs
2334
+ - making the note command append new notes better, and load existing notes in the editor if `-e` is called
2335
+ - handle multiple tag input in `show` tag filter
2336
+ - Global tag operations, better reporting
2337
+
2338
+ #### FIXED
2339
+
2340
+ - fix for `-v` option
2341
+
2342
+ ### 1.0.4pre
2343
+
2344
+ #### IMPROVED
2345
+
2346
+ - Improved HTML output
2347
+ - `--only_timed` option for view/show commands that only outputs items with elapsed timers (interval between start and done dates)
2348
+ - add seconds for timed items in CSV output, run `--only_timed` before chopping off `--count #`
2349
+ - fix for 1.8.7 `Dir.home` issue
2350
+ - version bump
2351
+ - don't show tag totals with zero times
2352
+ - zsh completion for doing
2353
+ - HTML styling
2354
+ - `--only_timed` option
2355
+ - added zsh completion file to `README.md`
2356
+ - add zsh completion file
2357
+
2358
+ ### 1.0.3pre
2359
+
2360
+ #### IMPROVED
2361
+
2362
+ - `done` command: making `--took` modify start time if `--back` isn't specified
2363
+ - Cleaned up time totals, improved HTML output
2364
+ - fixes for `--back` and `--took` parsing
2365
+ - Adding more complete terminal reporting to archive command
2366
+
2367
+ ### 1.0.0pre
2368
+
2369
+ #### IMPROVED
2370
+
2371
+ - Skipped ahead in the version numbering. Because I don't care.
2372
+ - Added a `note` command and `--note` flags for entry creation commands
2373
+
2374
+ ### 0.2.6pre
2375
+
2376
+ #### IMPROVED
2377
+
2378
+ - `--totals`, `--[no-]times`, `--output [csv,html]` options for `yesterday` command.
2379
+ - Add tests for Darwin to hide OS X-only features on other systems
2380
+ - `-f` flag to `now` command for finishing last task when starting a new one (Looks back for the last unfinished task in the list)
2381
+ - `--took` option for `done` and `finish` for specifying intervals from the start date for the completion date
2382
+ - Basic command line reporting
2383
+ - `--auto` flag for `finish` and `done` that will automatically set the completion time to 1 minute before the next start time in the list. You can use it retroactively to add times to sequential todos.
2384
+ - `doing grep` for searching by text or regex
2385
+
2386
+ ### 0.2.5
2387
+
2388
+ #### IMPROVED
2389
+
2390
+ - Default to showing times #26, show totals even if no tags exist #27, fix indentation #29
2391
+ - Add section label to archived tasks automatically, excepting `Currently` section
2392
+ - Today outputs and backdate for finish
2393
+ - HTML styling and fix for 1.8.7 HAML errors
2394
+ - Look, HTML output! (`--output html`)
2395
+ - Also, `--output csv`
2396
+ - let doing `archive` function on all sections
2397
+ - option to exclude date from _@done_,
2398
+ - output newlines in sections and views
2399
+ - Flagging (`doing mark`)
2400
+ - fix for view/section guess error
2401
+ - Adding tag filtering to archive command (`doing archive \@done`)
2402
+ - `doing yesterday`
2403
+ - `doing done -r` to remove last doing tag (optionally from `-s Section`)
2404
+ - Add `-f` flag to specify alternate doing file
2405
+ - `meanwhile` command
2406
+
2407
+ ### 0.2.1
2408
+
2409
+ #### IMPROVED
2410
+
2411
+ - CSV output for show command (`--csv`)
2412
+ - HTML output for show command (`--output html`)
2413
+ - fuzzy searching for all commands that specify a view.
2414
+ - In the terminal, you'll see "Assume you meant XXX" to show what match it found, but this is output to STDERR (and won't show up if you're redirecting the output or using it in GeekTool, etc.)
2415
+ - `tags_color` in view config to highlight tags at the end of the lines. Can be set to any of the `%colors`.
2416
+ - Basic time tracking.
2417
+ - `-t` on `show` and `view` will turn on time calculations
2418
+ - Intervals between timestamps and dated _@done_ tags are calculated for each line, if the tag exists.
2419
+ - You must include a `%interval` token in the appropriate template for it to show
2420
+ - _@start(date)_ tags can optionally be used to override the timestamp in the calculation
2421
+ - Any other tags in the line have that line's total added to them
2422
+ - Totals for tags can be displayed at the end of output with `--totals`
2423
+
2424
+
2425
+ ### 0.2.0
2426
+
2427
+ #### IMPROVED
2428
+
2429
+ - `doing done` without argument tags last entry done
2430
+ - `-a` archives them
2431
+ - `doing finish` or `doing finish X` marks last X entries done
2432
+ - `-a` archives them
2433
+ - `doing tag tag1 [tag2]` tags last entry or `-c X` entries
2434
+ - `doing tag -r tag1 [tag2]` removes said tag(s)
2435
+ - custom views additions
2436
+ - custom views can include `tags` and `tags_bool`
2437
+ - `tags` is a space-separated list of tags to filter the results by
2438
+ - `tags_bool` defines `AND` (all tags must exist), `OR` (any tag exists), or `NONE` (none of the tags exist)
2439
+ - `order` key (`asc` or `desc`) defines output sort order by date
2440
+ - section key can be set to `All` to combine sections
2441
+ - `doing show` updates
2442
+ - accepts `all` as a section
2443
+ - arguments following section name are tags to filter by
2444
+ - `-b` sets boolean (`AND`, `OR`, `NONE`) or (`ALL`, `ANY`, `NONE`) (default `OR`/`ANY`)
2445
+ - use `-c X` to limit results
2446
+ - use `-s` to set sort order (`asc` or `desc`)
2447
+ - use `-a` to set age (`newest` or `oldest`)
2448
+ - fuzzy section guessing when specified section isn't found
2449
+ - fuzzy view guessing for `doing view` command
2450
+
2451
+ ### 0.1.9
2452
+
2453
+ #### IMPROVED
2454
+
2455
+ - colors in templated output
2456
+ - `open` command
2457
+ - opens in the default app for file type
2458
+ - `-a APPNAME` (`doing open -a TaskPaper`)
2459
+ - `-b bundle_id` (`doing open -b com.sublimetext.3`)
2460
+ - `-e` switch for `now`, `later` and `done` commands
2461
+ - save a tmp file and open it in an editor
2462
+ - allows multi-line entries, anything after first line is considered a note
2463
+ - assumed when no input is provided (`doing now`)
2464
+ - `doing views` shows all available custom views
2465
+ - `doing view` without a view name will let you choose a view from a menu
2466
+ - `doing archive` fixed so that `-k X` works to keep `X` number of entries in the section
2467
+
2468
+ ### 0.1.7
2469
+
2470
+ #### IMPROVED
2471
+
2472
+ - colors in templated output
2473
+ - `open` command
2474
+ - opens in the default app for file type
2475
+ - `-a APPNAME` (`doing open -a TaskPaper`)
2476
+ - `-b bundle_id` (`doing open -b com.sublimetext.3`)
2477
+ - `-e` switch for `now`, `later`, and `done` commands
2478
+ - save a tmp file and open it in an editor
2479
+ - allows multi-line entries, anything after first line is considered a note
2480
+ - assumed when no input is provided (`doing now`)
2481
+
2482
+ and hitting tab will offer completions of subcommands and their options.' command :completion do |c|
2483
+ - `doing completion install SHELL` will copy the default completion scripts to your ~/.local/share/doing folder and offer to symlink them to autoload directories. These scripts are generated with each release but will not include any custom commands or plugins in the completions.
2484
+
2485
+ #### IMPROVED
2486
+
2487
+ - `doing completion` now uses subcommands, `generate` and `install`. The install command will write default scripts to ~/.local/share/doing/completion and link them into the appropriate autoload directory for the shell. The generate command will create new scripts that include any custom commands and plugins. # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch develop # Your branch is ahead of 'origin/develop' by 1 commit. # # Changes to be committed: # modified: CHANGELOG.md # modified: bin/commands/completion.rb # modified: lib/doing/completion.rb # # ------------------------ >8 ------------------------ # Do not modify or remove the line above. # Everything below it will be ignored. diff --git a/CHANGELOG.md b/CHANGELOG.md index 9dbe52b..d4321f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +### 2.1.31 + +2022-02-16 10:13 + +#### NEW + +- `doing completion install SHELL` will copy the default completion scripts to your ~/.local/share/doing folder and offer to symlink them to autoload directories. These scripts are generated with each release but will not include any custom commands or plugins in the completions. # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch develop # Your branch is up to date with 'origin/develop'. # # Changes to be committed: # modified: Gemfile.lock # modified: README.md # modified: bin/commands/completion.rb # modified: lib/doing/completion.rb # modified: lib/doing/version.rb # # ------------------------ >8 ------------------------ # Do not modify or remove the line above. # Everything below it will be ignored. diff --git a/Gemfile.lock b/Gemfile.lock index c780406..9261a44 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: + +#### IMPROVED + +- When generating completion scripts using `doing completion --file FILE_PATH`, if the file specified is not in an auto-load directory for the shell type, offer to symlink the output to an appropriate directory + ### 2.1.30 2022-02-16 07:18 diff --git a/bin/commands/completion.rb b/bin/commands/completion.rb index 3d4f479..c3358e5 100644 --- a/bin/commands/completion.rb +++ b/bin/commands/completion.rb @@ -5,36 +5,65 @@ desc 'Generate shell completion scripts' long_desc 'Generates the necessary scripts to add command line completion to various shells, so typing ### 2.1.30
2488
+
2489
+ 2022-02-16 07:18
2490
+
2491
+ #### IMPROVED
2492
+
2493
+ - `doing changes` does a better job of parsing a lookup string like '>= 2.1.10 < 2.1.15'
2494
+
2495
+ #### FIXED
2496
+
2497
+ - System agnostic platform detection, so commands that check for Darwin won't error out on other systems
2498
+ - `doing completions` debugging code
2499
+
2500
+ ### 2.1.29
2501
+
2502
+ 2022-02-14 12:42
2503
+
2504
+ #### IMPROVED
2505
+
2506
+ - `doing changes --interactive` will load up a changelog viewer using fzf. Because it makes me happy, that's why.
2507
+
2508
+ ### 2.1.28
2509
+
2510
+ 2022-02-14 11:39
2511
+
2512
+ #### FIXED
2513
+
2514
+ - Lines merging in `doing changes --changes` output
2515
+
2516
+ ### 2.1.27
2517
+
2518
+ 2022-02-14 06:04
2519
+
2520
+ #### NEW
2521
+
2522
+ - `doing finish --update` will overwrite any existing @done tag with a new date (current time or set with `--at` or `--back`)
2523
+
2524
+ #### IMPROVED
2525
+
2526
+ - Code refactoring and cleanup
2527
+ - Include release dates in `doing changes` output when available
2528
+ - Allow various naming conventions for %color strings in templates. Now `boldwhite`, `brightwhite`, `bg_bold_cyan`, and `bold_bg_cyan` all work (for example)
2529
+ - Common flags (e.g. --search, --tag) found on multiple commands consolidated and help descriptions matched
2530
+ - `commands_accepting` now accepts multiple arguments and a `--bool` flag
2531
+ - `changes` command can now output changes only (no version numbers) and defaults to raw Markdown if not a TTY or the `--md` flag is used
2532
+ - `doing archive` now accepts `--after` and `--from` date filters
2533
+
2534
+ #### FIXED
2535
+
2536
+ - Some flag descriptions in help
2537
+ - Editor detection
2538
+
2539
+ ### 2.1.26
2540
+
2541
+ 2022-01-23 16:14
2542
+
2543
+ #### NEW
2544
+
2545
+ - Use plugins.hidden_commands in configuration to disable any command (array of command names). Note that some commands use aliases and the first name should be used.
2546
+ - `doing commands [add|remove]` allows interactive enabling and disabling of default and custom commands
2547
+
2548
+ #### IMPROVED
2549
+
2550
+ - Moved all commands into separate files for management
2551
+
2552
+ #### FIXED
2553
+
2554
+ - Changelog command regex too greedy when parsing changelog
2555
+
2556
+ ### 2.1.25
2557
+
2558
+ 2022-01-23 09:25
2559
+
2560
+ ### 2.1.24
2561
+
2562
+ 2022-01-22 17:27
2563
+
2564
+ #### IMPROVED
2565
+
2566
+ - Minor update to Fish completion script
2567
+
2568
+ #### FIXED
2569
+
2570
+ - Changelog formatting issue
2571
+
2572
+ ### 2.1.23
2573
+
2574
+ 2022-01-22 15:52
2575
+
2576
+ #### NEW
2577
+
2578
+ - All display commands (except view) now accept `--config_template TEMPLATE_KEY` to override that commands default template.
2579
+ - Display commands accept `--template`, which takes a template string containing %placeholders and overrides the commands default template output. Affects grep, last, on, recent, show, since, today, yesterday
2580
+
2581
+ #### IMPROVED
2582
+
2583
+ - With complete examples in the help output for most commands, `doing help` almost always requires scrolling up. It now automatically paginates using your system $PAGER (or best detected option).
2584
+ - `doing tags` takes a MAX_COUNT argument to limit results when searching
2585
+ - `doing tags --line` flag to output tags in a single line
2586
+ - Mostly for my own use, `doing changes` (which views the changelog) now accepts `--lookup VERSION` and `--search SEARCH_PATTERN`
2587
+ - `doing changes --lookup` accepts `"< 2.1 > 2.0"`, `"2.1.10-2.2"`, a specific version, or a version number with wildcards
2588
+ - When registering hooks, you can pass an array to register a block for multiple events, assuming the events provide the same block arguments (like post_entry_added and post_entry_updated)
2589
+
2590
+ #### FIXED
2591
+
2592
+ - Running `--tag "@doing"` wouldn't work where `--tag "doing"` would. Now properly ignoring @ symbols
2593
+
2594
+ ### 2.1.22
2595
+
2596
+ 2022-01-21 14:53
2597
+
2598
+ ### 2.1.21
2599
+
2600
+ 2022-01-20 12:05
2601
+
2602
+ #### FIXED
2603
+
2604
+ - Custom types not available to custom commands
2605
+
2606
+ ### 2.1.20
2607
+
2608
+ 2022-01-20 11:49
2609
+
2610
+ #### NEW
2611
+
2612
+ - Autotag option for interactive `doing select` menu
2613
+ - (Breaking change) Made the later command an optional plugin, see wiki for how to install (and create) custom commands
2614
+ - Config setting doing_file_sort (asc or desc) determines the sort order of entries in the actual Doing file. Has no effect on other operations, just allows you to store the file with newest entries at top (desc) or bottom (asc).
2615
+
2616
+ #### IMPROVED
2617
+
2618
+ - Autotag improvements
2619
+ - If doing is run without a command but with arguments, execute it as if you'd run `doing now`, passing the arguments to that. So you can just write "doing this thing" instead of "doing now this thing", as long as the first word of the arguments is not a recognized command.
2620
+
2621
+ #### FIXED
2622
+
2623
+ - `doing again` should only mark the original repeating entry @done, not search for the last unfinished entry
2624
+ - Error when using `doing finish --auto`
2625
+ - `doing on wed` when today is wednesday not returning results
2626
+ - Using `config set` with a false value deleted the key from config
2627
+ - `config set` with true or false value was inserting a quoted string
2628
+ - Entries were not being sorted (at all) within sections when writing the Doing file
2629
+
2630
+ ### 2.1.19
2631
+
2632
+ 2022-01-18 08:40
2633
+
2634
+ #### FIXED
2635
+
2636
+ - Search highlighting error with some pattern searches
2637
+ - Reverse sort of items in menu from `--interactive` flags
2638
+ - Nil error when `--interactive` was called without search results
2639
+
2640
+ ### 2.1.18
2641
+
2642
+ Build automation test
2643
+
2644
+ ### 2.1.17
2645
+
2646
+ 2022-01-18 07:26
2647
+
2648
+ #### NEW
2649
+
2650
+ - `--hilite` option for `doing search` to highlight matches in search results (terminal output only)
2651
+ - `--hilite` flag for `show` and `view` to highlight results when used with `--search`
2652
+
2653
+ #### IMPROVED
2654
+
2655
+ - Show preview of up to 5 items when confirming a delete operation so you actually know what you're deleting
2656
+ - Allow `--ask` when creating new entry via STDIN pipe
2657
+ - Tab completion for known tags when creating an entry interactively
2658
+ - Add purple as an alias for magenta in template colors
2659
+
2660
+ #### FIXED
2661
+
2662
+ - Clear STDIN before requesting input
2663
+
2664
+ ### 2.1.16
2665
+
2666
+ 2022-01-18 02:45
2667
+
2668
+ #### NEW
2669
+
2670
+ - `doing done --from "3pm to 3:15pm"` to set start and end times with natural language string
2671
+
2672
+ #### IMPROVED
2673
+
2674
+ - Running `doing tag` without arguments takes command line input
2675
+ - If `doing now` or `doing later` are run without arguments, interactively request necessary information (you can still use `--editor` to edit in your preferred editor)
2676
+ - Tab completion for tags when entering at prompt
2677
+ - Use readline when requesting input text, better editing features
2678
+ - `doing done --at` no longer overrides `--back`
2679
+
2680
+ #### FIXED
2681
+
2682
+ - `doing select` -> output formatted empty output
2683
+ - Sort items by date when using `doing select --editor` (was loading in selection order instead)
2684
+ - Ruby 2.7 error in template output (.empty? on FalseClass)
2685
+ - Don't add empty entry when cancelling `--editor`
2686
+ - Batch editing bugs
2687
+
2688
+ ### 2.1.15
2689
+
2690
+ 2022-01-17 07:25
2691
+
2692
+ #### NEW
2693
+
2694
+ - When completing an entry, if the elapsed time would be greater than a (configurable) amount, doing will now ask for confirmation and allow you to enter a new duration before setting the @done date
2695
+
2696
+ #### IMPROVED
2697
+
2698
+ - When entering intervals, you can now use 1h30m in addition to 1.5h or 90m
2699
+ - Date expansion works in more circumstances
2700
+ - You can include date tags with natural language values when adding tags via `doing select`
2701
+
2702
+ #### FIXED
2703
+
2704
+ - Tags containing values with spaces no longer cause errors
2705
+
2706
+ ### 2.1.14
2707
+
2708
+ #### NEW
2709
+
2710
+ - All commands that accept `--note` now accept `--ask`, which requests input via readline after creating the note. Multiple lines are allowed, hit return twice to end editing. Works alongside `--note` and `--editor`
2711
+
2712
+ #### IMPROVED
2713
+
2714
+ - Implement `--search` and `--from` filtering for import plugins
2715
+ - UTC format date strings in select menus for consistency (was relative date formatting)
2716
+ - Don't populate the fzf search with `--search`, it's already filtered. Separated `--query` from `--search` if you do want to populate the query string in addition to `--search` filtering
2717
+ - When showing relative dates, don't include the year if the date is the previous year but a later month than the current month (less than a year old)
2718
+ - When using `--editor` while adding an entry, include any note specified on the command line or via `--ask` for further editing
2719
+
2720
+ ### 2.1.13
2721
+
2722
+ #### NEW
2723
+
2724
+ - `--val` flag for all display commands, allows tag value queries. Tag values are contained in parenthesis after the tag, e.g. @progress(50). Queries look like `--val "done < two weeks ago"`, "project *= oracle" or "progress >= 50". Wildcards allowed in value, comparators can be <, >, <=, >=, ==, *= (contains), ^= (begins with), $= (ends with). Numeric and date comparisons are detected automatically. Text comparisons are case insensitive. `--val` can be used multiple times in a command and you can use `--bool` to specify AND, OR, or NOT (default AND)
2725
+ - `doing tag` now accepts a `--value` flag to define a value for a single tag, e.g. @tag(value)
2726
+
2727
+ #### FIXED
2728
+
2729
+ - `doing last --editor` errors
2730
+
2731
+ ### 2.1.12
2732
+
2733
+ #### NEW
2734
+
2735
+ - Tag_dir command creates/updates .doingrc files in the current directory with default_tags values. Then all entries created within that directory (or subdirs) get tagged with that value.
2736
+ - Synonym triggers allow `*` and `?` wildcards
2737
+ - Add `--delete` flag for `doing last` to delete last entry
2738
+ - `--delete` and `--editor` flags for `doing search`, batch edit and delete
2739
+ - Example hook to add new entries containing a certain tag to Day One
2740
+ - New hooks: pre_entry_add, post_entry_added, post_entry_updated, post_entry_removed, pre_export
2741
+
2742
+ #### IMPROVED
2743
+
2744
+ - If you need to use a colon in an autotag transform pattern, you can split with double colon, e.g. pattern::replacement
2745
+ - Arrays defined in local configurations merge with main config instead of overwriting
2746
+
2747
+ #### FIXED
2748
+
2749
+ - `doing tags --interactive` wasn't showing menu
2750
+
2751
+ ### 2.1.10
2752
+
2753
+ #### NEW
2754
+
2755
+ - `--age` (oldest|newest) option for view command
2756
+
2757
+ ### 2.1.9
2758
+
2759
+ #### IMPROVED
2760
+
2761
+ - Only attempt to install fzf if it doesn't exist on the system. In case of errors, this means a user can manually install fzf and still be able to access `--interactive` options
2762
+
2763
+ #### FIXED
2764
+
2765
+ - Rotate command only archiving half of requested items
2766
+ - Frozen string error in doing import plugin
2767
+
2768
+ ### 2.1.8
2769
+
2770
+ #### NEW
2771
+
2772
+ - Hidden command `doing commands_accepting` which shows all commands that accept a given option, e.g. `doing commands_accepting search` shows all commands that take a search filter
2773
+ - Hidden command `doing changelog` which outputs a paginated, formatted version of the change history.
2774
+
2775
+ #### IMPROVED
2776
+
2777
+ - The output of `doing template --list` now shows the file type of each template
2778
+ - Output templates can now be saved to a default location/filename using `doing template html --save`
2779
+
2780
+ #### FIXED
2781
+
2782
+ - Error running `doing recent` on certain older ruby versions
2783
+
2784
+ ### 2.1.6
2785
+
2786
+ #### NEW
2787
+
2788
+ - `doing redo` undoes a redo
2789
+ - `doing undo -i` offers a list of available versions for selection
2790
+ - Multiple undo. Every time a command modifies the doing file, a backup is written. Running `doing undo` repeatedly steps back through history, `doing undo 5` jumps back 5 versions
2791
+ - When resetting via `doing select`, prompt for a date string
2792
+ - `doing reset` accepts a date string argument to use as start date instead of current time if provided
2793
+ - `doing tags` lists tags used in any/all sections, sortable, with or without frequency counts
2794
+ - `doing show --menu` offers an interactive menu for selecting section and tag filters
2795
+ - All commands that accept a `--tag` filter can now handle wildcards in the tag names. * to match any number of characters, ? to match a single character.
2796
+ - New boolean type for tag searches, PATTERN (which is now the default). Combine tags using symbols to create more complex boolean searches, e.g. "doing +coding -work"
2797
+ - You can now define `date_tags` in config, an array of tags/patterns that will be recognized when parsing for natural language dates which are converted when saving new entries
2798
+ - `--search` strings can contain quoted phrases and use +/- to require or ban terms, e.g. `--search 'doing +coding -writing'
2799
+ - Interactive option for redo command
2800
+ - Plugins for Day One export
2801
+
2802
+ #### IMPROVED
2803
+
2804
+ - Better diff output for fzf preview of `doing undo` history
2805
+ - Fall back to good ol' sed for colorizing diffs when no good tool is available
2806
+ - `doing redo` (a.k.a. `doing undo --redo`) can be run multiple times, stepping forward through undo history. Can also take a count to jump
2807
+ - Matching algorithm can be configured in settings
2808
+ - All template placeholders can now use the "printf" formatting that %title and %note have, allowing for padding, prefixes, etc.
2809
+ - Move default locations for doing file and backups to ~/.local/share/doing
2810
+ - `doing show --menu` will only offer tags that exist after any tag/search filters have been run
2811
+ - `doing show @tag` with `--menu` will first filter by the @tag, then do an OR search for tags selected from the menu
2812
+
2813
+ #### FIXED
2814
+
2815
+ - `doing reset` without filter not automatically affecting most recent entry
2816
+ - `config set` now preserves value type (string, array, mapping) of previous value, coercing new value if needed
2817
+ - Preserve colors when wrapping text to new lines
2818
+ - Tag highlighting errors
2819
+ - Template options specified in views were being overriden by options in templates. View config now has precedence, but will fall back to template config for missing keys
2820
+
2821
+ #### IMPROVED
2822
+
2823
+ - Better diff output for fzf preview of `doing undo` history
2824
+ - Fall back to good ol' sed for colorizing diffs when no good tool is available
2825
+ - `doing redo` (a.k.a. `doing undo --redo`) can be run multiple times, stepping forward through undo history. Can also take a count to jump
2826
+
2827
+ #### FIXED
2828
+
2829
+ - `doing reset` without filter not automatically affecting most recent entry
2830
+ - `config set` now preserves value type (string, array, mapping) of previous value, coercing new value if needed
2831
+
2832
+ ### 2.1.3
2833
+
2834
+ #### NEW
2835
+
2836
+ - BREAKING CHANGE: custom classes for Section (hash) and Items (Array). @content is still a regular Hash. Sections have methods :original and :items. This will affect plugins as wwid.content[section][:items] is now wwid[section].items (same for :original)
2837
+ - `doing config set -r key.path` will delete a key from any config file, removing empty parent keys
2838
+ - `config list` will list detected .doingrc files and the main config file in order of precedence - refactoring
2839
+ - When modifying start dates or @done dates via an editor command, natural language strings can be used and will be parsed into doing-formatted dates automatically
2840
+ - When editor is invoked, entry titles include start date, which can be modified
2841
+ - `--before`, `--after`, and `--from` date filters for select command
2842
+ - `--from` flag for `doing today` and `doing yesterday`, filter by time range
2843
+ - `--from` flag for `doing search`, filter by date/time range
2844
+ - Commands that accept `--before`, `--after`, and `--from` can now filter on time ranges. If the date string given contains only a time (no day or date), it will be interpreted as a time range, meaning the date isn't filtered, but only entries within the time range are shown/processed
2845
+ - Add %duration placeholder to template variables
2846
+ - Add `interval_format` setting to config (applies to root or any view/template) to set intervals/durations to human (2h 15m) or text (00:02:15)
2847
+ - Add `duration` key to config (root or view/template). If set to true, will display durations by default (no need for `--duration`)
2848
+ - Most display commands now have a `--duration` flag that will display an elapsed time if the entry is not marked @done
2849
+
2850
+ #### IMPROVED
2851
+
2852
+ - Config -o raw outputs value as YAML if result is a Hash/mapping, unquoted string if a single value, comma-separated list if it's an Array.
2853
+ - Config -o json no longer includes key, only value.
2854
+ - System agnostic method for checking available executables (pager, editor)
2855
+ - Using `config set` and selecting a local config will no longer write the entire config to the local .doingrc. Instead, a nested path to the particular setting will be added to the config file.
2856
+ - Config set will create missing keys. Fuzzy matching will work until the path fails, then path elements after that point will be added as verbatim keys to the specified configuration (with confirmation)
2857
+ - Make menus only as tall as needed, so 5 options don't take up the whole screen
2858
+ - Better word wrap for long note lines
2859
+
2860
+ #### FIXED
2861
+
2862
+ - `finish --took 60m` is supposed to backdate the start date if needed to finish at the current time and maintain an elapsed time
2863
+ - If an editor was specified for config (or default as fallback) with command line options (e.g. `emacs -nw`), Doing would fail to recognize that the executable was available.
2864
+
2865
+ ### 2.0.25
2866
+
2867
+ #### NEW
2868
+
2869
+ - `doing config set` to set single config values from command line
2870
+ - BREAKING CHANGE: Moves ~/.doingrc to ~/.config/doing/config.yml
2871
+ - BREAKING CHANGE: convert config flags to subcommands, e.g. `doing config --udpate` => `doing config update`, and `doing config --dump` => `doing config dump`
2872
+
2873
+ ### 2.0.24
2874
+
2875
+ - include fzf source directly, in case git isn't installed
2876
+ - fall back to installing fzf with sudo on error
2877
+
2878
+ ### 2.0.20
2879
+
2880
+ #### IMPROVED
2881
+
2882
+ - completion script generator refactor and progress bars
2883
+
2884
+ #### FIXED
2885
+
2886
+ - compile fzf for current operating system
2887
+
2888
+ ### 2.0.19
2889
+
2890
+ #### FIXED
2891
+
2892
+ - Remove any coloring before writing to doing file
2893
+
2894
+ ### 2.0.18
2895
+
2896
+ #### FIXED
2897
+
2898
+ - Escape codes being included in doing file
2899
+
2900
+ ### 2.0.17
2901
+
2902
+ #### IMPROVED
2903
+
2904
+ - Improvements to %title formatting and wrapping
2905
+
2906
+ ### 2.0.16
2907
+
2908
+ - Test release to validate git flow automation
2909
+
2910
+ ### 2.0.13
2911
+
2912
+ #### FIXED
2913
+
2914
+ - Remove amatch gem dependency due to compatibility issues with Windows systems (also removes `--fuzzy` option from all search commands)
2915
+
2916
+ ### 2.0.11
2917
+
2918
+ #### NEW
2919
+
2920
+ - Append `/r` to tag transforms to replace original tag
2921
+
2922
+ #### FIXED
2923
+
2924
+ - Autotag tag transform fixes
2925
+
2926
+ ### 2.0.10
2927
+
2928
+ #### NEW
2929
+
2930
+ - Add 'timer_format' config with 'human' option for tag totals
2931
+ - If `doing view` and `doing show` are confused, offer option to run the other command
2932
+ - `doing completion` to generate shell completion scripts for zsh, bash, and fish
2933
+ - `--search` and `--not` for cancel command
2934
+ - `--case` flag for commands with `--search`. Can be (c)ase-sensitive, (i)nsensitive, or (s)mart (default smart, case insensitive unless search string contains uppercase letters)
2935
+ - Add `--exact` flag to all commands with `--search` flag to force exact matching without requiring single quote prefix
2936
+ - Add `--not` flag to all commands with filters (`--tag`, `--search`, `--before`, etc.) to negate the filter and return entries NOT matched
2937
+
2938
+ #### IMPROVED
2939
+
2940
+ - More command line feedback
2941
+ - Error formatting and output
2942
+ - Add subcommand completion for `doing help` in fish shell
2943
+ - Logging and error handling
2944
+
2945
+ #### FIXED
2946
+
2947
+ - Zsh completion not outputting results
2948
+ - Remove `--[no]` from non-negatable options
2949
+ - `doing plugins -t export -c` not outputting columns
2950
+ - View config not respecting tag_order setting
2951
+
2952
+ ### 2.0.3.pre
2953
+
2954
+ #### NEW
2955
+
2956
+ - Import calendar events from Calendar.app on macOS
2957
+ - `doing config --update` will add newly added config keys to your existing config file (handy with plugins that define their own config keys)
2958
+ - Add %idnote template placeholder for "indented note" (entire note indented one tab)
2959
+ - (loosely printf-esque) formatting options for `%note` template placeholder
2960
+ - `--interactive` mode to act on results of `doing grep`
2961
+ - Printf formatting for title and date
2962
+ - Doing import plugin
2963
+ - Plugins command to list plugins
2964
+ - `--dump` option for `doing config` to output a key.path config key as JSON, YAML, or raw output
2965
+ - `--no-color` global flag
2966
+ - Log levels, with `--quiet` and `--verbose` global flags
2967
+ - Convert CLI messaging to Logger-based system
2968
+ - Use DOING_DEBUG, DOING_QUIET, or DOING_LOG_LEVEL environment variables to specify log levels before configuration is read
2969
+ - Hooks, register plugins to run based on events
2970
+ - --[no-]pager and paginate: config option to enable paging output
2971
+ - Never_finish and never_time config options to prevent items matching tags/sections from ever receiving @done (never_finish) or @done timestamp (never_time) - More configuration refactoring
2972
+
2973
+ #### IMPROVED
2974
+
2975
+ - Timeline output formatting
2976
+ - Major plugin architecture refactoring
2977
+ - Fix regression where notes stored in doing file were outdented, breaking TaskPaper compatibility
2978
+ - When accepting a date filter, allow end date to be in the future
2979
+ - If an edited item has no changes, don't update/output notification - Don't start with query when using grep `--interactive`
2980
+ - Select menu item formatting
2981
+ - Output wrapping for terminal display
2982
+ - Redirect warn to STDOUT when run with `--stdout`
2983
+ - Fish autocomplete
2984
+ - `--config_file` global flag deprected, now uses $DOING_CONFIG environment variable so that config overrides can be available before the initial configuration is run
2985
+ - When `--stdout` or not a TTY, no color or output formatting
2986
+ - Highlight tags when showing results. Because it looks nice.
2987
+ - `--tag` and `--search` for `doing note`
2988
+ - View/section fuzzy guessing
2989
+ - Error reporting
2990
+ - If `doing config` finds local doingrc files, offers a menu for editing
2991
+ - More filtering options for `doing finish`
2992
+ - Doing done accepts `--unfinished` flag to finish last entry not marked @done (instead of last entry)
2993
+ - Doing done accepts `--note` flag to append a note when completing an entry
2994
+
2995
+ #### FIXED
2996
+
2997
+ - Multi-word unquoted arguments to add_section being truncated
2998
+ - Show `--from` with date span
2999
+ - Handling of arbitrary times in natural language dates
3000
+ - Backward scope of since command with arbitrary times
3001
+ - `doing rotate --keep` wasn't respecting keep value
3002
+
3003
+ ### 1.0.93
3004
+
3005
+ #### FIXED
3006
+
3007
+ - Gemfile error
3008
+
3009
+ ### 1.0.91
3010
+
3011
+ #### NEW
3012
+
3013
+ - "taskpaper" format available for all output options
3014
+ - "markdown" format available for all output commands (GFM-style task list, customizable template)
3015
+ - `--rename` option for tag command to replace tags
3016
+ - `--regex` option for tag command, for `--remove` and `--rename`
3017
+
3018
+ ### 1.0.90
3019
+
3020
+ #### IMPROVED
3021
+
3022
+ - doing finish `--auto` now pulls from all sections, not just the section of the target entry
3023
+
3024
+ #### FIXED
3025
+
3026
+ - Minor fix for shell command in doing select
3027
+ - Fix for doing finish `--auto` when matched item is last in list
3028
+
3029
+ ### 1.0.89
3030
+
3031
+ #### NEW
3032
+
3033
+ - Pretty print JSON output
3034
+ - `--no-menu` option for select command to use `--query` as a filter and act on matching entries without displaying menu
3035
+
3036
+ ### 1.0.88
3037
+
3038
+ #### IMPROVED
3039
+
3040
+ - Add `--before` and `--after` time search to yesterday command
3041
+ - Add `--before` and `--after` date search to search/grep command
3042
+ - Add `--tag_order` to yesterday command
3043
+
3044
+ ### 1.0.87
3045
+
3046
+ #### IMPROVED
3047
+
3048
+ - Add leading spaces to make %shortdate align properly, at least for the last week
3049
+ - Add `--tag`, `--bool`, and `--search` to view command
3050
+ - Add `--before` and `--after` date search to view command
3051
+ - Add `--before` and `--after` date search to show command
3052
+ - Add `--before` and `--after` time search to today command
3053
+ - Add `--search` filter to show command
3054
+ - More alignment/formatting fixes for %shortdate
3055
+
3056
+ ### 1.0.86
3057
+
3058
+ #### IMPROVED
3059
+
3060
+ - Add `count` config option for templates->recent
3061
+
3062
+ ### 1.0.85
3063
+
3064
+ #### IMPROVED
3065
+
3066
+ - Add `--before` DATE_STRING to archive and rotate commands
3067
+ - Only create on rotate file per day, merge new entries into existing file
3068
+
3069
+ #### FIXED
3070
+
3071
+ - Fix `--auto` for finish command
3072
+
3073
+ ### 1.0.84
3074
+
3075
+ #### NEW
3076
+
3077
+ - `rotate` command for archiving entries to new file
3078
+
3079
+ #### FIXED
3080
+
3081
+ - Fixed current_section config key not being honored in some commands
3082
+
3083
+ ### 1.0.83
3084
+
3085
+ #### FIXED
3086
+
3087
+ - Fixes for `doing view` options, additional config keys for views
3088
+
3089
+ ### 1.0.82
3090
+
3091
+ #### FIXED
3092
+
3093
+ - Bugfixes
3094
+
3095
+ ### 1.0.81
3096
+
3097
+ #### IMPROVED
3098
+
3099
+ - fzf menu improvements
3100
+ - allow multiple selections `doing select` action menu
3101
+
3102
+ ### 1.0.80
3103
+
3104
+ #### IMPROVED
3105
+
3106
+ - Convert all menus to fzf screens
3107
+
3108
+ ### 1.0.79
3109
+
3110
+ #### IMPROVED
3111
+
3112
+ - Wildcard tag removal using `doing select -t "tag*" -r`
3113
+ - fzf menu display polish
3114
+
3115
+ #### FIXED
3116
+
3117
+ #### FIXED
3118
+
3119
+ - Gem missing fzf
3120
+
3121
+ ### 1.0.78
3122
+
3123
+ #### IMPROVED
3124
+
3125
+ - If no action is specified with select command, an interactive menu is
3126
+ presented
3127
+ - add output action select command with formatting and save options
3128
+ - Don't link URLs in html output that don't have a protocol
3129
+
3130
+ ### 1.0.76
3131
+
3132
+ #### IMPROVED
3133
+
3134
+ - Refine editing multiple selections (doing select)
3135
+
3136
+ ### 1.0.74
3137
+
3138
+ #### NEW
3139
+
3140
+ - Add `--tag` and `--search` flags to tag command to tag all entries matching search terms
3141
+ - Add since command, which is the same as `doing on tuesday to now` but `doing since tuesday` just feels more intuitive.
3142
+
3143
+ ### 1.0.73
3144
+
3145
+ #### FIXED
3146
+
3147
+ - Fix for timeline output
3148
+
3149
+ ### 1.0.72
3150
+
3151
+ #### NEW
3152
+
3153
+ - Add `doing select` to show menu of all tasks, searchable with fuzzy matching and the ability to perform certain tasks on multiple selections.
3154
+
3155
+ ### 1.0.71
3156
+
3157
+ #### FIXED
3158
+
3159
+ - Fix for template command not working at all
3160
+
3161
+ ### 1.0.70
3162
+
3163
+ #### FIXED
3164
+
3165
+ - Fix for `doing done --took 30m` setting the wrong @done timestamp when completing previous item
3166
+
3167
+ ### 1.0.69
3168
+
3169
+ #### IMPROVED
3170
+
3171
+ - Add `--unfinished` option to finish and cancel commands
3172
+
3173
+ ### 1.0.68
3174
+
3175
+ #### FIXED
3176
+
3177
+ - Fix error in `doing show --sort` argument parsing
3178
+
3179
+ ### 1.0.67
3180
+
3181
+ #### FIXED
3182
+
3183
+ - Gem packaging error
3184
+
3185
+ ### 1.0.66
3186
+
3187
+ #### IMPROVED
3188
+
3189
+ - More flexible boolean specification, can be: all, and, any, or, not, or none
3190
+
3191
+ #### FIXED
3192
+
3193
+ - Fix for some long flags being interpreted as arrays instead of strings
3194
+ - Fix for archive command not removing original entries from archived section
3195
+
3196
+ ### 1.0.65
3197
+
3198
+ #### IMPROVED
3199
+
3200
+ - Prevent duplicates/overlapping entries when importing
3201
+
3202
+ ### 1.0.64
3203
+
3204
+ #### NEW
3205
+
3206
+ - Initial import feature for Timing.app reports
3207
+
3208
+ ### 1.0.63
3209
+
3210
+ #### IMPROVED
3211
+
3212
+ - If `doing done --took=X` results in completion date greater than current time, use current time as completion date and backdate the entry's timestamp to fit
3213
+
3214
+ ### 1.0.62
3215
+
3216
+ #### FIXED
3217
+
3218
+ - `doing done` with `--took=` and without `--back=` should set end time to start date plus `--took` value
3219
+
3220
+ ### 1.0.61
3221
+
3222
+ #### IMPROVED
3223
+
3224
+ - Add `--search` filter to `doing archive`
3225
+
3226
+ ### 1.0.60
3227
+
3228
+ #### FIXED
3229
+
3230
+ - Default value for `doing again --bool` was ALL, should be AND
3231
+
3232
+ ### 1.0.59
3233
+
3234
+ #### IMPROVED
3235
+
3236
+ - Improvements to `doing again --tag=` functionality
3237
+
3238
+ ### 1.0.58
3239
+
3240
+ #### IMPROVED
3241
+
3242
+ - Finish previous task if `doing again` and not already completed
3243
+
3244
+ ### 1.0.57
3245
+
3246
+ #### IMPROVED
3247
+
3248
+ - Unit tests
3249
+
3250
+ ### 1.0.56
3251
+
3252
+ #### IMPROVED
3253
+
3254
+ - Tag command tests
3255
+
3256
+ #### FIXED
3257
+
3258
+ - Doing not reading per-directory .doingrc configs
3259
+
3260
+ ### 1.0.55
3261
+
3262
+ #### NEW
3263
+
3264
+ - Added config_editor_app setting to config so you can have
3265
+ - A parenthetical at the end of an entry title becomes an attached
3266
+ - `--editor` flag for `doing last` to edit last entry
3267
+ - `--tag=` flag to filter `doing last` by tag
3268
+ - `--search=` to filter `doing last` by text/regex search
3269
+ - `--search=` for `doing finish`, finish last X entries matching search
3270
+ - Add `tags_color` as a primary config key to highlight @tags in displayed entries
3271
+
3272
+ #### IMPROVED
3273
+
3274
+ - Clean up command line help
3275
+ - `--editor` improvements for all commands that use it
3276
+
3277
+ #### FIXED
3278
+
3279
+ - Doing finish `--took` throwing error
3280
+ - Doing tag `--remove` was adding tags if they didn't exist
3281
+ - Creating a meanwhile task with a note resulted in an error
3282
+
3283
+ ### 1.0.54
3284
+
3285
+ #### FIXED
3286
+
3287
+ - Bugfix for `finish --tag=TAG`
3288
+
3289
+ ### 1.0.53
3290
+
3291
+ #### NEW
3292
+
3293
+ - `--tag` and `--bool` filtering for again/resume, cancel
3294
+ - `--in` flag for `again`/`resume` to specify to which section the new
3295
+ - Finish command accepts `--tag=` flag, finishing last entry
3296
+ - `doing cancel` to end X tasks without completion date
3297
+
3298
+ #### IMPROVED
3299
+
3300
+ - Add `--no-color` option to view command
3301
+ - Add `--tag` to show for compatibility
3302
+
3303
+ #### FIXED
3304
+
3305
+ - Error running finish without `--tag` flag
3306
+ - `--archive` flag on finish, done, and cancel causing error
3307
+
3308
+ ### 1.0.52
3309
+
3310
+ #### NEW
3311
+
3312
+ - Finish command accepts `--tag=` flag, finishing last entry
3313
+
3314
+ #### FIXED
3315
+
3316
+ - `--archive` flag on finish, done, and cancel causing error
3317
+
3318
+ ### 1.0.49
3319
+
3320
+ #### FIXED
3321
+
3322
+ - Fix for missing date on @done tags
3323
+
3324
+ ### 1.0.48
3325
+
3326
+ #### FIXED
3327
+
3328
+ - Fix confirmation dialog for `doing tag -a -c 0` (autotag all)
3329
+
3330
+ ### 1.0.47
3331
+
3332
+ #### IMPROVED
3333
+
3334
+ - Remove check for file existence before attempting to run run_after script
3335
+ - Don't autotag entries restarted with `again/resume`
3336
+ - Add short flags (`-b`) for `--back` on all commands that support it
3337
+
3338
+ ### 1.0.46
3339
+
3340
+ #### IMPROVED
3341
+
3342
+ - Code cleanup
3343
+
3344
+ ### 1.0.45
3345
+
3346
+ #### IMPROVED
3347
+
3348
+ - Only execute run_after script if changes are written
3349
+
3350
+ ### 1.0.44
3351
+
3352
+ #### IMPROVED
3353
+
3354
+ - Remove unnecessary console logging
3355
+
3356
+ ### 1.0.43
3357
+
3358
+ #### NEW
3359
+
3360
+ - Add `again` command to repeat last entry without @done tag
3361
+ - Add `run_after` configuration option to execute external script after any change
3362
+
3363
+ ### 1.0.42
3364
+
3365
+ #### FIXED
3366
+
3367
+ - Fix note indentation in doing file
3368
+
3369
+ ### 1.0.41
3370
+
3371
+ #### FIXED
3372
+
3373
+ - Fix for repeated backreferences in tag transform
3374
+
3375
+ ### 1.0.40
3376
+
3377
+ #### IMPROVED
3378
+
3379
+ - Add `--tag_sort` to all subcommands with `--totals` option
3380
+
3381
+ ### 1.0.39
3382
+
3383
+ #### NEW
3384
+
3385
+ - Tag transforms
3386
+ - Option to sort tags by name in `--totals`
3387
+
3388
+ ### 1.0.33
3389
+
3390
+ #### FIXED
3391
+
3392
+ - Gem dependency updates
3393
+
3394
+ ### 1.0.30
3395
+
3396
+ #### FIXED
3397
+
3398
+ - Fix for array comparison error
3399
+
3400
+ ### 1.0.29
3401
+
3402
+ #### FIXED
3403
+
3404
+ - Bugfixes
3405
+
3406
+ ### 1.0.28
3407
+
3408
+ #### IMPROVED
3409
+
3410
+ - Global option `-x` to skip autotags and default_tags from global/local .doingrc
3411
+ - Remove extra spaces when creating entry
3412
+
3413
+ ### 1.0.27
3414
+
3415
+ #### IMPROVED
3416
+
3417
+ - More graceful writing of default config (~/.doingrc) on first run
3418
+ - Repaired testing setup. Needs moar tests.
3419
+
3420
+ ### 1.0.26
3421
+
3422
+ #### IMPROVED
3423
+
3424
+ - Add `--at` flag for `doing done`, e.g. `doing done --at=1:35pm --took=15m A new task I already finished`
3425
+ - Allow decimal quantities when using natural language for hours or days, e.g. `--took=2.5h`
3426
+ - Add `did` as a synonym for `done` subcommand
3427
+
3428
+ ### 1.0.25
3429
+
3430
+ #### IMPROVED
3431
+
3432
+ #### IMPROVED
3433
+
3434
+ - Smarter method of getting user $HOME
3435
+ - Improved avoiding duplicate tags when autotagging
3436
+ - Improved autotag reporting
3437
+
3438
+ ### 1.0.24
3439
+
3440
+ #### IMPROVED
3441
+
3442
+ - `doing note` operates on whatever is most recent, not just the last note in Currently
3443
+ - `doing tag` with no count specified operates on most recent entry in any section, not just Currently
3444
+ - `doing tag` with a count greater than 1 requires a section to be specified
3445
+ - Improved results reporting for `doing tag`
3446
+ - When removing tag do a whole-word match to avoid removing part of a longer tag
3447
+
3448
+ ### 1.0.23
3449
+
3450
+ #### IMPROVED
3451
+
3452
+ - Apply default_tags after autotagging to avoid tags triggering tags
3453
+ - Set `doing recent` to default to All sections instead of Currently
3454
+ - Fix error in time reporting
3455
+ - improved y/n prompt for TTY
3456
+
3457
+ ### 1.0.22
3458
+
3459
+ #### IMPROVED
3460
+
3461
+ - Allow cascading of local config files
3462
+ - Allow `doing today` and `yesterday` to specify a section
3463
+
3464
+ #### FIXED
3465
+
3466
+ - Fix handling of "local" config files, allowing per-project configurations
3467
+
3468
+ ### 1.0.21
3469
+
3470
+ #### NEW
3471
+
3472
+ - Add legitimate regex search capabilities
3473
+ - Synonyms for grep (search) and now (next)
3474
+
3475
+ #### FIXED
3476
+
3477
+ - CSS fix
3478
+
3479
+ ### 1.0.20
3480
+
3481
+ #### NEW
3482
+
3483
+ - New command `doing templates` to export default templates for HAML and CSS
3484
+ - New config options under `html_template` for `haml` and `css`
3485
+
3486
+ #### IMPROVED
3487
+
3488
+ - Rewrite HTML export templates with responsive layout and typography
3489
+ - Ability to customize the HTML output using HAML and CSS
3490
+
3491
+ ### 1.0.19
3492
+
3493
+ #### IMPROVED
3494
+
3495
+ - For `doing note -e` include the entry title so you know what you're adding a note to
3496
+ - For any other command that allows `-e` include a comment noting that anything after the first line creates a note
3497
+ - Ignore # comments when parsing editor results
3498
+ - Add a .md extension to the temp file passed to the editor so you can take advantage of any syntax highlighting and other features in your editor
3499
+
3500
+ ### 1.0.18
3501
+
3502
+ #### IMPROVED
3503
+
3504
+ - Loosened up the template color resetting a bit more
3505
+
3506
+ #### FIXED
3507
+
3508
+ - Fix `undefined method [] for nil class` error in `doing view`
3509
+
3510
+ ### 1.0.17
3511
+
3512
+ #### NEW
3513
+
3514
+ - Add `--stdout` global option to send reporting to STDOUT instead of STDERR (for use with LaunchBar et al)
3515
+
3516
+ ### 1.0.16
3517
+
3518
+ #### FIXED
3519
+
3520
+ - Fixes overzealous color resetting
3521
+
3522
+ ### 1.0.15
3523
+
3524
+ #### FIXED
3525
+
3526
+ - CLI/text totals block was outputting when HTML output was selected
3527
+ - Have all template colors reset bold and background automatically when called
3528
+
3529
+ ### 1.0.14
3530
+
3531
+ #### IMPROVED
3532
+
3533
+ - Fish completion
3534
+ - views and sections subcommands have -c option to output single column
3535
+ - Fix html title when tag_bool is NONE
3536
+ - Fix @from tagging missing closing paren
3537
+ - Fix tag coloring
3538
+
3539
+ ### 1.0.13
3540
+
3541
+ #### FIXED
3542
+
3543
+ - Fix gsub error in doing meanwhile
3544
+
3545
+ ### 1.0.8pre
3546
+
3547
+ #### NEW
3548
+
3549
+ - added doing on command
3550
+ - Added autotagging to tag command
3551
+ - JSON output option to view commands
3552
+ - date filtering, improved date language
3553
+ - let view templates define output format (csv, json, html, template)
3554
+
3555
+ #### IMPROVED
3556
+
3557
+ - add `%chompnote` template variable (item note with newlines and extra whitespace stripped)
3558
+
3559
+ ### 1.0.7pre
3560
+
3561
+ #### IMPROVED
3562
+
3563
+ - Slightly fuzzier searching in the grep command
3564
+ - cleaner exits, `only_timed` key for view configs
3565
+ - making the note command append new notes better, and load existing notes in the editor if `-e` is called
3566
+ - handle multiple tag input in `show` tag filter
3567
+ - Global tag operations, better reporting
3568
+
3569
+ #### FIXED
3570
+
3571
+ - fix for `-v` option
3572
+
3573
+ ### 1.0.4pre
3574
+
3575
+ #### IMPROVED
3576
+
3577
+ - Improved HTML output
3578
+ - `--only_timed` option for view/show commands that only outputs items with elapsed timers (interval between start and done dates)
3579
+ - add seconds for timed items in CSV output, run `--only_timed` before chopping off `--count #`
3580
+ - fix for 1.8.7 `Dir.home` issue
3581
+ - version bump
3582
+ - don't show tag totals with zero times
3583
+ - zsh completion for doing
3584
+ - HTML styling
3585
+ - `--only_timed` option
3586
+ - added zsh completion file to `README.md`
3587
+ - add zsh completion file
3588
+
3589
+ ### 1.0.3pre
3590
+
3591
+ #### IMPROVED
3592
+
3593
+ - `done` command: making `--took` modify start time if `--back` isn't specified
3594
+ - Cleaned up time totals, improved HTML output
3595
+ - fixes for `--back` and `--took` parsing
3596
+ - Adding more complete terminal reporting to archive command
3597
+
3598
+ ### 1.0.0pre
3599
+
3600
+ #### IMPROVED
3601
+
3602
+ - Skipped ahead in the version numbering. Because I don't care.
3603
+ - Added a `note` command and `--note` flags for entry creation commands
3604
+
3605
+ ### 0.2.6pre
3606
+
3607
+ #### IMPROVED
3608
+
3609
+ - `--totals`, `--[no-]times`, `--output [csv,html]` options for `yesterday` command.
3610
+ - Add tests for Darwin to hide OS X-only features on other systems
3611
+ - `-f` flag to `now` command for finishing last task when starting a new one (Looks back for the last unfinished task in the list)
3612
+ - `--took` option for `done` and `finish` for specifying intervals from the start date for the completion date
3613
+ - Basic command line reporting
3614
+ - `--auto` flag for `finish` and `done` that will automatically set the completion time to 1 minute before the next start time in the list. You can use it retroactively to add times to sequential todos.
3615
+ - `doing grep` for searching by text or regex
3616
+
3617
+ ### 0.2.5
3618
+
3619
+ #### IMPROVED
3620
+
3621
+ - Default to showing times #26, show totals even if no tags exist #27, fix indentation #29
3622
+ - Add section label to archived tasks automatically, excepting `Currently` section
3623
+ - Today outputs and backdate for finish
3624
+ - HTML styling and fix for 1.8.7 HAML errors
3625
+ - Look, HTML output! (`--output html`)
3626
+ - Also, `--output csv`
3627
+ - let doing `archive` function on all sections
3628
+ - option to exclude date from _@done_,
3629
+ - output newlines in sections and views
3630
+ - Flagging (`doing mark`)
3631
+ - fix for view/section guess error
3632
+ - Adding tag filtering to archive command (`doing archive \@done`)
3633
+ - `doing yesterday`
3634
+ - `doing done -r` to remove last doing tag (optionally from `-s Section`)
3635
+ - Add `-f` flag to specify alternate doing file
3636
+ - `meanwhile` command
3637
+
3638
+ ### 0.2.1
3639
+
3640
+ #### IMPROVED
3641
+
3642
+ - CSV output for show command (`--csv`)
3643
+ - HTML output for show command (`--output html`)
3644
+ - fuzzy searching for all commands that specify a view.
3645
+ - In the terminal, you'll see "Assume you meant XXX" to show what match it found, but this is output to STDERR (and won't show up if you're redirecting the output or using it in GeekTool, etc.)
3646
+ - `tags_color` in view config to highlight tags at the end of the lines. Can be set to any of the `%colors`.
3647
+ - Basic time tracking.
3648
+ - `-t` on `show` and `view` will turn on time calculations
3649
+ - Intervals between timestamps and dated _@done_ tags are calculated for each line, if the tag exists.
3650
+ - You must include a `%interval` token in the appropriate template for it to show
3651
+ - _@start(date)_ tags can optionally be used to override the timestamp in the calculation
3652
+ - Any other tags in the line have that line's total added to them
3653
+ - Totals for tags can be displayed at the end of output with `--totals`
3654
+
3655
+
3656
+ ### 0.2.0
3657
+
3658
+ #### IMPROVED
3659
+
3660
+ - `doing done` without argument tags last entry done
3661
+ - `-a` archives them
3662
+ - `doing finish` or `doing finish X` marks last X entries done
3663
+ - `-a` archives them
3664
+ - `doing tag tag1 [tag2]` tags last entry or `-c X` entries
3665
+ - `doing tag -r tag1 [tag2]` removes said tag(s)
3666
+ - custom views additions
3667
+ - custom views can include `tags` and `tags_bool`
3668
+ - `tags` is a space-separated list of tags to filter the results by
3669
+ - `tags_bool` defines `AND` (all tags must exist), `OR` (any tag exists), or `NONE` (none of the tags exist)
3670
+ - `order` key (`asc` or `desc`) defines output sort order by date
3671
+ - section key can be set to `All` to combine sections
3672
+ - `doing show` updates
3673
+ - accepts `all` as a section
3674
+ - arguments following section name are tags to filter by
3675
+ - `-b` sets boolean (`AND`, `OR`, `NONE`) or (`ALL`, `ANY`, `NONE`) (default `OR`/`ANY`)
3676
+ - use `-c X` to limit results
3677
+ - use `-s` to set sort order (`asc` or `desc`)
3678
+ - use `-a` to set age (`newest` or `oldest`)
3679
+ - fuzzy section guessing when specified section isn't found
3680
+ - fuzzy view guessing for `doing view` command
3681
+
3682
+ ### 0.1.9
3683
+
3684
+ #### IMPROVED
3685
+
3686
+ - colors in templated output
3687
+ - `open` command
3688
+ - opens in the default app for file type
3689
+ - `-a APPNAME` (`doing open -a TaskPaper`)
3690
+ - `-b bundle_id` (`doing open -b com.sublimetext.3`)
3691
+ - `-e` switch for `now`, `later` and `done` commands
3692
+ - save a tmp file and open it in an editor
3693
+ - allows multi-line entries, anything after first line is considered a note
3694
+ - assumed when no input is provided (`doing now`)
3695
+ - `doing views` shows all available custom views
3696
+ - `doing view` without a view name will let you choose a view from a menu
3697
+ - `doing archive` fixed so that `-k X` works to keep `X` number of entries in the section
3698
+
3699
+ ### 0.1.7
3700
+
3701
+ #### IMPROVED
3702
+
3703
+ - colors in templated output
3704
+ - `open` command
3705
+ - opens in the default app for file type
3706
+ - `-a APPNAME` (`doing open -a TaskPaper`)
3707
+ - `-b bundle_id` (`doing open -b com.sublimetext.3`)
3708
+ - `-e` switch for `now`, `later`, and `done` commands
3709
+ - save a tmp file and open it in an editor
3710
+ - allows multi-line entries, anything after first line is considered a note
3711
+ - assumed when no input is provided (`doing now`)
3712
+
3713
+ doing### 2.1.30
3714
+
3715
+ 2022-02-16 07:18
3716
+
3717
+ #### IMPROVED
3718
+
3719
+ - `doing changes` does a better job of parsing a lookup string like '>= 2.1.10 < 2.1.15'
3720
+
3721
+ #### FIXED
3722
+
3723
+ - System agnostic platform detection, so commands that check for Darwin won't error out on other systems
3724
+ - `doing completions` debugging code
3725
+
3726
+ ### 2.1.29
3727
+
3728
+ 2022-02-14 12:42
3729
+
3730
+ #### IMPROVED
3731
+
3732
+ - `doing changes --interactive` will load up a changelog viewer using fzf. Because it makes me happy, that's why.
3733
+
3734
+ ### 2.1.28
3735
+
3736
+ 2022-02-14 11:39
3737
+
3738
+ #### FIXED
3739
+
3740
+ - Lines merging in `doing changes --changes` output
3741
+
3742
+ ### 2.1.27
3743
+
3744
+ 2022-02-14 06:04
3745
+
3746
+ #### NEW
3747
+
3748
+ - `doing finish --update` will overwrite any existing @done tag with a new date (current time or set with `--at` or `--back`)
3749
+
3750
+ #### IMPROVED
3751
+
3752
+ - Code refactoring and cleanup
3753
+ - Include release dates in `doing changes` output when available
3754
+ - Allow various naming conventions for %color strings in templates. Now `boldwhite`, `brightwhite`, `bg_bold_cyan`, and `bold_bg_cyan` all work (for example)
3755
+ - Common flags (e.g. --search, --tag) found on multiple commands consolidated and help descriptions matched
3756
+ - `commands_accepting` now accepts multiple arguments and a `--bool` flag
3757
+ - `changes` command can now output changes only (no version numbers) and defaults to raw Markdown if not a TTY or the `--md` flag is used
3758
+ - `doing archive` now accepts `--after` and `--from` date filters
3759
+
3760
+ #### FIXED
3761
+
3762
+ - Some flag descriptions in help
3763
+ - Editor detection
3764
+
3765
+ ### 2.1.26
3766
+
3767
+ 2022-01-23 16:14
3768
+
3769
+ #### NEW
3770
+
3771
+ - Use plugins.hidden_commands in configuration to disable any command (array of command names). Note that some commands use aliases and the first name should be used.
3772
+ - `doing commands [add|remove]` allows interactive enabling and disabling of default and custom commands
3773
+
3774
+ #### IMPROVED
3775
+
3776
+ - Moved all commands into separate files for management
3777
+
3778
+ #### FIXED
3779
+
3780
+ - Changelog command regex too greedy when parsing changelog
3781
+
3782
+ ### 2.1.25
3783
+
3784
+ 2022-01-23 09:25
3785
+
3786
+ ### 2.1.24
3787
+
3788
+ 2022-01-22 17:27
3789
+
3790
+ #### IMPROVED
3791
+
3792
+ - Minor update to Fish completion script
3793
+
3794
+ #### FIXED
3795
+
3796
+ - Changelog formatting issue
3797
+
3798
+ ### 2.1.23
3799
+
3800
+ 2022-01-22 15:52
3801
+
3802
+ #### NEW
3803
+
3804
+ - All display commands (except view) now accept `--config_template TEMPLATE_KEY` to override that commands default template.
3805
+ - Display commands accept `--template`, which takes a template string containing %placeholders and overrides the commands default template output. Affects grep, last, on, recent, show, since, today, yesterday
3806
+
3807
+ #### IMPROVED
3808
+
3809
+ - With complete examples in the help output for most commands, `doing help` almost always requires scrolling up. It now automatically paginates using your system $PAGER (or best detected option).
3810
+ - `doing tags` takes a MAX_COUNT argument to limit results when searching
3811
+ - `doing tags --line` flag to output tags in a single line
3812
+ - Mostly for my own use, `doing changes` (which views the changelog) now accepts `--lookup VERSION` and `--search SEARCH_PATTERN`
3813
+ - `doing changes --lookup` accepts `"< 2.1 > 2.0"`, `"2.1.10-2.2"`, a specific version, or a version number with wildcards
3814
+ - When registering hooks, you can pass an array to register a block for multiple events, assuming the events provide the same block arguments (like post_entry_added and post_entry_updated)
3815
+
3816
+ #### FIXED
3817
+
3818
+ - Running `--tag "@doing"` wouldn't work where `--tag "doing"` would. Now properly ignoring @ symbols
3819
+
3820
+ ### 2.1.22
3821
+
3822
+ 2022-01-21 14:53
3823
+
3824
+ ### 2.1.21
3825
+
3826
+ 2022-01-20 12:05
3827
+
3828
+ #### FIXED
3829
+
3830
+ - Custom types not available to custom commands
3831
+
3832
+ ### 2.1.20
3833
+
3834
+ 2022-01-20 11:49
3835
+
3836
+ #### NEW
3837
+
3838
+ - Autotag option for interactive `doing select` menu
3839
+ - (Breaking change) Made the later command an optional plugin, see wiki for how to install (and create) custom commands
3840
+ - Config setting doing_file_sort (asc or desc) determines the sort order of entries in the actual Doing file. Has no effect on other operations, just allows you to store the file with newest entries at top (desc) or bottom (asc).
3841
+
3842
+ #### IMPROVED
3843
+
3844
+ - Autotag improvements
3845
+ - If doing is run without a command but with arguments, execute it as if you'd run `doing now`, passing the arguments to that. So you can just write "doing this thing" instead of "doing now this thing", as long as the first word of the arguments is not a recognized command.
3846
+
3847
+ #### FIXED
3848
+
3849
+ - `doing again` should only mark the original repeating entry @done, not search for the last unfinished entry
3850
+ - Error when using `doing finish --auto`
3851
+ - `doing on wed` when today is wednesday not returning results
3852
+ - Using `config set` with a false value deleted the key from config
3853
+ - `config set` with true or false value was inserting a quoted string
3854
+ - Entries were not being sorted (at all) within sections when writing the Doing file
3855
+
3856
+ ### 2.1.19
3857
+
3858
+ 2022-01-18 08:40
3859
+
3860
+ #### FIXED
3861
+
3862
+ - Search highlighting error with some pattern searches
3863
+ - Reverse sort of items in menu from `--interactive` flags
3864
+ - Nil error when `--interactive` was called without search results
3865
+
3866
+ ### 2.1.18
3867
+
3868
+ Build automation test
3869
+
3870
+ ### 2.1.17
3871
+
3872
+ 2022-01-18 07:26
3873
+
3874
+ #### NEW
3875
+
3876
+ - `--hilite` option for `doing search` to highlight matches in search results (terminal output only)
3877
+ - `--hilite` flag for `show` and `view` to highlight results when used with `--search`
3878
+
3879
+ #### IMPROVED
3880
+
3881
+ - Show preview of up to 5 items when confirming a delete operation so you actually know what you're deleting
3882
+ - Allow `--ask` when creating new entry via STDIN pipe
3883
+ - Tab completion for known tags when creating an entry interactively
3884
+ - Add purple as an alias for magenta in template colors
3885
+
3886
+ #### FIXED
3887
+
3888
+ - Clear STDIN before requesting input
3889
+
3890
+ ### 2.1.16
3891
+
3892
+ 2022-01-18 02:45
3893
+
3894
+ #### NEW
3895
+
3896
+ - `doing done --from "3pm to 3:15pm"` to set start and end times with natural language string
3897
+
3898
+ #### IMPROVED
3899
+
3900
+ - Running `doing tag` without arguments takes command line input
3901
+ - If `doing now` or `doing later` are run without arguments, interactively request necessary information (you can still use `--editor` to edit in your preferred editor)
3902
+ - Tab completion for tags when entering at prompt
3903
+ - Use readline when requesting input text, better editing features
3904
+ - `doing done --at` no longer overrides `--back`
3905
+
3906
+ #### FIXED
3907
+
3908
+ - `doing select` -> output formatted empty output
3909
+ - Sort items by date when using `doing select --editor` (was loading in selection order instead)
3910
+ - Ruby 2.7 error in template output (.empty? on FalseClass)
3911
+ - Don't add empty entry when cancelling `--editor`
3912
+ - Batch editing bugs
3913
+
3914
+ ### 2.1.15
3915
+
3916
+ 2022-01-17 07:25
3917
+
3918
+ #### NEW
3919
+
3920
+ - When completing an entry, if the elapsed time would be greater than a (configurable) amount, doing will now ask for confirmation and allow you to enter a new duration before setting the @done date
3921
+
3922
+ #### IMPROVED
3923
+
3924
+ - When entering intervals, you can now use 1h30m in addition to 1.5h or 90m
3925
+ - Date expansion works in more circumstances
3926
+ - You can include date tags with natural language values when adding tags via `doing select`
3927
+
3928
+ #### FIXED
3929
+
3930
+ - Tags containing values with spaces no longer cause errors
3931
+
3932
+ ### 2.1.14
3933
+
3934
+ #### NEW
3935
+
3936
+ - All commands that accept `--note` now accept `--ask`, which requests input via readline after creating the note. Multiple lines are allowed, hit return twice to end editing. Works alongside `--note` and `--editor`
3937
+
3938
+ #### IMPROVED
3939
+
3940
+ - Implement `--search` and `--from` filtering for import plugins
3941
+ - UTC format date strings in select menus for consistency (was relative date formatting)
3942
+ - Don't populate the fzf search with `--search`, it's already filtered. Separated `--query` from `--search` if you do want to populate the query string in addition to `--search` filtering
3943
+ - When showing relative dates, don't include the year if the date is the previous year but a later month than the current month (less than a year old)
3944
+ - When using `--editor` while adding an entry, include any note specified on the command line or via `--ask` for further editing
3945
+
3946
+ ### 2.1.13
3947
+
3948
+ #### NEW
3949
+
3950
+ - `--val` flag for all display commands, allows tag value queries. Tag values are contained in parenthesis after the tag, e.g. @progress(50). Queries look like `--val "done < two weeks ago"`, "project *= oracle" or "progress >= 50". Wildcards allowed in value, comparators can be <, >, <=, >=, ==, *= (contains), ^= (begins with), $= (ends with). Numeric and date comparisons are detected automatically. Text comparisons are case insensitive. `--val` can be used multiple times in a command and you can use `--bool` to specify AND, OR, or NOT (default AND)
3951
+ - `doing tag` now accepts a `--value` flag to define a value for a single tag, e.g. @tag(value)
3952
+
3953
+ #### FIXED
3954
+
3955
+ - `doing last --editor` errors
3956
+
3957
+ ### 2.1.12
3958
+
3959
+ #### NEW
3960
+
3961
+ - Tag_dir command creates/updates .doingrc files in the current directory with default_tags values. Then all entries created within that directory (or subdirs) get tagged with that value.
3962
+ - Synonym triggers allow `*` and `?` wildcards
3963
+ - Add `--delete` flag for `doing last` to delete last entry
3964
+ - `--delete` and `--editor` flags for `doing search`, batch edit and delete
3965
+ - Example hook to add new entries containing a certain tag to Day One
3966
+ - New hooks: pre_entry_add, post_entry_added, post_entry_updated, post_entry_removed, pre_export
3967
+
3968
+ #### IMPROVED
3969
+
3970
+ - If you need to use a colon in an autotag transform pattern, you can split with double colon, e.g. pattern::replacement
3971
+ - Arrays defined in local configurations merge with main config instead of overwriting
3972
+
3973
+ #### FIXED
3974
+
3975
+ - `doing tags --interactive` wasn't showing menu
3976
+
3977
+ ### 2.1.10
3978
+
3979
+ #### NEW
3980
+
3981
+ - `--age` (oldest|newest) option for view command
3982
+
3983
+ ### 2.1.9
3984
+
3985
+ #### IMPROVED
3986
+
3987
+ - Only attempt to install fzf if it doesn't exist on the system. In case of errors, this means a user can manually install fzf and still be able to access `--interactive` options
3988
+
3989
+ #### FIXED
3990
+
3991
+ - Rotate command only archiving half of requested items
3992
+ - Frozen string error in doing import plugin
3993
+
3994
+ ### 2.1.8
3995
+
3996
+ #### NEW
3997
+
3998
+ - Hidden command `doing commands_accepting` which shows all commands that accept a given option, e.g. `doing commands_accepting search` shows all commands that take a search filter
3999
+ - Hidden command `doing changelog` which outputs a paginated, formatted version of the change history.
4000
+
4001
+ #### IMPROVED
4002
+
4003
+ - The output of `doing template --list` now shows the file type of each template
4004
+ - Output templates can now be saved to a default location/filename using `doing template html --save`
4005
+
4006
+ #### FIXED
4007
+
4008
+ - Error running `doing recent` on certain older ruby versions
4009
+
4010
+ ### 2.1.6
4011
+
4012
+ #### NEW
4013
+
4014
+ - `doing redo` undoes a redo
4015
+ - `doing undo -i` offers a list of available versions for selection
4016
+ - Multiple undo. Every time a command modifies the doing file, a backup is written. Running `doing undo` repeatedly steps back through history, `doing undo 5` jumps back 5 versions
4017
+ - When resetting via `doing select`, prompt for a date string
4018
+ - `doing reset` accepts a date string argument to use as start date instead of current time if provided
4019
+ - `doing tags` lists tags used in any/all sections, sortable, with or without frequency counts
4020
+ - `doing show --menu` offers an interactive menu for selecting section and tag filters
4021
+ - All commands that accept a `--tag` filter can now handle wildcards in the tag names. * to match any number of characters, ? to match a single character.
4022
+ - New boolean type for tag searches, PATTERN (which is now the default). Combine tags using symbols to create more complex boolean searches, e.g. "doing +coding -work"
4023
+ - You can now define `date_tags` in config, an array of tags/patterns that will be recognized when parsing for natural language dates which are converted when saving new entries
4024
+ - `--search` strings can contain quoted phrases and use +/- to require or ban terms, e.g. `--search 'doing +coding -writing'
4025
+ - Interactive option for redo command
4026
+ - Plugins for Day One export
4027
+
4028
+ #### IMPROVED
4029
+
4030
+ - Better diff output for fzf preview of `doing undo` history
4031
+ - Fall back to good ol' sed for colorizing diffs when no good tool is available
4032
+ - `doing redo` (a.k.a. `doing undo --redo`) can be run multiple times, stepping forward through undo history. Can also take a count to jump
4033
+ - Matching algorithm can be configured in settings
4034
+ - All template placeholders can now use the "printf" formatting that %title and %note have, allowing for padding, prefixes, etc.
4035
+ - Move default locations for doing file and backups to ~/.local/share/doing
4036
+ - `doing show --menu` will only offer tags that exist after any tag/search filters have been run
4037
+ - `doing show @tag` with `--menu` will first filter by the @tag, then do an OR search for tags selected from the menu
4038
+
4039
+ #### FIXED
4040
+
4041
+ - `doing reset` without filter not automatically affecting most recent entry
4042
+ - `config set` now preserves value type (string, array, mapping) of previous value, coercing new value if needed
4043
+ - Preserve colors when wrapping text to new lines
4044
+ - Tag highlighting errors
4045
+ - Template options specified in views were being overriden by options in templates. View config now has precedence, but will fall back to template config for missing keys
4046
+
4047
+ #### IMPROVED
4048
+
4049
+ - Better diff output for fzf preview of `doing undo` history
4050
+ - Fall back to good ol' sed for colorizing diffs when no good tool is available
4051
+ - `doing redo` (a.k.a. `doing undo --redo`) can be run multiple times, stepping forward through undo history. Can also take a count to jump
4052
+
4053
+ #### FIXED
4054
+
4055
+ - `doing reset` without filter not automatically affecting most recent entry
4056
+ - `config set` now preserves value type (string, array, mapping) of previous value, coercing new value if needed
4057
+
4058
+ ### 2.1.3
4059
+
4060
+ #### NEW
4061
+
4062
+ - BREAKING CHANGE: custom classes for Section (hash) and Items (Array). @content is still a regular Hash. Sections have methods :original and :items. This will affect plugins as wwid.content[section][:items] is now wwid[section].items (same for :original)
4063
+ - `doing config set -r key.path` will delete a key from any config file, removing empty parent keys
4064
+ - `config list` will list detected .doingrc files and the main config file in order of precedence - refactoring
4065
+ - When modifying start dates or @done dates via an editor command, natural language strings can be used and will be parsed into doing-formatted dates automatically
4066
+ - When editor is invoked, entry titles include start date, which can be modified
4067
+ - `--before`, `--after`, and `--from` date filters for select command
4068
+ - `--from` flag for `doing today` and `doing yesterday`, filter by time range
4069
+ - `--from` flag for `doing search`, filter by date/time range
4070
+ - Commands that accept `--before`, `--after`, and `--from` can now filter on time ranges. If the date string given contains only a time (no day or date), it will be interpreted as a time range, meaning the date isn't filtered, but only entries within the time range are shown/processed
4071
+ - Add %duration placeholder to template variables
4072
+ - Add `interval_format` setting to config (applies to root or any view/template) to set intervals/durations to human (2h 15m) or text (00:02:15)
4073
+ - Add `duration` key to config (root or view/template). If set to true, will display durations by default (no need for `--duration`)
4074
+ - Most display commands now have a `--duration` flag that will display an elapsed time if the entry is not marked @done
4075
+
4076
+ #### IMPROVED
4077
+
4078
+ - Config -o raw outputs value as YAML if result is a Hash/mapping, unquoted string if a single value, comma-separated list if it's an Array.
4079
+ - Config -o json no longer includes key, only value.
4080
+ - System agnostic method for checking available executables (pager, editor)
4081
+ - Using `config set` and selecting a local config will no longer write the entire config to the local .doingrc. Instead, a nested path to the particular setting will be added to the config file.
4082
+ - Config set will create missing keys. Fuzzy matching will work until the path fails, then path elements after that point will be added as verbatim keys to the specified configuration (with confirmation)
4083
+ - Make menus only as tall as needed, so 5 options don't take up the whole screen
4084
+ - Better word wrap for long note lines
4085
+
4086
+ #### FIXED
4087
+
4088
+ - `finish --took 60m` is supposed to backdate the start date if needed to finish at the current time and maintain an elapsed time
4089
+ - If an editor was specified for config (or default as fallback) with command line options (e.g. `emacs -nw`), Doing would fail to recognize that the executable was available.
4090
+
4091
+ ### 2.0.25
4092
+
4093
+ #### NEW
4094
+
4095
+ - `doing config set` to set single config values from command line
4096
+ - BREAKING CHANGE: Moves ~/.doingrc to ~/.config/doing/config.yml
4097
+ - BREAKING CHANGE: convert config flags to subcommands, e.g. `doing config --udpate` => `doing config update`, and `doing config --dump` => `doing config dump`
4098
+
4099
+ ### 2.0.24
4100
+
4101
+ - include fzf source directly, in case git isn't installed
4102
+ - fall back to installing fzf with sudo on error
4103
+
4104
+ ### 2.0.20
4105
+
4106
+ #### IMPROVED
4107
+
4108
+ - completion script generator refactor and progress bars
4109
+
4110
+ #### FIXED
4111
+
4112
+ - compile fzf for current operating system
4113
+
4114
+ ### 2.0.19
4115
+
4116
+ #### FIXED
4117
+
4118
+ - Remove any coloring before writing to doing file
4119
+
4120
+ ### 2.0.18
4121
+
4122
+ #### FIXED
4123
+
4124
+ - Escape codes being included in doing file
4125
+
4126
+ ### 2.0.17
4127
+
4128
+ #### IMPROVED
4129
+
4130
+ - Improvements to %title formatting and wrapping
4131
+
4132
+ ### 2.0.16
4133
+
4134
+ - Test release to validate git flow automation
4135
+
4136
+ ### 2.0.13
4137
+
4138
+ #### FIXED
4139
+
4140
+ - Remove amatch gem dependency due to compatibility issues with Windows systems (also removes `--fuzzy` option from all search commands)
4141
+
4142
+ ### 2.0.11
4143
+
4144
+ #### NEW
4145
+
4146
+ - Append `/r` to tag transforms to replace original tag
4147
+
4148
+ #### FIXED
4149
+
4150
+ - Autotag tag transform fixes
4151
+
4152
+ ### 2.0.10
4153
+
4154
+ #### NEW
4155
+
4156
+ - Add 'timer_format' config with 'human' option for tag totals
4157
+ - If `doing view` and `doing show` are confused, offer option to run the other command
4158
+ - `doing completion` to generate shell completion scripts for zsh, bash, and fish
4159
+ - `--search` and `--not` for cancel command
4160
+ - `--case` flag for commands with `--search`. Can be (c)ase-sensitive, (i)nsensitive, or (s)mart (default smart, case insensitive unless search string contains uppercase letters)
4161
+ - Add `--exact` flag to all commands with `--search` flag to force exact matching without requiring single quote prefix
4162
+ - Add `--not` flag to all commands with filters (`--tag`, `--search`, `--before`, etc.) to negate the filter and return entries NOT matched
4163
+
4164
+ #### IMPROVED
4165
+
4166
+ - More command line feedback
4167
+ - Error formatting and output
4168
+ - Add subcommand completion for `doing help` in fish shell
4169
+ - Logging and error handling
4170
+
4171
+ #### FIXED
4172
+
4173
+ - Zsh completion not outputting results
4174
+ - Remove `--[no]` from non-negatable options
4175
+ - `doing plugins -t export -c` not outputting columns
4176
+ - View config not respecting tag_order setting
4177
+
4178
+ ### 2.0.3.pre
4179
+
4180
+ #### NEW
4181
+
4182
+ - Import calendar events from Calendar.app on macOS
4183
+ - `doing config --update` will add newly added config keys to your existing config file (handy with plugins that define their own config keys)
4184
+ - Add %idnote template placeholder for "indented note" (entire note indented one tab)
4185
+ - (loosely printf-esque) formatting options for `%note` template placeholder
4186
+ - `--interactive` mode to act on results of `doing grep`
4187
+ - Printf formatting for title and date
4188
+ - Doing import plugin
4189
+ - Plugins command to list plugins
4190
+ - `--dump` option for `doing config` to output a key.path config key as JSON, YAML, or raw output
4191
+ - `--no-color` global flag
4192
+ - Log levels, with `--quiet` and `--verbose` global flags
4193
+ - Convert CLI messaging to Logger-based system
4194
+ - Use DOING_DEBUG, DOING_QUIET, or DOING_LOG_LEVEL environment variables to specify log levels before configuration is read
4195
+ - Hooks, register plugins to run based on events
4196
+ - --[no-]pager and paginate: config option to enable paging output
4197
+ - Never_finish and never_time config options to prevent items matching tags/sections from ever receiving @done (never_finish) or @done timestamp (never_time) - More configuration refactoring
4198
+
4199
+ #### IMPROVED
4200
+
4201
+ - Timeline output formatting
4202
+ - Major plugin architecture refactoring
4203
+ - Fix regression where notes stored in doing file were outdented, breaking TaskPaper compatibility
4204
+ - When accepting a date filter, allow end date to be in the future
4205
+ - If an edited item has no changes, don't update/output notification - Don't start with query when using grep `--interactive`
4206
+ - Select menu item formatting
4207
+ - Output wrapping for terminal display
4208
+ - Redirect warn to STDOUT when run with `--stdout`
4209
+ - Fish autocomplete
4210
+ - `--config_file` global flag deprected, now uses $DOING_CONFIG environment variable so that config overrides can be available before the initial configuration is run
4211
+ - When `--stdout` or not a TTY, no color or output formatting
4212
+ - Highlight tags when showing results. Because it looks nice.
4213
+ - `--tag` and `--search` for `doing note`
4214
+ - View/section fuzzy guessing
4215
+ - Error reporting
4216
+ - If `doing config` finds local doingrc files, offers a menu for editing
4217
+ - More filtering options for `doing finish`
4218
+ - Doing done accepts `--unfinished` flag to finish last entry not marked @done (instead of last entry)
4219
+ - Doing done accepts `--note` flag to append a note when completing an entry
4220
+
4221
+ #### FIXED
4222
+
4223
+ - Multi-word unquoted arguments to add_section being truncated
4224
+ - Show `--from` with date span
4225
+ - Handling of arbitrary times in natural language dates
4226
+ - Backward scope of since command with arbitrary times
4227
+ - `doing rotate --keep` wasn't respecting keep value
4228
+
4229
+ ### 1.0.93
4230
+
4231
+ #### FIXED
4232
+
4233
+ - Gemfile error
4234
+
4235
+ ### 1.0.91
4236
+
4237
+ #### NEW
4238
+
4239
+ - "taskpaper" format available for all output options
4240
+ - "markdown" format available for all output commands (GFM-style task list, customizable template)
4241
+ - `--rename` option for tag command to replace tags
4242
+ - `--regex` option for tag command, for `--remove` and `--rename`
4243
+
4244
+ ### 1.0.90
4245
+
4246
+ #### IMPROVED
4247
+
4248
+ - doing finish `--auto` now pulls from all sections, not just the section of the target entry
4249
+
4250
+ #### FIXED
4251
+
4252
+ - Minor fix for shell command in doing select
4253
+ - Fix for doing finish `--auto` when matched item is last in list
4254
+
4255
+ ### 1.0.89
4256
+
4257
+ #### NEW
4258
+
4259
+ - Pretty print JSON output
4260
+ - `--no-menu` option for select command to use `--query` as a filter and act on matching entries without displaying menu
4261
+
4262
+ ### 1.0.88
4263
+
4264
+ #### IMPROVED
4265
+
4266
+ - Add `--before` and `--after` time search to yesterday command
4267
+ - Add `--before` and `--after` date search to search/grep command
4268
+ - Add `--tag_order` to yesterday command
4269
+
4270
+ ### 1.0.87
4271
+
4272
+ #### IMPROVED
4273
+
4274
+ - Add leading spaces to make %shortdate align properly, at least for the last week
4275
+ - Add `--tag`, `--bool`, and `--search` to view command
4276
+ - Add `--before` and `--after` date search to view command
4277
+ - Add `--before` and `--after` date search to show command
4278
+ - Add `--before` and `--after` time search to today command
4279
+ - Add `--search` filter to show command
4280
+ - More alignment/formatting fixes for %shortdate
4281
+
4282
+ ### 1.0.86
4283
+
4284
+ #### IMPROVED
4285
+
4286
+ - Add `count` config option for templates->recent
4287
+
4288
+ ### 1.0.85
4289
+
4290
+ #### IMPROVED
4291
+
4292
+ - Add `--before` DATE_STRING to archive and rotate commands
4293
+ - Only create on rotate file per day, merge new entries into existing file
4294
+
4295
+ #### FIXED
4296
+
4297
+ - Fix `--auto` for finish command
4298
+
4299
+ ### 1.0.84
4300
+
4301
+ #### NEW
4302
+
4303
+ - `rotate` command for archiving entries to new file
4304
+
4305
+ #### FIXED
4306
+
4307
+ - Fixed current_section config key not being honored in some commands
4308
+
4309
+ ### 1.0.83
4310
+
4311
+ #### FIXED
4312
+
4313
+ - Fixes for `doing view` options, additional config keys for views
4314
+
4315
+ ### 1.0.82
4316
+
4317
+ #### FIXED
4318
+
4319
+ - Bugfixes
4320
+
4321
+ ### 1.0.81
4322
+
4323
+ #### IMPROVED
4324
+
4325
+ - fzf menu improvements
4326
+ - allow multiple selections `doing select` action menu
4327
+
4328
+ ### 1.0.80
4329
+
4330
+ #### IMPROVED
4331
+
4332
+ - Convert all menus to fzf screens
4333
+
4334
+ ### 1.0.79
4335
+
4336
+ #### IMPROVED
4337
+
4338
+ - Wildcard tag removal using `doing select -t "tag*" -r`
4339
+ - fzf menu display polish
4340
+
4341
+ #### FIXED
4342
+
4343
+ #### FIXED
4344
+
4345
+ - Gem missing fzf
4346
+
4347
+ ### 1.0.78
4348
+
4349
+ #### IMPROVED
4350
+
4351
+ - If no action is specified with select command, an interactive menu is
4352
+ presented
4353
+ - add output action select command with formatting and save options
4354
+ - Don't link URLs in html output that don't have a protocol
4355
+
4356
+ ### 1.0.76
4357
+
4358
+ #### IMPROVED
4359
+
4360
+ - Refine editing multiple selections (doing select)
4361
+
4362
+ ### 1.0.74
4363
+
4364
+ #### NEW
4365
+
4366
+ - Add `--tag` and `--search` flags to tag command to tag all entries matching search terms
4367
+ - Add since command, which is the same as `doing on tuesday to now` but `doing since tuesday` just feels more intuitive.
4368
+
4369
+ ### 1.0.73
4370
+
4371
+ #### FIXED
4372
+
4373
+ - Fix for timeline output
4374
+
4375
+ ### 1.0.72
4376
+
4377
+ #### NEW
4378
+
4379
+ - Add `doing select` to show menu of all tasks, searchable with fuzzy matching and the ability to perform certain tasks on multiple selections.
4380
+
4381
+ ### 1.0.71
4382
+
4383
+ #### FIXED
4384
+
4385
+ - Fix for template command not working at all
4386
+
4387
+ ### 1.0.70
4388
+
4389
+ #### FIXED
4390
+
4391
+ - Fix for `doing done --took 30m` setting the wrong @done timestamp when completing previous item
4392
+
4393
+ ### 1.0.69
4394
+
4395
+ #### IMPROVED
4396
+
4397
+ - Add `--unfinished` option to finish and cancel commands
4398
+
4399
+ ### 1.0.68
4400
+
4401
+ #### FIXED
4402
+
4403
+ - Fix error in `doing show --sort` argument parsing
4404
+
4405
+ ### 1.0.67
4406
+
4407
+ #### FIXED
4408
+
4409
+ - Gem packaging error
4410
+
4411
+ ### 1.0.66
4412
+
4413
+ #### IMPROVED
4414
+
4415
+ - More flexible boolean specification, can be: all, and, any, or, not, or none
4416
+
4417
+ #### FIXED
4418
+
4419
+ - Fix for some long flags being interpreted as arrays instead of strings
4420
+ - Fix for archive command not removing original entries from archived section
4421
+
4422
+ ### 1.0.65
4423
+
4424
+ #### IMPROVED
4425
+
4426
+ - Prevent duplicates/overlapping entries when importing
4427
+
4428
+ ### 1.0.64
4429
+
4430
+ #### NEW
4431
+
4432
+ - Initial import feature for Timing.app reports
4433
+
4434
+ ### 1.0.63
4435
+
4436
+ #### IMPROVED
4437
+
4438
+ - If `doing done --took=X` results in completion date greater than current time, use current time as completion date and backdate the entry's timestamp to fit
4439
+
4440
+ ### 1.0.62
4441
+
4442
+ #### FIXED
4443
+
4444
+ - `doing done` with `--took=` and without `--back=` should set end time to start date plus `--took` value
4445
+
4446
+ ### 1.0.61
4447
+
4448
+ #### IMPROVED
4449
+
4450
+ - Add `--search` filter to `doing archive`
4451
+
4452
+ ### 1.0.60
4453
+
4454
+ #### FIXED
4455
+
4456
+ - Default value for `doing again --bool` was ALL, should be AND
4457
+
4458
+ ### 1.0.59
4459
+
4460
+ #### IMPROVED
4461
+
4462
+ - Improvements to `doing again --tag=` functionality
4463
+
4464
+ ### 1.0.58
4465
+
4466
+ #### IMPROVED
4467
+
4468
+ - Finish previous task if `doing again` and not already completed
4469
+
4470
+ ### 1.0.57
4471
+
4472
+ #### IMPROVED
4473
+
4474
+ - Unit tests
4475
+
4476
+ ### 1.0.56
4477
+
4478
+ #### IMPROVED
4479
+
4480
+ - Tag command tests
4481
+
4482
+ #### FIXED
4483
+
4484
+ - Doing not reading per-directory .doingrc configs
4485
+
4486
+ ### 1.0.55
4487
+
4488
+ #### NEW
4489
+
4490
+ - Added config_editor_app setting to config so you can have
4491
+ - A parenthetical at the end of an entry title becomes an attached
4492
+ - `--editor` flag for `doing last` to edit last entry
4493
+ - `--tag=` flag to filter `doing last` by tag
4494
+ - `--search=` to filter `doing last` by text/regex search
4495
+ - `--search=` for `doing finish`, finish last X entries matching search
4496
+ - Add `tags_color` as a primary config key to highlight @tags in displayed entries
4497
+
4498
+ #### IMPROVED
4499
+
4500
+ - Clean up command line help
4501
+ - `--editor` improvements for all commands that use it
4502
+
4503
+ #### FIXED
4504
+
4505
+ - Doing finish `--took` throwing error
4506
+ - Doing tag `--remove` was adding tags if they didn't exist
4507
+ - Creating a meanwhile task with a note resulted in an error
4508
+
4509
+ ### 1.0.54
4510
+
4511
+ #### FIXED
4512
+
4513
+ - Bugfix for `finish --tag=TAG`
4514
+
4515
+ ### 1.0.53
4516
+
4517
+ #### NEW
4518
+
4519
+ - `--tag` and `--bool` filtering for again/resume, cancel
4520
+ - `--in` flag for `again`/`resume` to specify to which section the new
4521
+ - Finish command accepts `--tag=` flag, finishing last entry
4522
+ - `doing cancel` to end X tasks without completion date
4523
+
4524
+ #### IMPROVED
4525
+
4526
+ - Add `--no-color` option to view command
4527
+ - Add `--tag` to show for compatibility
4528
+
4529
+ #### FIXED
4530
+
4531
+ - Error running finish without `--tag` flag
4532
+ - `--archive` flag on finish, done, and cancel causing error
4533
+
4534
+ ### 1.0.52
4535
+
4536
+ #### NEW
4537
+
4538
+ - Finish command accepts `--tag=` flag, finishing last entry
4539
+
4540
+ #### FIXED
4541
+
4542
+ - `--archive` flag on finish, done, and cancel causing error
4543
+
4544
+ ### 1.0.49
4545
+
4546
+ #### FIXED
4547
+
4548
+ - Fix for missing date on @done tags
4549
+
4550
+ ### 1.0.48
4551
+
4552
+ #### FIXED
4553
+
4554
+ - Fix confirmation dialog for `doing tag -a -c 0` (autotag all)
4555
+
4556
+ ### 1.0.47
4557
+
4558
+ #### IMPROVED
4559
+
4560
+ - Remove check for file existence before attempting to run run_after script
4561
+ - Don't autotag entries restarted with `again/resume`
4562
+ - Add short flags (`-b`) for `--back` on all commands that support it
4563
+
4564
+ ### 1.0.46
4565
+
4566
+ #### IMPROVED
4567
+
4568
+ - Code cleanup
4569
+
4570
+ ### 1.0.45
4571
+
4572
+ #### IMPROVED
4573
+
4574
+ - Only execute run_after script if changes are written
4575
+
4576
+ ### 1.0.44
4577
+
4578
+ #### IMPROVED
4579
+
4580
+ - Remove unnecessary console logging
4581
+
4582
+ ### 1.0.43
4583
+
4584
+ #### NEW
4585
+
4586
+ - Add `again` command to repeat last entry without @done tag
4587
+ - Add `run_after` configuration option to execute external script after any change
4588
+
4589
+ ### 1.0.42
4590
+
4591
+ #### FIXED
4592
+
4593
+ - Fix note indentation in doing file
4594
+
4595
+ ### 1.0.41
4596
+
4597
+ #### FIXED
4598
+
4599
+ - Fix for repeated backreferences in tag transform
4600
+
4601
+ ### 1.0.40
4602
+
4603
+ #### IMPROVED
4604
+
4605
+ - Add `--tag_sort` to all subcommands with `--totals` option
4606
+
4607
+ ### 1.0.39
4608
+
4609
+ #### NEW
4610
+
4611
+ - Tag transforms
4612
+ - Option to sort tags by name in `--totals`
4613
+
4614
+ ### 1.0.33
4615
+
4616
+ #### FIXED
4617
+
4618
+ - Gem dependency updates
4619
+
4620
+ ### 1.0.30
4621
+
4622
+ #### FIXED
4623
+
4624
+ - Fix for array comparison error
4625
+
4626
+ ### 1.0.29
4627
+
4628
+ #### FIXED
4629
+
4630
+ - Bugfixes
4631
+
4632
+ ### 1.0.28
4633
+
4634
+ #### IMPROVED
4635
+
4636
+ - Global option `-x` to skip autotags and default_tags from global/local .doingrc
4637
+ - Remove extra spaces when creating entry
4638
+
4639
+ ### 1.0.27
4640
+
4641
+ #### IMPROVED
4642
+
4643
+ - More graceful writing of default config (~/.doingrc) on first run
4644
+ - Repaired testing setup. Needs moar tests.
4645
+
4646
+ ### 1.0.26
4647
+
4648
+ #### IMPROVED
4649
+
4650
+ - Add `--at` flag for `doing done`, e.g. `doing done --at=1:35pm --took=15m A new task I already finished`
4651
+ - Allow decimal quantities when using natural language for hours or days, e.g. `--took=2.5h`
4652
+ - Add `did` as a synonym for `done` subcommand
4653
+
4654
+ ### 1.0.25
4655
+
4656
+ #### IMPROVED
4657
+
4658
+ #### IMPROVED
4659
+
4660
+ - Smarter method of getting user $HOME
4661
+ - Improved avoiding duplicate tags when autotagging
4662
+ - Improved autotag reporting
4663
+
4664
+ ### 1.0.24
4665
+
4666
+ #### IMPROVED
4667
+
4668
+ - `doing note` operates on whatever is most recent, not just the last note in Currently
4669
+ - `doing tag` with no count specified operates on most recent entry in any section, not just Currently
4670
+ - `doing tag` with a count greater than 1 requires a section to be specified
4671
+ - Improved results reporting for `doing tag`
4672
+ - When removing tag do a whole-word match to avoid removing part of a longer tag
4673
+
4674
+ ### 1.0.23
4675
+
4676
+ #### IMPROVED
4677
+
4678
+ - Apply default_tags after autotagging to avoid tags triggering tags
4679
+ - Set `doing recent` to default to All sections instead of Currently
4680
+ - Fix error in time reporting
4681
+ - improved y/n prompt for TTY
4682
+
4683
+ ### 1.0.22
4684
+
4685
+ #### IMPROVED
4686
+
4687
+ - Allow cascading of local config files
4688
+ - Allow `doing today` and `yesterday` to specify a section
4689
+
4690
+ #### FIXED
4691
+
4692
+ - Fix handling of "local" config files, allowing per-project configurations
4693
+
4694
+ ### 1.0.21
4695
+
4696
+ #### NEW
4697
+
4698
+ - Add legitimate regex search capabilities
4699
+ - Synonyms for grep (search) and now (next)
4700
+
4701
+ #### FIXED
4702
+
4703
+ - CSS fix
4704
+
4705
+ ### 1.0.20
4706
+
4707
+ #### NEW
4708
+
4709
+ - New command `doing templates` to export default templates for HAML and CSS
4710
+ - New config options under `html_template` for `haml` and `css`
4711
+
4712
+ #### IMPROVED
4713
+
4714
+ - Rewrite HTML export templates with responsive layout and typography
4715
+ - Ability to customize the HTML output using HAML and CSS
4716
+
4717
+ ### 1.0.19
4718
+
4719
+ #### IMPROVED
4720
+
4721
+ - For `doing note -e` include the entry title so you know what you're adding a note to
4722
+ - For any other command that allows `-e` include a comment noting that anything after the first line creates a note
4723
+ - Ignore # comments when parsing editor results
4724
+ - Add a .md extension to the temp file passed to the editor so you can take advantage of any syntax highlighting and other features in your editor
4725
+
4726
+ ### 1.0.18
4727
+
4728
+ #### IMPROVED
4729
+
4730
+ - Loosened up the template color resetting a bit more
4731
+
4732
+ #### FIXED
4733
+
4734
+ - Fix `undefined method [] for nil class` error in `doing view`
4735
+
4736
+ ### 1.0.17
4737
+
4738
+ #### NEW
4739
+
4740
+ - Add `--stdout` global option to send reporting to STDOUT instead of STDERR (for use with LaunchBar et al)
4741
+
4742
+ ### 1.0.16
4743
+
4744
+ #### FIXED
4745
+
4746
+ - Fixes overzealous color resetting
4747
+
4748
+ ### 1.0.15
4749
+
4750
+ #### FIXED
4751
+
4752
+ - CLI/text totals block was outputting when HTML output was selected
4753
+ - Have all template colors reset bold and background automatically when called
4754
+
4755
+ ### 1.0.14
4756
+
4757
+ #### IMPROVED
4758
+
4759
+ - Fish completion
4760
+ - views and sections subcommands have -c option to output single column
4761
+ - Fix html title when tag_bool is NONE
4762
+ - Fix @from tagging missing closing paren
4763
+ - Fix tag coloring
4764
+
4765
+ ### 1.0.13
4766
+
4767
+ #### FIXED
4768
+
4769
+ - Fix gsub error in doing meanwhile
4770
+
4771
+ ### 1.0.8pre
4772
+
4773
+ #### NEW
4774
+
4775
+ - added doing on command
4776
+ - Added autotagging to tag command
4777
+ - JSON output option to view commands
4778
+ - date filtering, improved date language
4779
+ - let view templates define output format (csv, json, html, template)
4780
+
4781
+ #### IMPROVED
4782
+
4783
+ - add `%chompnote` template variable (item note with newlines and extra whitespace stripped)
4784
+
4785
+ ### 1.0.7pre
4786
+
4787
+ #### IMPROVED
4788
+
4789
+ - Slightly fuzzier searching in the grep command
4790
+ - cleaner exits, `only_timed` key for view configs
4791
+ - making the note command append new notes better, and load existing notes in the editor if `-e` is called
4792
+ - handle multiple tag input in `show` tag filter
4793
+ - Global tag operations, better reporting
4794
+
4795
+ #### FIXED
4796
+
4797
+ - fix for `-v` option
4798
+
4799
+ ### 1.0.4pre
4800
+
4801
+ #### IMPROVED
4802
+
4803
+ - Improved HTML output
4804
+ - `--only_timed` option for view/show commands that only outputs items with elapsed timers (interval between start and done dates)
4805
+ - add seconds for timed items in CSV output, run `--only_timed` before chopping off `--count #`
4806
+ - fix for 1.8.7 `Dir.home` issue
4807
+ - version bump
4808
+ - don't show tag totals with zero times
4809
+ - zsh completion for doing
4810
+ - HTML styling
4811
+ - `--only_timed` option
4812
+ - added zsh completion file to `README.md`
4813
+ - add zsh completion file
4814
+
4815
+ ### 1.0.3pre
4816
+
4817
+ #### IMPROVED
4818
+
4819
+ - `done` command: making `--took` modify start time if `--back` isn't specified
4820
+ - Cleaned up time totals, improved HTML output
4821
+ - fixes for `--back` and `--took` parsing
4822
+ - Adding more complete terminal reporting to archive command
4823
+
4824
+ ### 1.0.0pre
4825
+
4826
+ #### IMPROVED
4827
+
4828
+ - Skipped ahead in the version numbering. Because I don't care.
4829
+ - Added a `note` command and `--note` flags for entry creation commands
4830
+
4831
+ ### 0.2.6pre
4832
+
4833
+ #### IMPROVED
4834
+
4835
+ - `--totals`, `--[no-]times`, `--output [csv,html]` options for `yesterday` command.
4836
+ - Add tests for Darwin to hide OS X-only features on other systems
4837
+ - `-f` flag to `now` command for finishing last task when starting a new one (Looks back for the last unfinished task in the list)
4838
+ - `--took` option for `done` and `finish` for specifying intervals from the start date for the completion date
4839
+ - Basic command line reporting
4840
+ - `--auto` flag for `finish` and `done` that will automatically set the completion time to 1 minute before the next start time in the list. You can use it retroactively to add times to sequential todos.
4841
+ - `doing grep` for searching by text or regex
4842
+
4843
+ ### 0.2.5
4844
+
4845
+ #### IMPROVED
4846
+
4847
+ - Default to showing times #26, show totals even if no tags exist #27, fix indentation #29
4848
+ - Add section label to archived tasks automatically, excepting `Currently` section
4849
+ - Today outputs and backdate for finish
4850
+ - HTML styling and fix for 1.8.7 HAML errors
4851
+ - Look, HTML output! (`--output html`)
4852
+ - Also, `--output csv`
4853
+ - let doing `archive` function on all sections
4854
+ - option to exclude date from _@done_,
4855
+ - output newlines in sections and views
4856
+ - Flagging (`doing mark`)
4857
+ - fix for view/section guess error
4858
+ - Adding tag filtering to archive command (`doing archive \@done`)
4859
+ - `doing yesterday`
4860
+ - `doing done -r` to remove last doing tag (optionally from `-s Section`)
4861
+ - Add `-f` flag to specify alternate doing file
4862
+ - `meanwhile` command
4863
+
4864
+ ### 0.2.1
4865
+
4866
+ #### IMPROVED
4867
+
4868
+ - CSV output for show command (`--csv`)
4869
+ - HTML output for show command (`--output html`)
4870
+ - fuzzy searching for all commands that specify a view.
4871
+ - In the terminal, you'll see "Assume you meant XXX" to show what match it found, but this is output to STDERR (and won't show up if you're redirecting the output or using it in GeekTool, etc.)
4872
+ - `tags_color` in view config to highlight tags at the end of the lines. Can be set to any of the `%colors`.
4873
+ - Basic time tracking.
4874
+ - `-t` on `show` and `view` will turn on time calculations
4875
+ - Intervals between timestamps and dated _@done_ tags are calculated for each line, if the tag exists.
4876
+ - You must include a `%interval` token in the appropriate template for it to show
4877
+ - _@start(date)_ tags can optionally be used to override the timestamp in the calculation
4878
+ - Any other tags in the line have that line's total added to them
4879
+ - Totals for tags can be displayed at the end of output with `--totals`
4880
+
4881
+
4882
+ ### 0.2.0
4883
+
4884
+ #### IMPROVED
4885
+
4886
+ - `doing done` without argument tags last entry done
4887
+ - `-a` archives them
4888
+ - `doing finish` or `doing finish X` marks last X entries done
4889
+ - `-a` archives them
4890
+ - `doing tag tag1 [tag2]` tags last entry or `-c X` entries
4891
+ - `doing tag -r tag1 [tag2]` removes said tag(s)
4892
+ - custom views additions
4893
+ - custom views can include `tags` and `tags_bool`
4894
+ - `tags` is a space-separated list of tags to filter the results by
4895
+ - `tags_bool` defines `AND` (all tags must exist), `OR` (any tag exists), or `NONE` (none of the tags exist)
4896
+ - `order` key (`asc` or `desc`) defines output sort order by date
4897
+ - section key can be set to `All` to combine sections
4898
+ - `doing show` updates
4899
+ - accepts `all` as a section
4900
+ - arguments following section name are tags to filter by
4901
+ - `-b` sets boolean (`AND`, `OR`, `NONE`) or (`ALL`, `ANY`, `NONE`) (default `OR`/`ANY`)
4902
+ - use `-c X` to limit results
4903
+ - use `-s` to set sort order (`asc` or `desc`)
4904
+ - use `-a` to set age (`newest` or `oldest`)
4905
+ - fuzzy section guessing when specified section isn't found
4906
+ - fuzzy view guessing for `doing view` command
4907
+
4908
+ ### 0.1.9
4909
+
4910
+ #### IMPROVED
4911
+
4912
+ - colors in templated output
4913
+ - `open` command
4914
+ - opens in the default app for file type
4915
+ - `-a APPNAME` (`doing open -a TaskPaper`)
4916
+ - `-b bundle_id` (`doing open -b com.sublimetext.3`)
4917
+ - `-e` switch for `now`, `later` and `done` commands
4918
+ - save a tmp file and open it in an editor
4919
+ - allows multi-line entries, anything after first line is considered a note
4920
+ - assumed when no input is provided (`doing now`)
4921
+ - `doing views` shows all available custom views
4922
+ - `doing view` without a view name will let you choose a view from a menu
4923
+ - `doing archive` fixed so that `-k X` works to keep `X` number of entries in the section
4924
+
4925
+ ### 0.1.7
4926
+
4927
+ #### IMPROVED
4928
+
4929
+ - colors in templated output
4930
+ - `open` command
4931
+ - opens in the default app for file type
4932
+ - `-a APPNAME` (`doing open -a TaskPaper`)
4933
+ - `-b bundle_id` (`doing open -b com.sublimetext.3`)
4934
+ - `-e` switch for `now`, `later`, and `done` commands
4935
+ - save a tmp file and open it in an editor
4936
+ - allows multi-line entries, anything after first line is considered a note
4937
+ - assumed when no input is provided (`doing now`)
4938
+
4939
+ and hitting tab will offer completions of subcommands and their options.' command :completion do |c|
4940
+ - When generating completion scripts using `doing completion --file FILE_PATH`, if the file specified is not in an auto-load directory for the shell type, offer to symlink the output to an appropriate directory
4941
+
4942
+ ### 2.1.30
4943
+
4944
+ 2022-02-16 07:18
4945
+
4946
+ #### IMPROVED
4947
+
4948
+ - `doing changes` does a better job of parsing a lookup string like '>= 2.1.10 < 2.1.15'
4949
+
4950
+ #### FIXED
4951
+
4952
+ - System agnostic platform detection, so commands that check for Darwin won't error out on other systems
4953
+ - `doing completions` debugging code
4954
+
4955
+ ### 2.1.29
4956
+
4957
+ 2022-02-14 12:42
4958
+
4959
+ #### IMPROVED
4960
+
4961
+ - `doing changes --interactive` will load up a changelog viewer using fzf. Because it makes me happy, that's why.
4962
+
1
4963
  ### 2.1.28
2
4964
 
3
4965
  2022-02-14 11:39