doing 2.1.25 → 2.1.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. checksums.yaml +4 -4
  2. data/.yardoc/checksums +15 -20
  3. data/.yardoc/object_types +0 -0
  4. data/.yardoc/objects/root.dat +0 -0
  5. data/CHANGELOG.md +322 -108
  6. data/Dockerfile +5 -5
  7. data/Dockerfile-2.6 +5 -5
  8. data/Dockerfile-2.7 +5 -4
  9. data/Dockerfile-3.0 +5 -4
  10. data/Gemfile.lock +1 -1
  11. data/README.md +1 -1
  12. data/Rakefile +2 -3
  13. data/bin/commands/add_section.rb +15 -0
  14. data/bin/commands/again.rb +57 -0
  15. data/bin/commands/archive.rb +55 -0
  16. data/bin/commands/cancel.rb +60 -0
  17. data/bin/commands/changes.rb +83 -0
  18. data/bin/commands/choose.rb +9 -0
  19. data/bin/commands/colors.rb +21 -0
  20. data/bin/commands/commands.rb +89 -0
  21. data/bin/commands/commands_accepting.rb +76 -0
  22. data/bin/commands/completion.rb +27 -0
  23. data/bin/commands/config.rb +245 -0
  24. data/bin/commands/done.rb +235 -0
  25. data/bin/commands/finish.rb +126 -0
  26. data/bin/commands/flag.rb +90 -0
  27. data/bin/commands/grep.rb +108 -0
  28. data/bin/commands/import.rb +71 -0
  29. data/bin/commands/install_fzf.rb +17 -0
  30. data/bin/commands/last.rb +81 -0
  31. data/bin/commands/meanwhile.rb +76 -0
  32. data/bin/commands/note.rb +91 -0
  33. data/bin/commands/now.rb +145 -0
  34. data/bin/commands/on.rb +65 -0
  35. data/bin/commands/open.rb +53 -0
  36. data/bin/commands/plugins.rb +23 -0
  37. data/bin/commands/recent.rb +77 -0
  38. data/bin/commands/redo.rb +26 -0
  39. data/bin/commands/reset.rb +73 -0
  40. data/bin/commands/rotate.rb +42 -0
  41. data/bin/commands/sections.rb +11 -0
  42. data/bin/commands/select.rb +105 -0
  43. data/bin/commands/show.rb +185 -0
  44. data/bin/commands/since.rb +63 -0
  45. data/bin/commands/tag.rb +149 -0
  46. data/bin/commands/tag_dir.rb +29 -0
  47. data/bin/commands/tags.rb +66 -0
  48. data/bin/commands/template.rb +61 -0
  49. data/bin/commands/today.rb +64 -0
  50. data/bin/commands/undo.rb +49 -0
  51. data/bin/commands/view.rb +201 -0
  52. data/bin/commands/views.rb +11 -0
  53. data/bin/commands/yesterday.rb +72 -0
  54. data/bin/doing +241 -3706
  55. data/docs/doc/Array.html +3 -502
  56. data/docs/doc/BooleanTermParser/Clause.html +1 -1
  57. data/docs/doc/BooleanTermParser/Operator.html +1 -1
  58. data/docs/doc/BooleanTermParser/Query.html +1 -1
  59. data/docs/doc/BooleanTermParser/QueryParser.html +1 -1
  60. data/docs/doc/BooleanTermParser/QueryTransformer.html +1 -1
  61. data/docs/doc/BooleanTermParser.html +1 -1
  62. data/docs/doc/Doing/Color.html +62 -56
  63. data/docs/doc/Doing/Completion.html +1 -1
  64. data/docs/doc/Doing/Configuration.html +36 -1
  65. data/docs/doc/Doing/Errors/DoingNoTraceError.html +1 -1
  66. data/docs/doc/Doing/Errors/DoingRuntimeError.html +1 -1
  67. data/docs/doc/Doing/Errors/DoingStandardError.html +1 -1
  68. data/docs/doc/Doing/Errors/EmptyInput.html +1 -1
  69. data/docs/doc/Doing/Errors/NoResults.html +1 -1
  70. data/docs/doc/Doing/Errors/PluginException.html +1 -1
  71. data/docs/doc/Doing/Errors/UserCancelled.html +1 -1
  72. data/docs/doc/Doing/Errors/WrongCommand.html +1 -1
  73. data/docs/doc/Doing/Errors.html +1 -1
  74. data/docs/doc/Doing/Hooks.html +1 -1
  75. data/docs/doc/Doing/Item.html +1 -1
  76. data/docs/doc/Doing/Items.html +2 -2
  77. data/docs/doc/Doing/LogAdapter.html +1 -1
  78. data/docs/doc/Doing/Note.html +2 -2
  79. data/docs/doc/Doing/Pager.html +1 -1
  80. data/docs/doc/Doing/Plugins.html +1 -1
  81. data/docs/doc/Doing/Prompt.html +46 -1
  82. data/docs/doc/Doing/Section.html +1 -1
  83. data/docs/doc/Doing/TemplateString.html +2 -2
  84. data/docs/doc/Doing/Types.html +41 -1
  85. data/docs/doc/Doing/Util/Backup.html +1 -1
  86. data/docs/doc/Doing/Util.html +1 -1
  87. data/docs/doc/Doing/WWID.html +10 -10
  88. data/docs/doc/Doing.html +3 -3
  89. data/docs/doc/FalseClass.html +235 -0
  90. data/docs/doc/GLI/Commands/Help.html +1 -1
  91. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
  92. data/docs/doc/GLI/Commands.html +1 -1
  93. data/docs/doc/GLI.html +1 -1
  94. data/docs/doc/Hash.html +1 -1
  95. data/docs/doc/Numeric.html +1 -1
  96. data/docs/doc/Object.html +203 -0
  97. data/docs/doc/PhraseParser/Operator.html +1 -1
  98. data/docs/doc/PhraseParser/PhraseClause.html +1 -1
  99. data/docs/doc/PhraseParser/Query.html +1 -1
  100. data/docs/doc/PhraseParser/QueryParser.html +1 -1
  101. data/docs/doc/PhraseParser/QueryTransformer.html +1 -1
  102. data/docs/doc/PhraseParser/TermClause.html +1 -1
  103. data/docs/doc/PhraseParser.html +1 -1
  104. data/docs/doc/Status.html +1 -1
  105. data/docs/doc/String.html +287 -3155
  106. data/docs/doc/Symbol.html +40 -6
  107. data/docs/doc/Time.html +1 -1
  108. data/docs/doc/TrueClass.html +235 -0
  109. data/docs/doc/_index.html +5 -10
  110. data/docs/doc/class_list.html +1 -1
  111. data/docs/doc/file.README.html +2 -2
  112. data/docs/doc/index.html +2 -2
  113. data/docs/doc/method_list.html +289 -681
  114. data/docs/doc/top-level-namespace.html +2 -2
  115. data/doing.rdoc +306 -205
  116. data/lib/completion/_doing.zsh +35 -35
  117. data/lib/completion/doing.bash +30 -30
  118. data/lib/completion/doing.fish +88 -78
  119. data/lib/doing/array/array.rb +4 -0
  120. data/lib/doing/array/nested_hash.rb +17 -0
  121. data/lib/doing/{array.rb → array/tags.rb} +7 -25
  122. data/lib/doing/changelog/change.rb +26 -11
  123. data/lib/doing/changelog/changes.rb +31 -4
  124. data/lib/doing/{array_chronify.rb → chronify/array.rb} +0 -0
  125. data/lib/doing/chronify/chronify.rb +5 -0
  126. data/lib/doing/{numeric_chronify.rb → chronify/numeric.rb} +0 -0
  127. data/lib/doing/{string_chronify.rb → chronify/string.rb} +0 -0
  128. data/lib/doing/colors.rb +115 -54
  129. data/lib/doing/configuration.rb +5 -0
  130. data/lib/doing/good.rb +8 -0
  131. data/lib/doing/help_monkey_patch.rb +6 -5
  132. data/lib/doing/item.rb +5 -5
  133. data/lib/doing/items.rb +2 -2
  134. data/lib/doing/log_adapter.rb +35 -2
  135. data/lib/doing/normalize.rb +188 -0
  136. data/lib/doing/pager.rb +1 -0
  137. data/lib/doing/plugins/export/dayone_export.rb +1 -1
  138. data/lib/doing/plugins/export/html_export.rb +1 -1
  139. data/lib/doing/plugins/export/json_export.rb +1 -1
  140. data/lib/doing/plugins/export/markdown_export.rb +1 -1
  141. data/lib/doing/plugins/export/template_export.rb +3 -1
  142. data/lib/doing/prompt.rb +9 -3
  143. data/lib/doing/string/highlight.rb +95 -0
  144. data/lib/doing/string/query.rb +129 -0
  145. data/lib/doing/string/string.rb +12 -0
  146. data/lib/doing/string/tags.rb +164 -0
  147. data/lib/doing/string/transform.rb +168 -0
  148. data/lib/doing/string/truncate.rb +75 -0
  149. data/lib/doing/string/url.rb +82 -0
  150. data/lib/doing/template_string.rb +0 -22
  151. data/lib/doing/types.rb +8 -0
  152. data/lib/doing/util.rb +13 -9
  153. data/lib/doing/version.rb +1 -1
  154. data/lib/doing/wwid.rb +53 -35
  155. data/lib/doing.rb +4 -6
  156. data/lib/examples/commands/wiki.rb +6 -7
  157. data/lib/examples/plugins/wiki_export/wiki_export.rb +1 -1
  158. data/lib/helpers/threaded_tests.rb +39 -20
  159. data/scripts/deploy.rb +107 -0
  160. data/scripts/runtests.sh +4 -0
  161. metadata +63 -8
  162. data/lib/doing/string.rb +0 -765
  163. data/lib/doing/symbol.rb +0 -28
@@ -141,8 +141,8 @@ complete -xc doing -n '__fish_doing_needs_command' -a 'archive move' -d Move\ en
141
141
  complete -xc doing -n '__fish_doing_needs_command' -a 'autotag' -d Autotag\ last\ entry\ or\ filtered\ entries
142
142
  complete -xc doing -n '__fish_doing_needs_command' -a 'cancel' -d End\ last\ X\ entries\ with\ no\ time\ tracked
143
143
  complete -xc doing -n '__fish_doing_needs_command' -a 'changes changelog' -d List\ recent\ changes\ in\ Doing
144
- complete -xc doing -n '__fish_doing_needs_command' -a 'choose' -d Select\ a\ section\ to\ display\ from\ a\ menu
145
144
  complete -xc doing -n '__fish_doing_needs_command' -a 'colors' -d List\ available\ color\ variables\ for\ configuration\ templates\ and\ views
145
+ complete -xc doing -n '__fish_doing_needs_command' -a 'commands' -d Enable\ and\ disable\ Doing\ commands
146
146
  complete -xc doing -n '__fish_doing_needs_command' -a 'completion' -d Generate\ shell\ completion\ scripts
147
147
  complete -xc doing -n '__fish_doing_needs_command' -a 'config' -d Edit\ the\ configuration\ file\ or\ output\ a\ value\ from\ it
148
148
  complete -xc doing -n '__fish_doing_needs_command' -a 'done did' -d Add\ a\ completed\ item\ with\ @done\(date\)
@@ -151,7 +151,6 @@ complete -xc doing -n '__fish_doing_needs_command' -a 'grep search' -d Search\ f
151
151
  complete -xc doing -n '__fish_doing_needs_command' -a 'help' -d Shows\ a\ list\ of\ commands\ or\ help\ for\ one\ command
152
152
  complete -xc doing -n '__fish_doing_needs_command' -a 'import' -d Import\ entries\ from\ an\ external\ source
153
153
  complete -xc doing -n '__fish_doing_needs_command' -a 'last' -d Show\ the\ last\ entry
154
- complete -xc doing -n '__fish_doing_needs_command' -a 'later' -d Add\ an\ item\ to\ the\ Later\ section
155
154
  complete -xc doing -n '__fish_doing_needs_command' -a 'mark flag' -d Mark\ last\ entry\ as\ flagged
156
155
  complete -xc doing -n '__fish_doing_needs_command' -a 'meanwhile' -d Finish\ any\ running\ @meanwhile\ tasks\ and\ optionally\ create\ a\ new\ one
157
156
  complete -xc doing -n '__fish_doing_needs_command' -a 'note' -d Add\ a\ note\ to\ the\ last\ entry
@@ -160,6 +159,7 @@ complete -xc doing -n '__fish_doing_needs_command' -a 'on' -d List\ entries\ for
160
159
  complete -xc doing -n '__fish_doing_needs_command' -a 'open' -d Open\ the\ \"doing\"\ file\ in\ an\ editor
161
160
  complete -xc doing -n '__fish_doing_needs_command' -a 'plugins' -d List\ installed\ plugins
162
161
  complete -xc doing -n '__fish_doing_needs_command' -a 'recent' -d List\ recent\ entries
162
+ complete -xc doing -n '__fish_doing_needs_command' -a 'redo' -d Redo\ an\ undo\ command
163
163
  complete -xc doing -n '__fish_doing_needs_command' -a 'reset begin' -d Reset\ the\ start\ time\ of\ an\ entry
164
164
  complete -xc doing -n '__fish_doing_needs_command' -a 'rotate' -d Move\ entries\ to\ archive\ file
165
165
  complete -xc doing -n '__fish_doing_needs_command' -a 'sections' -d List\ sections
@@ -177,29 +177,32 @@ complete -xc doing -n '__fish_doing_needs_command' -a 'view' -d Display\ a\ user
177
177
  complete -xc doing -n '__fish_doing_needs_command' -a 'views' -d List\ available\ custom\ views
178
178
  complete -xc doing -n '__fish_doing_needs_command' -a 'wiki' -d Output\ a\ tag\ wiki
179
179
  complete -xc doing -n '__fish_doing_needs_command' -a 'yesterday' -d List\ entries\ from\ yesterday
180
+ complete -c doing -l noauto -s X -f -n '__fish_doing_using_command again resume' -d Exclude\ auto\ tags\ and\ default\ tags
180
181
  complete -c doing -l ask -f -n '__fish_doing_using_command again resume' -d Prompt\ for\ note\ via\ multi-line\ input
181
- complete -c doing -l started -f -r -n '__fish_doing_using_command again resume' -d Backdate\ start\ date\ by\ interval\ or\ set\ to\ time\ \[4pm\|20m\|2h\|\"yesterday\ noon\"\]
182
+ complete -c doing -l started -f -r -n '__fish_doing_using_command again resume' -d Backdate\ start\ date\ for\ new\ entry\ to\ date\ string\ \[4pm\|20m\|2h\|yesterday\ noon\]
182
183
  complete -c doing -l bool -f -r -n '__fish_doing_using_command again resume' -d Boolean\ used\ to\ combine\ multiple\ tags
183
184
  complete -c doing -l case -f -r -n '__fish_doing_using_command again resume' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
184
- complete -c doing -l editor -s e -f -n '__fish_doing_using_command again resume' -d Edit\ duplicated\ entry\ with\ /opt/homebrew/bin/vim\ before\ adding
185
+ complete -c doing -l editor -s e -f -n '__fish_doing_using_command again resume' -d Edit\ entry\ with\ vim
185
186
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command again resume' -d Select\ item\ to\ resume\ from\ a\ menu\ of\ matching\ entries
186
187
  complete -c doing -l in -f -r -n '__fish_doing_using_command again resume' -d Add\ new\ entry\ to\ section
187
- complete -c doing -l note -s n -f -r -n '__fish_doing_using_command again resume' -d Add\ a\ note
188
- complete -c doing -l not -f -n '__fish_doing_using_command again resume' -d Resume\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
188
+ complete -c doing -l note -s n -f -r -n '__fish_doing_using_command again resume' -d Include\ a\ note
189
+ complete -c doing -l not -f -n '__fish_doing_using_command again resume' -d Repeat\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
189
190
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command again resume' -d Get\ last\ entry\ from\ a\ specific\ section
190
- complete -c doing -l search -f -r -n '__fish_doing_using_command again resume' -d Repeat\ last\ entry\ matching\ search
191
- complete -c doing -l tag -f -r -n '__fish_doing_using_command again resume' -d Repeat\ last\ entry\ matching\ tags
191
+ complete -c doing -l search -f -r -n '__fish_doing_using_command again resume' -d Filter\ entries\ using\ a\ search\ query
192
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command again resume' -d Filter\ entries\ by\ tag
192
193
  complete -c doing -l val -f -r -n '__fish_doing_using_command again resume' -d Perform\ a\ tag\ value\ query
193
194
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command again resume' -d Force\ exact\ search\ string\ matching
195
+ complete -c doing -l after -f -r -n '__fish_doing_using_command archive move' -d Archive\ entries\ newer\ than\ date
194
196
  complete -c doing -l before -f -r -n '__fish_doing_using_command archive move' -d Archive\ entries\ older\ than\ date
195
- complete -c doing -l bool -f -r -n '__fish_doing_using_command archive move' -d Tag\ boolean
197
+ complete -c doing -l bool -f -r -n '__fish_doing_using_command archive move' -d Boolean\ used\ to\ combine\ multiple\ tags
196
198
  complete -c doing -l case -f -r -n '__fish_doing_using_command archive move' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
199
+ complete -c doing -l from -f -r -n '__fish_doing_using_command archive move' -d Date\ range
197
200
  complete -c doing -l keep -s k -f -r -n '__fish_doing_using_command archive move' -d How\ many\ items\ to\ keep
198
201
  complete -c doing -l label -f -n '__fish_doing_using_command archive move' -d Label\ moved\ items\ with\ @from\(SECTION_NAME\)
199
- complete -c doing -l not -f -n '__fish_doing_using_command archive move' -d Show\ items\ that\ \*don\'t\*\ match\ search\ string
200
- complete -c doing -l search -f -r -n '__fish_doing_using_command archive move' -d Search\ filter
202
+ complete -c doing -l not -f -n '__fish_doing_using_command archive move' -d Archive\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
203
+ complete -c doing -l search -f -r -n '__fish_doing_using_command archive move' -d Filter\ entries\ using\ a\ search\ query
201
204
  complete -c doing -l to -s t -f -r -n '__fish_doing_using_command archive move' -d Move\ entries\ to
202
- complete -c doing -l tag -f -r -n '__fish_doing_using_command archive move' -d Tag\ filter
205
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command archive move' -d Filter\ entries\ by\ tag
203
206
  complete -c doing -l val -f -r -n '__fish_doing_using_command archive move' -d Perform\ a\ tag\ value\ query
204
207
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command archive move' -d Force\ exact\ search\ string\ matching
205
208
  complete -c doing -l bool -f -r -n '__fish_doing_using_command autotag' -d Boolean
@@ -211,29 +214,35 @@ complete -c doing -l search -f -r -n '__fish_doing_using_command autotag' -d Au
211
214
  complete -c doing -l tag -f -r -n '__fish_doing_using_command autotag' -d Autotag\ the\ last\ X\ entries\ containing\ TAG
212
215
  complete -c doing -l unfinished -s u -f -n '__fish_doing_using_command autotag' -d Autotag\ last\ entry
213
216
  complete -c doing -l archive -s a -f -n '__fish_doing_using_command cancel' -d Archive\ entries
214
- complete -c doing -l bool -f -r -n '__fish_doing_using_command cancel' -d Boolean
217
+ complete -c doing -l bool -f -r -n '__fish_doing_using_command cancel' -d Boolean\ used\ to\ combine\ multiple\ tags
215
218
  complete -c doing -l case -f -r -n '__fish_doing_using_command cancel' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
216
219
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command cancel' -d Select\ item\(s\)\ to\ cancel\ from\ a\ menu\ of\ matching\ entries
217
- complete -c doing -l not -f -n '__fish_doing_using_command cancel' -d Finish\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
220
+ complete -c doing -l not -f -n '__fish_doing_using_command cancel' -d Cancel\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
218
221
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command cancel' -d Section
219
- complete -c doing -l search -f -r -n '__fish_doing_using_command cancel' -d Cancel\ the\ last\ X\ entries\ matching\ search\ filter
220
- complete -c doing -l tag -f -r -n '__fish_doing_using_command cancel' -d Cancel\ the\ last\ X\ entries\ containing\ TAG
222
+ complete -c doing -l search -f -r -n '__fish_doing_using_command cancel' -d Filter\ entries\ using\ a\ search\ query
223
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command cancel' -d Filter\ entries\ by\ tag
221
224
  complete -c doing -l unfinished -s u -f -n '__fish_doing_using_command cancel' -d Cancel\ last\ entry
222
225
  complete -c doing -l val -f -r -n '__fish_doing_using_command cancel' -d Perform\ a\ tag\ value\ query
223
226
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command cancel' -d Force\ exact\ search\ string\ matching
227
+ complete -c doing -l changes -s C -f -n '__fish_doing_using_command changes changelog' -d Only\ output\ changes
224
228
  complete -c doing -l all -s a -f -n '__fish_doing_using_command changes changelog' -d Display\ all\ versions
229
+ complete -c doing -l interactive -s i -f -n '__fish_doing_using_command changes changelog' -d Open\ changelog\ in\ interactive\ viewer
225
230
  complete -c doing -l lookup -s l -f -r -n '__fish_doing_using_command changes changelog' -d Look\ up\ a\ specific\ version
231
+ complete -c doing -l markdown -f -n '__fish_doing_using_command changes changelog' -d Output\ raw\ Markdown
232
+ complete -c doing -l render -f -n '__fish_doing_using_command changes changelog' -d Force\ rendered\ output
226
233
  complete -c doing -l search -s s -f -r -n '__fish_doing_using_command changes changelog' -d Show\ changelogs\ matching\ search\ terms
234
+ complete -c doing -l sort -f -r -n '__fish_doing_using_command changes changelog' -d Sort\ order
227
235
  complete -c doing -l file -s f -f -r -n '__fish_doing_using_command completion' -d File\ to\ write\ output\ to
228
236
  complete -c doing -l type -s t -f -r -n '__fish_doing_using_command completion' -d Shell\ to\ generate\ for
229
237
  complete -c doing -l dump -s d -f -n '__fish_doing_using_command config' -d DEPRECATED
230
238
  complete -c doing -l update -s u -f -n '__fish_doing_using_command config' -d DEPRECATED
239
+ complete -c doing -l noauto -s X -f -n '__fish_doing_using_command done did' -d Exclude\ auto\ tags\ and\ default\ tags
231
240
  complete -c doing -l archive -s a -f -n '__fish_doing_using_command done did' -d Immediately\ archive\ the\ entry
232
241
  complete -c doing -l ask -f -n '__fish_doing_using_command done did' -d Prompt\ for\ note\ via\ multi-line\ input
233
242
  complete -c doing -l finished -f -r -n '__fish_doing_using_command done did' -d Set\ finish\ date\ to\ specific\ date/time
234
- complete -c doing -l started -f -r -n '__fish_doing_using_command done did' -d Backdate\ start\ date\ by\ interval\ or\ set\ to\ time\ \[4pm\|20m\|2h\|\"yesterday\ noon\"\]
243
+ complete -c doing -l started -f -r -n '__fish_doing_using_command done did' -d Backdate\ start\ date\ for\ new\ entry\ to\ date\ string\ \[4pm\|20m\|2h\|yesterday\ noon\]
235
244
  complete -c doing -l date -f -n '__fish_doing_using_command done did' -d Include\ date
236
- complete -c doing -l editor -s e -f -n '__fish_doing_using_command done did' -d Edit\ entry\ with\ /opt/homebrew/bin/vim
245
+ complete -c doing -l editor -s e -f -n '__fish_doing_using_command done did' -d Edit\ entry\ with\ vim
237
246
  complete -c doing -l from -f -r -n '__fish_doing_using_command done did' -d Start\ and\ end\ times\ as\ a\ date/time\ range\ \`doing\ done\ --from\ \"1am\ to\ 8am\"\`
238
247
  complete -c doing -l note -s n -f -r -n '__fish_doing_using_command done did' -d Include\ a\ note
239
248
  complete -c doing -l remove -s r -f -n '__fish_doing_using_command done did' -d Remove\ @done\ tag
@@ -244,17 +253,18 @@ complete -c doing -l archive -s a -f -n '__fish_doing_using_command finish' -d
244
253
  complete -c doing -l finished -f -r -n '__fish_doing_using_command finish' -d Set\ finish\ date\ to\ specific\ date/time
245
254
  complete -c doing -l auto -f -n '__fish_doing_using_command finish' -d Auto-generate\ finish\ dates\ from\ next\ entry\'s\ start\ time
246
255
  complete -c doing -l started -f -r -n '__fish_doing_using_command finish' -d Backdate\ completed\ date\ to\ date\ string\ \[4pm\|20m\|2h\|yesterday\ noon\]
247
- complete -c doing -l bool -f -r -n '__fish_doing_using_command finish' -d Boolean
256
+ complete -c doing -l bool -f -r -n '__fish_doing_using_command finish' -d Boolean\ used\ to\ combine\ multiple\ tags
248
257
  complete -c doing -l case -f -r -n '__fish_doing_using_command finish' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
249
258
  complete -c doing -l date -f -n '__fish_doing_using_command finish' -d Include\ date
250
259
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command finish' -d Select\ item\(s\)\ to\ finish\ from\ a\ menu\ of\ matching\ entries
251
260
  complete -c doing -l not -f -n '__fish_doing_using_command finish' -d Finish\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
252
- complete -c doing -l remove -s r -f -n '__fish_doing_using_command finish' -d Remove\ done\ tag
261
+ complete -c doing -l remove -s r -f -n '__fish_doing_using_command finish' -d Remove\ @done\ tag
253
262
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command finish' -d Section
254
- complete -c doing -l search -f -r -n '__fish_doing_using_command finish' -d Finish\ the\ last\ X\ entries\ matching\ search\ filter
263
+ complete -c doing -l search -f -r -n '__fish_doing_using_command finish' -d Filter\ entries\ using\ a\ search\ query
255
264
  complete -c doing -l for -f -r -n '__fish_doing_using_command finish' -d Set\ the\ completed\ date\ to\ the\ start\ date\ plus\ XX\[hmd\]
256
- complete -c doing -l tag -f -r -n '__fish_doing_using_command finish' -d Finish\ the\ last\ X\ entries\ containing\ TAG
265
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command finish' -d Filter\ entries\ by\ tag
257
266
  complete -c doing -l unfinished -s u -f -n '__fish_doing_using_command finish' -d Finish\ last\ entry
267
+ complete -c doing -l update -f -n '__fish_doing_using_command finish' -d Overwrite\ existing\ @done\ tag\ with\ new\ date
258
268
  complete -c doing -l val -f -r -n '__fish_doing_using_command finish' -d Perform\ a\ tag\ value\ query
259
269
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command finish' -d Force\ exact\ search\ string\ matching
260
270
  complete -c doing -l after -f -r -n '__fish_doing_using_command grep search' -d Search\ entries\ newer\ than\ date
@@ -264,8 +274,8 @@ complete -c doing -l case -f -r -n '__fish_doing_using_command grep search' -d
264
274
  complete -c doing -l config_template -f -r -n '__fish_doing_using_command grep search' -d Output\ using\ a\ template\ from\ configuration
265
275
  complete -c doing -l delete -s d -f -n '__fish_doing_using_command grep search' -d Delete\ matching\ entries
266
276
  complete -c doing -l duration -f -n '__fish_doing_using_command grep search' -d Show\ elapsed\ time\ on\ entries\ without\ @done\ tag
267
- complete -c doing -l editor -s e -f -n '__fish_doing_using_command grep search' -d Edit\ matching\ entries\ with\ /opt/homebrew/bin/vim
268
- complete -c doing -l from -f -r -n '__fish_doing_using_command grep search' -d Date\ range\ to\ show
277
+ complete -c doing -l editor -s e -f -n '__fish_doing_using_command grep search' -d Edit\ matching\ entries\ with\ vim
278
+ complete -c doing -l from -f -r -n '__fish_doing_using_command grep search' -d Date\ range
269
279
  complete -c doing -l hilite -s h -f -n '__fish_doing_using_command grep search' -d Highlight\ search\ matches\ in\ output
270
280
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command grep search' -d Display\ an\ interactive\ menu\ of\ results\ to\ perform\ further\ operations
271
281
  complete -c doing -l not -f -n '__fish_doing_using_command grep search' -d Show\ items\ that\ \*don\'t\*\ match\ search\ string
@@ -283,69 +293,67 @@ complete -c doing -l after -f -r -n '__fish_doing_using_command import' -d Impo
283
293
  complete -c doing -l autotag -f -n '__fish_doing_using_command import' -d Autotag\ entries
284
294
  complete -c doing -l before -f -r -n '__fish_doing_using_command import' -d Import\ entries\ older\ than\ date
285
295
  complete -c doing -l case -f -r -n '__fish_doing_using_command import' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
286
- complete -c doing -l from -s f -f -r -n '__fish_doing_using_command import' -d Date\ range\ to\ import
296
+ complete -c doing -l from -f -r -n '__fish_doing_using_command import' -d Date\ range
287
297
  complete -c doing -l not -f -n '__fish_doing_using_command import' -d Import\ items\ that\ \*don\'t\*\ match\ search/tag/date\ filters
288
298
  complete -c doing -l only_timed -f -n '__fish_doing_using_command import' -d Only\ import\ items\ with\ recorded\ time\ intervals
289
299
  complete -c doing -l overlap -f -n '__fish_doing_using_command import' -d Allow\ entries\ that\ overlap\ existing\ times
290
300
  complete -c doing -l prefix -f -r -n '__fish_doing_using_command import' -d Prefix\ entries\ with
291
301
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command import' -d Target\ section
292
- complete -c doing -l search -f -r -n '__fish_doing_using_command import' -d Only\ import\ items\ matching\ search
302
+ complete -c doing -l search -f -r -n '__fish_doing_using_command import' -d Filter\ entries\ using\ a\ search\ query
293
303
  complete -c doing -l tag -s t -f -r -n '__fish_doing_using_command import' -d Tag\ all\ imported\ entries
294
304
  complete -c doing -l type -f -r -n '__fish_doing_using_command import' -d Import\ type
295
305
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command import' -d Force\ exact\ search\ string\ matching
296
- complete -c doing -l bool -f -r -n '__fish_doing_using_command last' -d Tag\ boolean
306
+ complete -c doing -l bool -f -r -n '__fish_doing_using_command last' -d Boolean\ used\ to\ combine\ multiple\ tags
297
307
  complete -c doing -l case -f -r -n '__fish_doing_using_command last' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
298
308
  complete -c doing -l config_template -f -r -n '__fish_doing_using_command last' -d Output\ using\ a\ template\ from\ configuration
299
309
  complete -c doing -l delete -s d -f -n '__fish_doing_using_command last' -d Delete\ the\ last\ entry
300
310
  complete -c doing -l duration -f -n '__fish_doing_using_command last' -d Show\ elapsed\ time\ if\ entry\ is\ not\ tagged\ @done
301
- complete -c doing -l editor -s e -f -n '__fish_doing_using_command last' -d Edit\ entry\ with\ /opt/homebrew/bin/vim
311
+ complete -c doing -l editor -s e -f -n '__fish_doing_using_command last' -d Edit\ entry\ with\ vim
302
312
  complete -c doing -l hilite -s h -f -n '__fish_doing_using_command last' -d Highlight\ search\ matches\ in\ output
303
- complete -c doing -l not -f -n '__fish_doing_using_command last' -d Show\ items\ that\ \*don\'t\*\ match\ search\ string\ or\ tag\ filter
313
+ complete -c doing -l not -f -n '__fish_doing_using_command last' -d Show\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
304
314
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command last' -d Specify\ a\ section
305
- complete -c doing -l search -f -r -n '__fish_doing_using_command last' -d Search\ filter
306
- complete -c doing -l tag -f -r -n '__fish_doing_using_command last' -d Tag\ filter
315
+ complete -c doing -l search -f -r -n '__fish_doing_using_command last' -d Filter\ entries\ using\ a\ search\ query
316
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command last' -d Filter\ entries\ by\ tag
307
317
  complete -c doing -l template -f -r -n '__fish_doing_using_command last' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
308
318
  complete -c doing -l val -f -r -n '__fish_doing_using_command last' -d Perform\ a\ tag\ value\ query
309
319
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command last' -d Force\ exact\ search\ string\ matching
310
- complete -c doing -l ask -f -n '__fish_doing_using_command later' -d Prompt\ for\ note\ via\ multi-line\ input
311
- complete -c doing -l started -f -r -n '__fish_doing_using_command later' -d Backdate\ start\ time\ to\ date\ string\ \[4pm\|20m\|2h\|yesterday\ noon\]
312
- complete -c doing -l editor -s e -f -n '__fish_doing_using_command later' -d Edit\ entry\ with\ /opt/homebrew/bin/vim
313
- complete -c doing -l note -s n -f -r -n '__fish_doing_using_command later' -d Note
314
- complete -c doing -l bool -f -r -n '__fish_doing_using_command mark flag' -d Boolean
320
+ complete -c doing -l bool -f -r -n '__fish_doing_using_command mark flag' -d Boolean\ used\ to\ combine\ multiple\ tags
315
321
  complete -c doing -l count -s c -f -r -n '__fish_doing_using_command mark flag' -d How\ many\ recent\ entries\ to\ tag
316
322
  complete -c doing -l case -f -r -n '__fish_doing_using_command mark flag' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
317
323
  complete -c doing -l date -s d -f -n '__fish_doing_using_command mark flag' -d Include\ current\ date/time\ with\ tag
318
324
  complete -c doing -l force -f -n '__fish_doing_using_command mark flag' -d Don\'t\ ask\ permission\ to\ flag\ all\ entries\ when\ count\ is\ 0
319
325
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command mark flag' -d Select\ item\(s\)\ to\ flag\ from\ a\ menu\ of\ matching\ entries
320
- complete -c doing -l not -f -n '__fish_doing_using_command mark flag' -d Flag\ items\ that\ \*don\'t\*\ match\ search/tag/date\ filters
326
+ complete -c doing -l not -f -n '__fish_doing_using_command mark flag' -d Flag\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
321
327
  complete -c doing -l remove -s r -f -n '__fish_doing_using_command mark flag' -d Remove\ flag
322
328
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command mark flag' -d Section
323
- complete -c doing -l search -f -r -n '__fish_doing_using_command mark flag' -d Flag\ the\ last\ entry\ matching\ search\ filter
324
- complete -c doing -l tag -f -r -n '__fish_doing_using_command mark flag' -d Flag\ the\ last\ entry\ containing\ TAG
329
+ complete -c doing -l search -f -r -n '__fish_doing_using_command mark flag' -d Filter\ entries\ using\ a\ search\ query
330
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command mark flag' -d Filter\ entries\ by\ tag
325
331
  complete -c doing -l unfinished -s u -f -n '__fish_doing_using_command mark flag' -d Flag\ last\ entry
326
332
  complete -c doing -l val -f -r -n '__fish_doing_using_command mark flag' -d Perform\ a\ tag\ value\ query
327
333
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command mark flag' -d Force\ exact\ search\ string\ matching
334
+ complete -c doing -l noauto -s X -f -n '__fish_doing_using_command meanwhile' -d Exclude\ auto\ tags\ and\ default\ tags
328
335
  complete -c doing -l archive -s a -f -n '__fish_doing_using_command meanwhile' -d Archive\ previous\ @meanwhile\ entry
329
336
  complete -c doing -l ask -f -n '__fish_doing_using_command meanwhile' -d Prompt\ for\ note\ via\ multi-line\ input
330
337
  complete -c doing -l started -f -r -n '__fish_doing_using_command meanwhile' -d Backdate\ start\ date\ for\ new\ entry\ to\ date\ string\ \[4pm\|20m\|2h\|yesterday\ noon\]
331
- complete -c doing -l editor -s e -f -n '__fish_doing_using_command meanwhile' -d Edit\ entry\ with\ /opt/homebrew/bin/vim
332
- complete -c doing -l note -s n -f -r -n '__fish_doing_using_command meanwhile' -d Note
338
+ complete -c doing -l editor -s e -f -n '__fish_doing_using_command meanwhile' -d Edit\ entry\ with\ vim
339
+ complete -c doing -l note -s n -f -r -n '__fish_doing_using_command meanwhile' -d Include\ a\ note
333
340
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command meanwhile' -d Section
334
341
  complete -c doing -l ask -f -n '__fish_doing_using_command note' -d Prompt\ for\ note\ via\ multi-line\ input
335
- complete -c doing -l bool -f -r -n '__fish_doing_using_command note' -d Boolean
342
+ complete -c doing -l bool -f -r -n '__fish_doing_using_command note' -d Boolean\ used\ to\ combine\ multiple\ tags
336
343
  complete -c doing -l case -f -r -n '__fish_doing_using_command note' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
337
- complete -c doing -l editor -s e -f -n '__fish_doing_using_command note' -d Edit\ entry\ with\ /opt/homebrew/bin/vim
344
+ complete -c doing -l editor -s e -f -n '__fish_doing_using_command note' -d Edit\ entry\ with\ vim
338
345
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command note' -d Select\ item\ for\ new\ note\ from\ a\ menu\ of\ matching\ entries
339
- complete -c doing -l not -f -n '__fish_doing_using_command note' -d Add\ note\ to\ item\ that\ \*doesn\'t\*\ match\ search/tag\ filters
346
+ complete -c doing -l not -f -n '__fish_doing_using_command note' -d Note\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
340
347
  complete -c doing -l remove -s r -f -n '__fish_doing_using_command note' -d Replace/Remove\ last\ entry\'s\ note
341
348
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command note' -d Section
342
- complete -c doing -l search -f -r -n '__fish_doing_using_command note' -d Add/remove\ note\ from\ last\ entry\ matching\ search\ filter
343
- complete -c doing -l tag -f -r -n '__fish_doing_using_command note' -d Add/remove\ note\ from\ last\ entry\ matching\ tag
349
+ complete -c doing -l search -f -r -n '__fish_doing_using_command note' -d Filter\ entries\ using\ a\ search\ query
350
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command note' -d Filter\ entries\ by\ tag
344
351
  complete -c doing -l val -f -r -n '__fish_doing_using_command note' -d Perform\ a\ tag\ value\ query
345
352
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command note' -d Force\ exact\ search\ string\ matching
353
+ complete -c doing -l noauto -s X -f -n '__fish_doing_using_command now next' -d Exclude\ auto\ tags\ and\ default\ tags
346
354
  complete -c doing -l ask -f -n '__fish_doing_using_command now next' -d Prompt\ for\ note\ via\ multi-line\ input
347
- complete -c doing -l started -f -r -n '__fish_doing_using_command now next' -d Backdate\ start\ time\ \[4pm\|20m\|2h\|\"yesterday\ noon\"\]
348
- complete -c doing -l editor -s e -f -n '__fish_doing_using_command now next' -d Edit\ entry\ with\ /opt/homebrew/bin/vim
355
+ complete -c doing -l started -f -r -n '__fish_doing_using_command now next' -d Backdate\ start\ date\ for\ new\ entry\ to\ date\ string\ \[4pm\|20m\|2h\|yesterday\ noon\]
356
+ complete -c doing -l editor -s e -f -n '__fish_doing_using_command now next' -d Edit\ entry\ with\ vim
349
357
  complete -c doing -l finish_last -s f -f -n '__fish_doing_using_command now next' -d Timed\ entry
350
358
  complete -c doing -l from -f -r -n '__fish_doing_using_command now next' -d Set\ a\ start\ and\ optionally\ end\ time\ as\ a\ date\ range
351
359
  complete -c doing -l note -s n -f -r -n '__fish_doing_using_command now next' -d Include\ a\ note
@@ -371,31 +379,33 @@ complete -c doing -l times -s t -f -n '__fish_doing_using_command recent' -d Sh
371
379
  complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command recent' -d Sort\ tags\ by
372
380
  complete -c doing -l template -f -r -n '__fish_doing_using_command recent' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
373
381
  complete -c doing -l totals -f -n '__fish_doing_using_command recent' -d Show\ intervals\ with\ totals\ at\ the\ end\ of\ output
374
- complete -c doing -l bool -f -r -n '__fish_doing_using_command reset begin' -d Boolean
382
+ complete -c doing -l file -s f -f -r -n '__fish_doing_using_command redo' -d Specify\ alternate\ doing\ file
383
+ complete -c doing -l interactive -s i -f -n '__fish_doing_using_command redo' -d Select\ from\ an\ interactive\ menu
384
+ complete -c doing -l bool -f -r -n '__fish_doing_using_command reset begin' -d Boolean\ used\ to\ combine\ multiple\ tags
375
385
  complete -c doing -l case -f -r -n '__fish_doing_using_command reset begin' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
376
386
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command reset begin' -d Select\ from\ a\ menu\ of\ matching\ entries
377
387
  complete -c doing -l not -f -n '__fish_doing_using_command reset begin' -d Reset\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
378
388
  complete -c doing -l resume -s r -f -n '__fish_doing_using_command reset begin' -d Resume\ entry
379
389
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command reset begin' -d Limit\ search\ to\ section
380
- complete -c doing -l search -f -r -n '__fish_doing_using_command reset begin' -d Reset\ last\ entry\ matching\ search\ filter
381
- complete -c doing -l tag -f -r -n '__fish_doing_using_command reset begin' -d Reset\ last\ entry\ matching\ tag
390
+ complete -c doing -l search -f -r -n '__fish_doing_using_command reset begin' -d Filter\ entries\ using\ a\ search\ query
391
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command reset begin' -d Filter\ entries\ by\ tag
382
392
  complete -c doing -l val -f -r -n '__fish_doing_using_command reset begin' -d Perform\ a\ tag\ value\ query
383
393
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command reset begin' -d Force\ exact\ search\ string\ matching
384
394
  complete -c doing -l before -f -r -n '__fish_doing_using_command rotate' -d Rotate\ entries\ older\ than\ date
385
- complete -c doing -l bool -f -r -n '__fish_doing_using_command rotate' -d Tag\ boolean
395
+ complete -c doing -l bool -f -r -n '__fish_doing_using_command rotate' -d Boolean\ used\ to\ combine\ multiple\ tags
386
396
  complete -c doing -l case -f -r -n '__fish_doing_using_command rotate' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
387
397
  complete -c doing -l keep -s k -f -r -n '__fish_doing_using_command rotate' -d How\ many\ items\ to\ keep\ in\ each\ section
388
- complete -c doing -l not -f -n '__fish_doing_using_command rotate' -d Rotate\ items\ that\ \*don\'t\*\ match\ search\ string\ or\ tag\ filter
398
+ complete -c doing -l not -f -n '__fish_doing_using_command rotate' -d Rotate\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
389
399
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command rotate' -d Section\ to\ rotate
390
- complete -c doing -l search -f -r -n '__fish_doing_using_command rotate' -d Search\ filter
391
- complete -c doing -l tag -f -r -n '__fish_doing_using_command rotate' -d Tag\ filter
400
+ complete -c doing -l search -f -r -n '__fish_doing_using_command rotate' -d Filter\ entries\ using\ a\ search\ query
401
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command rotate' -d Filter\ entries\ by\ tag
392
402
  complete -c doing -l val -f -r -n '__fish_doing_using_command rotate' -d Perform\ a\ tag\ value\ query
393
403
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command rotate' -d Force\ exact\ search\ string\ matching
394
404
  complete -c doing -l column -s c -f -n '__fish_doing_using_command sections' -d List\ in\ single\ column
395
405
  complete -c doing -l archive -s a -f -n '__fish_doing_using_command select' -d Archive\ selected\ items
396
- complete -c doing -l after -f -r -n '__fish_doing_using_command select' -d Select\ from\ entries\ newer\ than\ date
406
+ complete -c doing -l after -f -r -n '__fish_doing_using_command select' -d Select\ entries\ newer\ than\ date
397
407
  complete -c doing -l resume -f -n '__fish_doing_using_command select' -d Copy\ selection\ as\ a\ new\ entry\ with\ current\ time\ and\ no\ @done\ tag
398
- complete -c doing -l before -f -r -n '__fish_doing_using_command select' -d Select\ from\ entries\ older\ than\ date
408
+ complete -c doing -l before -f -r -n '__fish_doing_using_command select' -d Select\ entries\ older\ than\ date
399
409
  complete -c doing -l cancel -s c -f -n '__fish_doing_using_command select' -d Cancel\ selected\ items
400
410
  complete -c doing -l case -f -r -n '__fish_doing_using_command select' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
401
411
  complete -c doing -l delete -s d -f -n '__fish_doing_using_command select' -d Delete\ selected\ items
@@ -403,7 +413,7 @@ complete -c doing -l editor -s e -f -n '__fish_doing_using_command select' -d E
403
413
  complete -c doing -l finish -s f -f -n '__fish_doing_using_command select' -d Add\ @done\ with\ current\ time\ to\ selected\ item\(s\)
404
414
  complete -c doing -l flag -f -n '__fish_doing_using_command select' -d Add\ flag\ to\ selected\ item\(s\)
405
415
  complete -c doing -l force -f -n '__fish_doing_using_command select' -d Perform\ action\ without\ confirmation
406
- complete -c doing -l from -f -r -n '__fish_doing_using_command select' -d Date\ range\ to\ show
416
+ complete -c doing -l from -f -r -n '__fish_doing_using_command select' -d Date\ range
407
417
  complete -c doing -l move -s m -f -r -n '__fish_doing_using_command select' -d Move\ selected\ items\ to\ section
408
418
  complete -c doing -l menu -f -n '__fish_doing_using_command select' -d Use\ --no-menu\ to\ skip\ the\ interactive\ menu
409
419
  complete -c doing -l not -f -n '__fish_doing_using_command select' -d Select\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
@@ -412,29 +422,29 @@ complete -c doing -l query -s q -f -r -n '__fish_doing_using_command select' -d
412
422
  complete -c doing -l remove -s r -f -n '__fish_doing_using_command select' -d Reverse\ -c
413
423
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command select' -d Select\ from\ a\ specific\ section
414
424
  complete -c doing -l save_to -f -r -n '__fish_doing_using_command select' -d Save\ selected\ entries\ to\ file\ using\ --output\ format
415
- complete -c doing -l search -f -r -n '__fish_doing_using_command select' -d Select\ from\ entries\ matching\ search\ filter
425
+ complete -c doing -l search -f -r -n '__fish_doing_using_command select' -d Filter\ entries\ using\ a\ search\ query
416
426
  complete -c doing -l tag -s t -f -r -n '__fish_doing_using_command select' -d Tag\ selected\ entries
417
427
  complete -c doing -l val -f -r -n '__fish_doing_using_command select' -d Perform\ a\ tag\ value\ query
418
428
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command select' -d Force\ exact\ search\ string\ matching
419
429
  complete -c doing -l age -s a -f -r -n '__fish_doing_using_command show' -d Age
420
430
  complete -c doing -l after -f -r -n '__fish_doing_using_command show' -d Show\ entries\ newer\ than\ date
421
- complete -c doing -l bool -s b -f -r -n '__fish_doing_using_command show' -d Tag\ boolean
422
431
  complete -c doing -l before -f -r -n '__fish_doing_using_command show' -d Show\ entries\ older\ than\ date
432
+ complete -c doing -l bool -f -r -n '__fish_doing_using_command show' -d Boolean\ used\ to\ combine\ multiple\ tags
423
433
  complete -c doing -l count -s c -f -r -n '__fish_doing_using_command show' -d Max\ count\ to\ show
424
434
  complete -c doing -l case -f -r -n '__fish_doing_using_command show' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
425
435
  complete -c doing -l config_template -f -r -n '__fish_doing_using_command show' -d Output\ using\ a\ template\ from\ configuration
426
436
  complete -c doing -l duration -f -n '__fish_doing_using_command show' -d Show\ elapsed\ time\ on\ entries\ without\ @done\ tag
427
- complete -c doing -l from -f -r -n '__fish_doing_using_command show' -d Date\ range\ to\ show
437
+ complete -c doing -l from -f -r -n '__fish_doing_using_command show' -d Date\ range
428
438
  complete -c doing -l hilite -s h -f -n '__fish_doing_using_command show' -d Highlight\ search\ matches\ in\ output
429
439
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command show' -d Select\ from\ a\ menu\ of\ matching\ entries\ to\ perform\ additional\ operations
430
440
  complete -c doing -l menu -s m -f -n '__fish_doing_using_command show' -d Select\ section\ or\ tag\ to\ display\ from\ a\ menu
431
- complete -c doing -l not -f -n '__fish_doing_using_command show' -d Show\ items\ that\ \*don\'t\*\ match\ search/tag/date\ filters
441
+ complete -c doing -l not -f -n '__fish_doing_using_command show' -d Show\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
432
442
  complete -c doing -l output -s o -f -r -n '__fish_doing_using_command show' -d Output\ to\ export\ format
433
443
  complete -c doing -l only_timed -f -n '__fish_doing_using_command show' -d Only\ show\ items\ with\ recorded\ time\ intervals
434
444
  complete -c doing -l sort -s s -f -r -n '__fish_doing_using_command show' -d Sort\ order
435
- complete -c doing -l search -f -r -n '__fish_doing_using_command show' -d Search\ filter
445
+ complete -c doing -l search -f -r -n '__fish_doing_using_command show' -d Filter\ entries\ using\ a\ search\ query
436
446
  complete -c doing -l times -s t -f -n '__fish_doing_using_command show' -d Show\ time\ intervals\ on\ @done\ tasks
437
- complete -c doing -l tag -f -r -n '__fish_doing_using_command show' -d Tag\ filter
447
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command show' -d Filter\ entries\ by\ tag
438
448
  complete -c doing -l tag_order -f -r -n '__fish_doing_using_command show' -d Tag\ sort\ direction
439
449
  complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command show' -d Sort\ tags\ by
440
450
  complete -c doing -l template -f -r -n '__fish_doing_using_command show' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
@@ -450,7 +460,7 @@ complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command since' -d So
450
460
  complete -c doing -l template -f -r -n '__fish_doing_using_command since' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
451
461
  complete -c doing -l totals -f -n '__fish_doing_using_command since' -d Show\ time\ totals\ at\ the\ end\ of\ output
452
462
  complete -c doing -l autotag -s a -f -n '__fish_doing_using_command tag' -d Autotag\ entries\ based\ on\ autotag\ configuration\ in\ \~/
453
- complete -c doing -l bool -f -r -n '__fish_doing_using_command tag' -d Boolean
463
+ complete -c doing -l bool -f -r -n '__fish_doing_using_command tag' -d Boolean\ used\ to\ combine\ multiple\ tags
454
464
  complete -c doing -l count -s c -f -r -n '__fish_doing_using_command tag' -d How\ many\ recent\ entries\ to\ tag
455
465
  complete -c doing -l case -f -r -n '__fish_doing_using_command tag' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
456
466
  complete -c doing -l date -s d -f -n '__fish_doing_using_command tag' -d Include\ current\ date/time\ with\ tag
@@ -461,8 +471,8 @@ complete -c doing -l remove -s r -f -n '__fish_doing_using_command tag' -d Remo
461
471
  complete -c doing -l regex -f -n '__fish_doing_using_command tag' -d Interpret\ tag\ string\ as\ regular\ expression
462
472
  complete -c doing -l rename -f -r -n '__fish_doing_using_command tag' -d Replace\ existing\ tag\ with\ tag\ argument
463
473
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command tag' -d Section
464
- complete -c doing -l search -f -r -n '__fish_doing_using_command tag' -d Tag\ entries\ matching\ search\ filter
465
- complete -c doing -l tag -f -r -n '__fish_doing_using_command tag' -d Tag\ the\ last\ X\ entries\ containing\ TAG
474
+ complete -c doing -l search -f -r -n '__fish_doing_using_command tag' -d Filter\ entries\ using\ a\ search\ query
475
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command tag' -d Filter\ entries\ by\ tag
466
476
  complete -c doing -l unfinished -s u -f -n '__fish_doing_using_command tag' -d Tag\ last\ entry
467
477
  complete -c doing -l value -s v -f -r -n '__fish_doing_using_command tag' -d Include\ a\ value
468
478
  complete -c doing -l val -f -r -n '__fish_doing_using_command tag' -d Perform\ a\ tag\ value\ query
@@ -473,12 +483,12 @@ complete -c doing -l counts -s c -f -n '__fish_doing_using_command tags' -d Sho
473
483
  complete -c doing -l case -f -r -n '__fish_doing_using_command tags' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
474
484
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command tags' -d Select\ items\ to\ scan\ from\ a\ menu\ of\ matching\ entries
475
485
  complete -c doing -l line -s l -f -n '__fish_doing_using_command tags' -d Output\ in\ a\ single\ line\ with\ @\ symbols
476
- complete -c doing -l not -f -n '__fish_doing_using_command tags' -d Get\ tags\ from\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
486
+ complete -c doing -l not -f -n '__fish_doing_using_command tags' -d Show\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
477
487
  complete -c doing -l order -s o -f -r -n '__fish_doing_using_command tags' -d Sort\ order
478
488
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command tags' -d Section
479
- complete -c doing -l search -f -r -n '__fish_doing_using_command tags' -d Get\ tags\ for\ items\ matching\ search
489
+ complete -c doing -l search -f -r -n '__fish_doing_using_command tags' -d Filter\ entries\ using\ a\ search\ query
480
490
  complete -c doing -l sort -f -r -n '__fish_doing_using_command tags' -d Sort\ by\ name\ or\ count
481
- complete -c doing -l tag -f -r -n '__fish_doing_using_command tags' -d Get\ tags\ for\ entries\ matching\ tags
491
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command tags' -d Filter\ entries\ by\ tag
482
492
  complete -c doing -l val -f -r -n '__fish_doing_using_command tags' -d Perform\ a\ tag\ value\ query
483
493
  complete -c doing -l exact -s x -f -n '__fish_doing_using_command tags' -d Force\ exact\ search\ string\ matching
484
494
  complete -c doing -l column -s c -f -n '__fish_doing_using_command template' -d List\ in\ single\ column\ for\ completion
@@ -500,24 +510,24 @@ complete -c doing -l file -s f -f -r -n '__fish_doing_using_command undo' -d Spe
500
510
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command undo' -d Select\ from\ recent\ backups
501
511
  complete -c doing -l prune -s p -f -r -n '__fish_doing_using_command undo' -d Remove\ old\ backups
502
512
  complete -c doing -l redo -s r -f -n '__fish_doing_using_command undo' -d Redo\ last\ undo
503
- complete -c doing -l after -f -r -n '__fish_doing_using_command view' -d View\ entries\ newer\ than\ date
513
+ complete -c doing -l after -f -r -n '__fish_doing_using_command view' -d Show\ entries\ newer\ than\ date
504
514
  complete -c doing -l age -f -r -n '__fish_doing_using_command view' -d Age
505
- complete -c doing -l bool -s b -f -r -n '__fish_doing_using_command view' -d Tag\ boolean
506
- complete -c doing -l before -f -r -n '__fish_doing_using_command view' -d View\ entries\ older\ than\ date
515
+ complete -c doing -l before -f -r -n '__fish_doing_using_command view' -d Show\ entries\ older\ than\ date
516
+ complete -c doing -l bool -f -r -n '__fish_doing_using_command view' -d Boolean\ used\ to\ combine\ multiple\ tags
507
517
  complete -c doing -l count -s c -f -r -n '__fish_doing_using_command view' -d Count\ to\ display
508
518
  complete -c doing -l case -f -r -n '__fish_doing_using_command view' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
509
519
  complete -c doing -l color -f -n '__fish_doing_using_command view' -d Include\ colors\ in\ output
510
520
  complete -c doing -l duration -f -n '__fish_doing_using_command view' -d Show\ elapsed\ time\ on\ entries\ without\ @done\ tag
511
- complete -c doing -l from -f -r -n '__fish_doing_using_command view' -d Date\ range\ to\ show
521
+ complete -c doing -l from -f -r -n '__fish_doing_using_command view' -d Date\ range
512
522
  complete -c doing -l hilite -s h -f -n '__fish_doing_using_command view' -d Highlight\ search\ matches\ in\ output
513
523
  complete -c doing -l interactive -s i -f -n '__fish_doing_using_command view' -d Select\ from\ a\ menu\ of\ matching\ entries\ to\ perform\ additional\ operations
514
- complete -c doing -l not -f -n '__fish_doing_using_command view' -d Show\ items\ that\ \*don\'t\*\ match\ search\ string
524
+ complete -c doing -l not -f -n '__fish_doing_using_command view' -d Show\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
515
525
  complete -c doing -l output -s o -f -r -n '__fish_doing_using_command view' -d Output\ to\ export\ format
516
526
  complete -c doing -l only_timed -f -n '__fish_doing_using_command view' -d Only\ show\ items\ with\ recorded\ time\ intervals
517
527
  complete -c doing -l section -s s -f -r -n '__fish_doing_using_command view' -d Section
518
- complete -c doing -l search -f -r -n '__fish_doing_using_command view' -d Search\ filter
528
+ complete -c doing -l search -f -r -n '__fish_doing_using_command view' -d Filter\ entries\ using\ a\ search\ query
519
529
  complete -c doing -l times -s t -f -n '__fish_doing_using_command view' -d Show\ time\ intervals\ on\ @done\ tasks
520
- complete -c doing -l tag -f -r -n '__fish_doing_using_command view' -d Tag\ filter
530
+ complete -c doing -l tag -f -r -n '__fish_doing_using_command view' -d Filter\ entries\ by\ tag
521
531
  complete -c doing -l tag_order -f -r -n '__fish_doing_using_command view' -d Tag\ sort\ direction
522
532
  complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command view' -d Sort\ tags\ by
523
533
  complete -c doing -l totals -f -n '__fish_doing_using_command view' -d Show\ intervals\ with\ totals\ at\ the\ end\ of\ output
@@ -546,7 +556,7 @@ complete -c doing -l template -f -r -n '__fish_doing_using_command yesterday' -
546
556
  complete -c doing -l totals -f -n '__fish_doing_using_command yesterday' -d Show\ time\ totals\ at\ the\ end\ of\ output
547
557
  complete -f -c doing -s o -l output -x -n '__fish_doing_using_command grep search on select show since today view yesterday' -a '(__fish_doing_export_plugin)'
548
558
  complete -f -c doing -s b -l bool -x -n '__fish_doing_using_command again resume archive move autotag cancel finish grep search last mark flag note reset begin rotate show tag tags view wiki' -a 'and or not pattern'
549
- complete -f -c doing -l case -x -n '__fish_doing_using_command again resume archive move cancel finish grep search import last mark flag note reset begin rotate select show show tag tags tags view' -a 'case-sensitive ignore smart'
559
+ complete -f -c doing -l case -x -n '__fish_doing_using_command again resume archive move cancel changes changelog finish grep search import last mark flag note reset begin rotate select show show tag tags tags view' -a 'case-sensitive ignore smart'
550
560
  complete -f -c doing -l tag_sort -x -n '__fish_doing_using_command grep search on recent show since today view yesterday' -a 'name time'
551
561
  complete -f -c doing -l tag_order -x -n '__fish_doing_using_command show view yesterday' -a 'asc desc'
552
562
  complete -f -c doing -s a -l age -x -n '__fish_doing_using_command show view' -a 'oldest newest'
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'tags'
4
+ require_relative 'nested_hash'
@@ -0,0 +1,17 @@
1
+ module Doing
2
+ ##
3
+ ## Array helpers
4
+ ##
5
+ class ::Array
6
+ ##
7
+ ## Convert array to nested hash, setting last key to value
8
+ ##
9
+ ## @param value The value to set
10
+ ##
11
+ def nested_hash(value = nil)
12
+ hsh = Hash.new { |h, k| h[k] = Hash.new(&h.default_proc) }
13
+ hsh.dig(*self[0..-2])[fetch(-1)] = value
14
+ hsh
15
+ end
16
+ end
17
+ end
@@ -6,15 +6,15 @@ module Doing
6
6
  ##
7
7
  class ::Array
8
8
  ##
9
- ## Convert an @tags to plain strings
9
+ ## Convert an array of @tags to plain strings
10
10
  ##
11
11
  ## @return [Array] array of strings
12
12
  ##
13
13
  def tags_to_array
14
- map(&:remove_at)
14
+ map(&:remove_at).map(&:strip)
15
15
  end
16
16
 
17
- # Convert strings to @tags
17
+ # Convert array of strings to array of @tags
18
18
  #
19
19
  # @return [Array] Array of @tags
20
20
  #
@@ -25,21 +25,16 @@ module Doing
25
25
  map(&:add_at)
26
26
  end
27
27
 
28
- def to_tags!
29
- replace to_tags
30
- end
31
-
32
28
  ##
33
29
  ## Hightlight @tags in string for console output
34
30
  ##
35
31
  ## @param color [String] the color to highlight
36
32
  ## with
37
33
  ##
38
- ## @return [String] string with @tags highlighted
34
+ ## @return [Array] Array of highlighted @tags
39
35
  ##
40
36
  def highlight_tags(color = 'cyan')
41
- tag_color = Doing::Color.send(color)
42
- to_tags.map { |t| "#{tag_color}#{t}" }
37
+ to_tags.map { |t| Doing::Color.send(color.to_sym, t) }
43
38
  end
44
39
 
45
40
  ##
@@ -47,21 +42,8 @@ module Doing
47
42
  ##
48
43
  ## @return [String] Highlighted tag array joined with comma
49
44
  ##
50
- def log_tags
51
- highlight_tags.join(', ')
52
- end
53
-
54
- ##
55
- ## Convert array to nested hash, setting last key to value
56
- ##
57
- ## @param value The value to set
58
- ##
59
- def nested_hash(value)
60
- raise StandardError, 'Value can not be nil' if value.nil?
61
-
62
- hsh = Hash.new { |h, k| h[k] = Hash.new(&h.default_proc) }
63
- hsh.dig(*self[0..-2])[self.fetch(-1)] = value
64
- hsh
45
+ def log_tags(color = 'cyan')
46
+ highlight_tags(color).join(', ')
65
47
  end
66
48
  end
67
49
  end
@@ -5,7 +5,7 @@ module Doing
5
5
  class Change
6
6
  attr_reader :version, :content
7
7
 
8
- attr_accessor :entries
8
+ attr_accessor :entries, :change_date
9
9
 
10
10
  def initialize(version, content)
11
11
  @version = Version.new(version)
@@ -14,6 +14,9 @@ module Doing
14
14
  end
15
15
 
16
16
  def parse_entries
17
+ date = @content.match(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$/)
18
+ @change_date = Time.parse(date[0]) if date
19
+
17
20
  @entries = []
18
21
  types = @content.scan(/(?<=\n|\A)#### (NEW|IMPROVED|FIXED)(.*?)(?=\n####|\Z)/m)
19
22
  types.each do |type|
@@ -28,7 +31,7 @@ module Doing
28
31
 
29
32
  matches = []
30
33
 
31
- if search_string.is_rx?
34
+ if search_string.rx?
32
35
  matches = @entries.select { |e| e.string =~ search_string.to_rx(distance: 2, case_type: case_type) }
33
36
  else
34
37
  query = search_string.gsub(/(-)?--/, '\1]]').to_phrase_query
@@ -53,14 +56,9 @@ module Doing
53
56
  { version: @version, content: @content }
54
57
  end
55
58
 
56
- def to_s
57
- out = ["### #{@version}"]
58
- items = {
59
- new: [],
60
- improved: [],
61
- fixed: [],
62
- other: []
63
- }
59
+ def split_items
60
+ items = { new: [], improved: [], fixed: [], other: [] }
61
+
64
62
  @entries.each do |e|
65
63
  type = e.type.downcase.to_sym
66
64
  if items.key?(type)
@@ -70,7 +68,14 @@ module Doing
70
68
  end
71
69
  end
72
70
 
73
- items.each do |type, members|
71
+ items
72
+ end
73
+
74
+ def to_s
75
+ date = @change_date.nil? ? '' : " _(#{@change_date.strftime('%F')})_"
76
+ out = ["### __#{@version}__#{date}"]
77
+
78
+ split_items.each do |type, members|
74
79
  if members.count.positive?
75
80
  out << "#### #{type.to_s.capitalize}"
76
81
  out << members.map(&:to_s).join("\n")
@@ -80,6 +85,16 @@ module Doing
80
85
  out.join("\n\n")
81
86
  end
82
87
 
88
+ def changes_only
89
+ out = []
90
+
91
+ split_items.each do |_, members|
92
+ out << members.map(&:to_s).join("\n")
93
+ end
94
+
95
+ out.join("\n")
96
+ end
97
+
83
98
  private
84
99
 
85
100
  def all_searches?(text, searches)