doing 2.1.23 → 2.1.27
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.
- checksums.yaml +4 -4
- data/.yardoc/checksums +17 -21
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/CHANGELOG.md +329 -102
- data/Dockerfile +5 -5
- data/Dockerfile-2.6 +5 -5
- data/Dockerfile-2.7 +5 -4
- data/Dockerfile-3.0 +5 -4
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/Rakefile +3 -3
- data/bin/commands/add_section.rb +15 -0
- data/bin/commands/again.rb +57 -0
- data/bin/commands/archive.rb +55 -0
- data/bin/commands/cancel.rb +60 -0
- data/bin/commands/changes.rb +69 -0
- data/bin/commands/choose.rb +9 -0
- data/bin/commands/colors.rb +21 -0
- data/bin/commands/commands.rb +89 -0
- data/bin/commands/commands_accepting.rb +76 -0
- data/bin/commands/completion.rb +27 -0
- data/bin/commands/config.rb +245 -0
- data/bin/commands/done.rb +235 -0
- data/bin/commands/finish.rb +126 -0
- data/bin/commands/flag.rb +90 -0
- data/bin/commands/grep.rb +108 -0
- data/bin/commands/import.rb +71 -0
- data/bin/commands/install_fzf.rb +17 -0
- data/bin/commands/last.rb +81 -0
- data/bin/commands/meanwhile.rb +76 -0
- data/bin/commands/note.rb +91 -0
- data/bin/commands/now.rb +145 -0
- data/bin/commands/on.rb +65 -0
- data/bin/commands/open.rb +53 -0
- data/bin/commands/plugins.rb +23 -0
- data/bin/commands/recent.rb +77 -0
- data/bin/commands/redo.rb +26 -0
- data/bin/commands/reset.rb +73 -0
- data/bin/commands/rotate.rb +42 -0
- data/bin/commands/sections.rb +11 -0
- data/bin/commands/select.rb +105 -0
- data/bin/commands/show.rb +185 -0
- data/bin/commands/since.rb +63 -0
- data/bin/commands/tag.rb +149 -0
- data/bin/commands/tag_dir.rb +29 -0
- data/bin/commands/tags.rb +66 -0
- data/bin/commands/template.rb +61 -0
- data/bin/commands/today.rb +64 -0
- data/bin/commands/undo.rb +49 -0
- data/bin/commands/view.rb +201 -0
- data/bin/commands/views.rb +11 -0
- data/bin/commands/yesterday.rb +72 -0
- data/bin/doing +241 -3662
- data/docs/doc/Array.html +13 -449
- data/docs/doc/BooleanTermParser/Clause.html +5 -5
- data/docs/doc/BooleanTermParser/Operator.html +4 -4
- data/docs/doc/BooleanTermParser/Query.html +8 -8
- data/docs/doc/BooleanTermParser/QueryParser.html +2 -2
- data/docs/doc/BooleanTermParser/QueryTransformer.html +2 -2
- data/docs/doc/BooleanTermParser.html +1 -1
- data/docs/doc/Doing/Color.html +65 -59
- data/docs/doc/Doing/Completion.html +2 -2
- data/docs/doc/Doing/Configuration.html +49 -16
- data/docs/doc/Doing/Errors/DoingNoTraceError.html +2 -2
- data/docs/doc/Doing/Errors/DoingRuntimeError.html +2 -2
- data/docs/doc/Doing/Errors/DoingStandardError.html +2 -2
- data/docs/doc/Doing/Errors/EmptyInput.html +2 -2
- data/docs/doc/Doing/Errors/NoResults.html +2 -2
- data/docs/doc/Doing/Errors/PluginException.html +3 -3
- data/docs/doc/Doing/Errors/UserCancelled.html +2 -2
- data/docs/doc/Doing/Errors/WrongCommand.html +2 -2
- data/docs/doc/Doing/Errors.html +1 -1
- data/docs/doc/Doing/Hooks.html +6 -6
- data/docs/doc/Doing/Item.html +50 -16
- data/docs/doc/Doing/Items.html +10 -10
- data/docs/doc/Doing/LogAdapter.html +24 -24
- data/docs/doc/Doing/Note.html +7 -7
- data/docs/doc/Doing/Pager.html +4 -4
- data/docs/doc/Doing/Plugins.html +7 -7
- data/docs/doc/Doing/Prompt.html +59 -14
- data/docs/doc/Doing/Section.html +6 -6
- data/docs/doc/Doing/TemplateString.html +8 -8
- data/docs/doc/Doing/Types.html +46 -1
- data/docs/doc/Doing/Util/Backup.html +10 -10
- data/docs/doc/Doing/Util.html +15 -15
- data/docs/doc/Doing/WWID.html +73 -61
- data/docs/doc/Doing.html +3 -3
- data/docs/doc/FalseClass.html +235 -0
- data/docs/doc/GLI/Commands/Help.html +3 -3
- data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +17 -17
- data/docs/doc/GLI/Commands.html +1 -1
- data/docs/doc/GLI.html +1 -1
- data/docs/doc/Hash.html +45 -11
- data/docs/doc/Numeric.html +5 -5
- data/docs/doc/Object.html +203 -0
- data/docs/doc/PhraseParser/Operator.html +4 -4
- data/docs/doc/PhraseParser/PhraseClause.html +5 -5
- data/docs/doc/PhraseParser/Query.html +10 -10
- data/docs/doc/PhraseParser/QueryParser.html +2 -2
- data/docs/doc/PhraseParser/QueryTransformer.html +2 -2
- data/docs/doc/PhraseParser/TermClause.html +5 -5
- data/docs/doc/PhraseParser.html +1 -1
- data/docs/doc/Status.html +7 -7
- data/docs/doc/String.html +306 -3111
- data/docs/doc/Symbol.html +45 -11
- data/docs/doc/Time.html +6 -6
- data/docs/doc/TrueClass.html +235 -0
- data/docs/doc/_index.html +37 -19
- data/docs/doc/class_list.html +1 -1
- data/docs/doc/file.README.html +2 -2
- data/docs/doc/index.html +2 -2
- data/docs/doc/method_list.html +240 -576
- data/docs/doc/top-level-namespace.html +2 -2
- data/doing.rdoc +289 -169
- data/example_plugin.rb +2 -2
- data/lib/completion/_doing.zsh +35 -31
- data/lib/completion/doing.bash +30 -19
- data/lib/completion/doing.fish +81 -67
- data/lib/doing/array/array.rb +4 -0
- data/lib/doing/array/nested_hash.rb +17 -0
- data/lib/doing/{array.rb → array/tags.rb} +7 -25
- data/lib/doing/changelog/change.rb +26 -11
- data/lib/doing/changelog/changes.rb +14 -4
- data/lib/doing/{array_chronify.rb → chronify/array.rb} +0 -0
- data/lib/doing/chronify/chronify.rb +5 -0
- data/lib/doing/{numeric_chronify.rb → chronify/numeric.rb} +0 -0
- data/lib/doing/{string_chronify.rb → chronify/string.rb} +0 -0
- data/lib/doing/colors.rb +115 -54
- data/lib/doing/completion/fish_completion.rb +2 -1
- data/lib/doing/configuration.rb +9 -6
- data/lib/doing/good.rb +72 -0
- data/lib/doing/hash.rb +4 -0
- data/lib/doing/help_monkey_patch.rb +6 -5
- data/lib/doing/hooks.rb +3 -3
- data/lib/doing/item.rb +19 -15
- data/lib/doing/items.rb +2 -2
- data/lib/doing/log_adapter.rb +35 -2
- data/lib/doing/normalize.rb +188 -0
- data/lib/doing/pager.rb +1 -0
- data/lib/doing/plugins/export/dayone_export.rb +1 -1
- data/lib/doing/plugins/export/html_export.rb +1 -1
- data/lib/doing/plugins/export/json_export.rb +1 -1
- data/lib/doing/plugins/export/markdown_export.rb +1 -1
- data/lib/doing/plugins/export/template_export.rb +3 -1
- data/lib/doing/plugins/import/calendar_import.rb +1 -1
- data/lib/doing/plugins/import/doing_import.rb +1 -1
- data/lib/doing/plugins/import/timing_import.rb +1 -1
- data/lib/doing/prompt.rb +9 -3
- data/lib/doing/string/highlight.rb +95 -0
- data/lib/doing/string/query.rb +129 -0
- data/lib/doing/string/string.rb +12 -0
- data/lib/doing/string/tags.rb +164 -0
- data/lib/doing/string/transform.rb +168 -0
- data/lib/doing/string/truncate.rb +75 -0
- data/lib/doing/string/url.rb +82 -0
- data/lib/doing/template_string.rb +2 -24
- data/lib/doing/types.rb +9 -0
- data/lib/doing/util.rb +20 -16
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid.rb +91 -51
- data/lib/doing.rb +5 -6
- data/lib/examples/commands/wiki.rb +6 -7
- data/lib/examples/plugins/wiki_export/wiki_export.rb +1 -1
- data/lib/helpers/threaded_tests.rb +69 -79
- data/lib/helpers/threaded_tests_string.rb +50 -0
- data/scripts/deploy.rb +107 -0
- data/scripts/runtests.sh +4 -0
- metadata +65 -8
- data/lib/doing/string.rb +0 -765
- data/lib/doing/symbol.rb +0 -28
data/lib/completion/doing.fish
CHANGED
|
@@ -123,8 +123,9 @@ complete -f -c doing -n '__fish_doing_using_command show' -a '(__fish_doing_comp
|
|
|
123
123
|
complete -f -c doing -n '__fish_doing_using_command view' -a '(__fish_doing_complete_views)'
|
|
124
124
|
complete -f -c doing -n '__fish_doing_using_command template' -a '(__fish_doing_complete_templates)'
|
|
125
125
|
complete -f -c doing -s t -l type -x -n '__fish_doing_using_command import' -a '(__fish_doing_import_plugins)'
|
|
126
|
+
complete -f -c doing -n '__fish_doing_using_command help' -a '(__fish_doing_subcommands)'
|
|
126
127
|
|
|
127
|
-
complete -xc doing -n '__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from (doing help -c)' -a "(doing help -c)"
|
|
128
|
+
# complete -xc doing -n '__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from (doing help -c)' -a "(doing help -c)"
|
|
128
129
|
|
|
129
130
|
function __fish_doing_complete_args
|
|
130
131
|
for cmd in (doing commands_accepting -c $argv[1])
|
|
@@ -140,8 +141,8 @@ complete -xc doing -n '__fish_doing_needs_command' -a 'archive move' -d Move\ en
|
|
|
140
141
|
complete -xc doing -n '__fish_doing_needs_command' -a 'autotag' -d Autotag\ last\ entry\ or\ filtered\ entries
|
|
141
142
|
complete -xc doing -n '__fish_doing_needs_command' -a 'cancel' -d End\ last\ X\ entries\ with\ no\ time\ tracked
|
|
142
143
|
complete -xc doing -n '__fish_doing_needs_command' -a 'changes changelog' -d List\ recent\ changes\ in\ Doing
|
|
143
|
-
complete -xc doing -n '__fish_doing_needs_command' -a 'choose' -d Select\ a\ section\ to\ display\ from\ a\ menu
|
|
144
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
|
|
145
146
|
complete -xc doing -n '__fish_doing_needs_command' -a 'completion' -d Generate\ shell\ completion\ scripts
|
|
146
147
|
complete -xc doing -n '__fish_doing_needs_command' -a 'config' -d Edit\ the\ configuration\ file\ or\ output\ a\ value\ from\ it
|
|
147
148
|
complete -xc doing -n '__fish_doing_needs_command' -a 'done did' -d Add\ a\ completed\ item\ with\ @done\(date\)
|
|
@@ -159,6 +160,7 @@ complete -xc doing -n '__fish_doing_needs_command' -a 'on' -d List\ entries\ for
|
|
|
159
160
|
complete -xc doing -n '__fish_doing_needs_command' -a 'open' -d Open\ the\ \"doing\"\ file\ in\ an\ editor
|
|
160
161
|
complete -xc doing -n '__fish_doing_needs_command' -a 'plugins' -d List\ installed\ plugins
|
|
161
162
|
complete -xc doing -n '__fish_doing_needs_command' -a 'recent' -d List\ recent\ entries
|
|
163
|
+
complete -xc doing -n '__fish_doing_needs_command' -a 'redo' -d Redo\ an\ undo\ command
|
|
162
164
|
complete -xc doing -n '__fish_doing_needs_command' -a 'reset begin' -d Reset\ the\ start\ time\ of\ an\ entry
|
|
163
165
|
complete -xc doing -n '__fish_doing_needs_command' -a 'rotate' -d Move\ entries\ to\ archive\ file
|
|
164
166
|
complete -xc doing -n '__fish_doing_needs_command' -a 'sections' -d List\ sections
|
|
@@ -176,29 +178,32 @@ complete -xc doing -n '__fish_doing_needs_command' -a 'view' -d Display\ a\ user
|
|
|
176
178
|
complete -xc doing -n '__fish_doing_needs_command' -a 'views' -d List\ available\ custom\ views
|
|
177
179
|
complete -xc doing -n '__fish_doing_needs_command' -a 'wiki' -d Output\ a\ tag\ wiki
|
|
178
180
|
complete -xc doing -n '__fish_doing_needs_command' -a 'yesterday' -d List\ entries\ from\ yesterday
|
|
181
|
+
complete -c doing -l noauto -s X -f -n '__fish_doing_using_command again resume' -d Exclude\ auto\ tags\ and\ default\ tags
|
|
179
182
|
complete -c doing -l ask -f -n '__fish_doing_using_command again resume' -d Prompt\ for\ note\ via\ multi-line\ input
|
|
180
|
-
complete -c doing -l started -f -r -n '__fish_doing_using_command again resume' -d Backdate\ start\ date\
|
|
183
|
+
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\]
|
|
181
184
|
complete -c doing -l bool -f -r -n '__fish_doing_using_command again resume' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
182
185
|
complete -c doing -l case -f -r -n '__fish_doing_using_command again resume' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
183
|
-
complete -c doing -l editor -s e -f -n '__fish_doing_using_command again resume' -d Edit\
|
|
186
|
+
complete -c doing -l editor -s e -f -n '__fish_doing_using_command again resume' -d Edit\ entry\ with\ vim
|
|
184
187
|
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
|
|
185
188
|
complete -c doing -l in -f -r -n '__fish_doing_using_command again resume' -d Add\ new\ entry\ to\ section
|
|
186
|
-
complete -c doing -l note -s n -f -r -n '__fish_doing_using_command again resume' -d
|
|
187
|
-
complete -c doing -l not -f -n '__fish_doing_using_command again resume' -d
|
|
189
|
+
complete -c doing -l note -s n -f -r -n '__fish_doing_using_command again resume' -d Include\ a\ note
|
|
190
|
+
complete -c doing -l not -f -n '__fish_doing_using_command again resume' -d Repeat\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
188
191
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command again resume' -d Get\ last\ entry\ from\ a\ specific\ section
|
|
189
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command again resume' -d
|
|
190
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command again resume' -d
|
|
192
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command again resume' -d Filter\ entries\ using\ a\ search\ query
|
|
193
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command again resume' -d Filter\ entries\ by\ tag
|
|
191
194
|
complete -c doing -l val -f -r -n '__fish_doing_using_command again resume' -d Perform\ a\ tag\ value\ query
|
|
192
195
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command again resume' -d Force\ exact\ search\ string\ matching
|
|
196
|
+
complete -c doing -l after -f -r -n '__fish_doing_using_command archive move' -d Archive\ entries\ newer\ than\ date
|
|
193
197
|
complete -c doing -l before -f -r -n '__fish_doing_using_command archive move' -d Archive\ entries\ older\ than\ date
|
|
194
|
-
complete -c doing -l bool -f -r -n '__fish_doing_using_command archive move' -d
|
|
198
|
+
complete -c doing -l bool -f -r -n '__fish_doing_using_command archive move' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
195
199
|
complete -c doing -l case -f -r -n '__fish_doing_using_command archive move' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
200
|
+
complete -c doing -l from -f -r -n '__fish_doing_using_command archive move' -d Date\ range
|
|
196
201
|
complete -c doing -l keep -s k -f -r -n '__fish_doing_using_command archive move' -d How\ many\ items\ to\ keep
|
|
197
202
|
complete -c doing -l label -f -n '__fish_doing_using_command archive move' -d Label\ moved\ items\ with\ @from\(SECTION_NAME\)
|
|
198
|
-
complete -c doing -l not -f -n '__fish_doing_using_command archive move' -d
|
|
199
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command archive move' -d
|
|
203
|
+
complete -c doing -l not -f -n '__fish_doing_using_command archive move' -d Archive\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
204
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command archive move' -d Filter\ entries\ using\ a\ search\ query
|
|
200
205
|
complete -c doing -l to -s t -f -r -n '__fish_doing_using_command archive move' -d Move\ entries\ to
|
|
201
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command archive move' -d
|
|
206
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command archive move' -d Filter\ entries\ by\ tag
|
|
202
207
|
complete -c doing -l val -f -r -n '__fish_doing_using_command archive move' -d Perform\ a\ tag\ value\ query
|
|
203
208
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command archive move' -d Force\ exact\ search\ string\ matching
|
|
204
209
|
complete -c doing -l bool -f -r -n '__fish_doing_using_command autotag' -d Boolean
|
|
@@ -210,27 +215,30 @@ complete -c doing -l search -f -r -n '__fish_doing_using_command autotag' -d Au
|
|
|
210
215
|
complete -c doing -l tag -f -r -n '__fish_doing_using_command autotag' -d Autotag\ the\ last\ X\ entries\ containing\ TAG
|
|
211
216
|
complete -c doing -l unfinished -s u -f -n '__fish_doing_using_command autotag' -d Autotag\ last\ entry
|
|
212
217
|
complete -c doing -l archive -s a -f -n '__fish_doing_using_command cancel' -d Archive\ entries
|
|
213
|
-
complete -c doing -l bool -f -r -n '__fish_doing_using_command cancel' -d Boolean
|
|
218
|
+
complete -c doing -l bool -f -r -n '__fish_doing_using_command cancel' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
214
219
|
complete -c doing -l case -f -r -n '__fish_doing_using_command cancel' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
215
220
|
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
|
|
216
|
-
complete -c doing -l not -f -n '__fish_doing_using_command cancel' -d
|
|
221
|
+
complete -c doing -l not -f -n '__fish_doing_using_command cancel' -d Cancel\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
217
222
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command cancel' -d Section
|
|
218
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command cancel' -d
|
|
219
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command cancel' -d
|
|
223
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command cancel' -d Filter\ entries\ using\ a\ search\ query
|
|
224
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command cancel' -d Filter\ entries\ by\ tag
|
|
220
225
|
complete -c doing -l unfinished -s u -f -n '__fish_doing_using_command cancel' -d Cancel\ last\ entry
|
|
221
226
|
complete -c doing -l val -f -r -n '__fish_doing_using_command cancel' -d Perform\ a\ tag\ value\ query
|
|
222
227
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command cancel' -d Force\ exact\ search\ string\ matching
|
|
228
|
+
complete -c doing -l changes -s C -f -n '__fish_doing_using_command changes changelog' -d Only\ output\ changes
|
|
223
229
|
complete -c doing -l all -s a -f -n '__fish_doing_using_command changes changelog' -d Display\ all\ versions
|
|
224
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
|
|
225
232
|
complete -c doing -l search -s s -f -r -n '__fish_doing_using_command changes changelog' -d Show\ changelogs\ matching\ search\ terms
|
|
226
233
|
complete -c doing -l file -s f -f -r -n '__fish_doing_using_command completion' -d File\ to\ write\ output\ to
|
|
227
234
|
complete -c doing -l type -s t -f -r -n '__fish_doing_using_command completion' -d Shell\ to\ generate\ for
|
|
228
235
|
complete -c doing -l dump -s d -f -n '__fish_doing_using_command config' -d DEPRECATED
|
|
229
236
|
complete -c doing -l update -s u -f -n '__fish_doing_using_command config' -d DEPRECATED
|
|
237
|
+
complete -c doing -l noauto -s X -f -n '__fish_doing_using_command done did' -d Exclude\ auto\ tags\ and\ default\ tags
|
|
230
238
|
complete -c doing -l archive -s a -f -n '__fish_doing_using_command done did' -d Immediately\ archive\ the\ entry
|
|
231
239
|
complete -c doing -l ask -f -n '__fish_doing_using_command done did' -d Prompt\ for\ note\ via\ multi-line\ input
|
|
232
240
|
complete -c doing -l finished -f -r -n '__fish_doing_using_command done did' -d Set\ finish\ date\ to\ specific\ date/time
|
|
233
|
-
complete -c doing -l started -f -r -n '__fish_doing_using_command done did' -d Backdate\ start\ date\
|
|
241
|
+
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\]
|
|
234
242
|
complete -c doing -l date -f -n '__fish_doing_using_command done did' -d Include\ date
|
|
235
243
|
complete -c doing -l editor -s e -f -n '__fish_doing_using_command done did' -d Edit\ entry\ with\ vim
|
|
236
244
|
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\"\`
|
|
@@ -243,17 +251,18 @@ complete -c doing -l archive -s a -f -n '__fish_doing_using_command finish' -d
|
|
|
243
251
|
complete -c doing -l finished -f -r -n '__fish_doing_using_command finish' -d Set\ finish\ date\ to\ specific\ date/time
|
|
244
252
|
complete -c doing -l auto -f -n '__fish_doing_using_command finish' -d Auto-generate\ finish\ dates\ from\ next\ entry\'s\ start\ time
|
|
245
253
|
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\]
|
|
246
|
-
complete -c doing -l bool -f -r -n '__fish_doing_using_command finish' -d Boolean
|
|
254
|
+
complete -c doing -l bool -f -r -n '__fish_doing_using_command finish' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
247
255
|
complete -c doing -l case -f -r -n '__fish_doing_using_command finish' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
248
256
|
complete -c doing -l date -f -n '__fish_doing_using_command finish' -d Include\ date
|
|
249
257
|
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
|
|
250
258
|
complete -c doing -l not -f -n '__fish_doing_using_command finish' -d Finish\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
251
|
-
complete -c doing -l remove -s r -f -n '__fish_doing_using_command finish' -d Remove\ done\ tag
|
|
259
|
+
complete -c doing -l remove -s r -f -n '__fish_doing_using_command finish' -d Remove\ @done\ tag
|
|
252
260
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command finish' -d Section
|
|
253
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command finish' -d
|
|
261
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command finish' -d Filter\ entries\ using\ a\ search\ query
|
|
254
262
|
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\]
|
|
255
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command finish' -d
|
|
263
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command finish' -d Filter\ entries\ by\ tag
|
|
256
264
|
complete -c doing -l unfinished -s u -f -n '__fish_doing_using_command finish' -d Finish\ last\ entry
|
|
265
|
+
complete -c doing -l update -f -n '__fish_doing_using_command finish' -d Overwrite\ existing\ @done\ tag\ with\ new\ date
|
|
257
266
|
complete -c doing -l val -f -r -n '__fish_doing_using_command finish' -d Perform\ a\ tag\ value\ query
|
|
258
267
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command finish' -d Force\ exact\ search\ string\ matching
|
|
259
268
|
complete -c doing -l after -f -r -n '__fish_doing_using_command grep search' -d Search\ entries\ newer\ than\ date
|
|
@@ -264,7 +273,7 @@ complete -c doing -l config_template -f -r -n '__fish_doing_using_command grep
|
|
|
264
273
|
complete -c doing -l delete -s d -f -n '__fish_doing_using_command grep search' -d Delete\ matching\ entries
|
|
265
274
|
complete -c doing -l duration -f -n '__fish_doing_using_command grep search' -d Show\ elapsed\ time\ on\ entries\ without\ @done\ tag
|
|
266
275
|
complete -c doing -l editor -s e -f -n '__fish_doing_using_command grep search' -d Edit\ matching\ entries\ with\ vim
|
|
267
|
-
complete -c doing -l from -f -r -n '__fish_doing_using_command grep search' -d Date\ range
|
|
276
|
+
complete -c doing -l from -f -r -n '__fish_doing_using_command grep search' -d Date\ range
|
|
268
277
|
complete -c doing -l hilite -s h -f -n '__fish_doing_using_command grep search' -d Highlight\ search\ matches\ in\ output
|
|
269
278
|
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
|
|
270
279
|
complete -c doing -l not -f -n '__fish_doing_using_command grep search' -d Show\ items\ that\ \*don\'t\*\ match\ search\ string
|
|
@@ -282,27 +291,27 @@ complete -c doing -l after -f -r -n '__fish_doing_using_command import' -d Impo
|
|
|
282
291
|
complete -c doing -l autotag -f -n '__fish_doing_using_command import' -d Autotag\ entries
|
|
283
292
|
complete -c doing -l before -f -r -n '__fish_doing_using_command import' -d Import\ entries\ older\ than\ date
|
|
284
293
|
complete -c doing -l case -f -r -n '__fish_doing_using_command import' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
285
|
-
complete -c doing -l from
|
|
294
|
+
complete -c doing -l from -f -r -n '__fish_doing_using_command import' -d Date\ range
|
|
286
295
|
complete -c doing -l not -f -n '__fish_doing_using_command import' -d Import\ items\ that\ \*don\'t\*\ match\ search/tag/date\ filters
|
|
287
296
|
complete -c doing -l only_timed -f -n '__fish_doing_using_command import' -d Only\ import\ items\ with\ recorded\ time\ intervals
|
|
288
297
|
complete -c doing -l overlap -f -n '__fish_doing_using_command import' -d Allow\ entries\ that\ overlap\ existing\ times
|
|
289
298
|
complete -c doing -l prefix -f -r -n '__fish_doing_using_command import' -d Prefix\ entries\ with
|
|
290
299
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command import' -d Target\ section
|
|
291
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command import' -d
|
|
300
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command import' -d Filter\ entries\ using\ a\ search\ query
|
|
292
301
|
complete -c doing -l tag -s t -f -r -n '__fish_doing_using_command import' -d Tag\ all\ imported\ entries
|
|
293
302
|
complete -c doing -l type -f -r -n '__fish_doing_using_command import' -d Import\ type
|
|
294
303
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command import' -d Force\ exact\ search\ string\ matching
|
|
295
|
-
complete -c doing -l bool -f -r -n '__fish_doing_using_command last' -d
|
|
304
|
+
complete -c doing -l bool -f -r -n '__fish_doing_using_command last' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
296
305
|
complete -c doing -l case -f -r -n '__fish_doing_using_command last' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
297
306
|
complete -c doing -l config_template -f -r -n '__fish_doing_using_command last' -d Output\ using\ a\ template\ from\ configuration
|
|
298
307
|
complete -c doing -l delete -s d -f -n '__fish_doing_using_command last' -d Delete\ the\ last\ entry
|
|
299
308
|
complete -c doing -l duration -f -n '__fish_doing_using_command last' -d Show\ elapsed\ time\ if\ entry\ is\ not\ tagged\ @done
|
|
300
309
|
complete -c doing -l editor -s e -f -n '__fish_doing_using_command last' -d Edit\ entry\ with\ vim
|
|
301
310
|
complete -c doing -l hilite -s h -f -n '__fish_doing_using_command last' -d Highlight\ search\ matches\ in\ output
|
|
302
|
-
complete -c doing -l not -f -n '__fish_doing_using_command last' -d Show\ items\ that\ \*don\'t\*\ match\ search
|
|
311
|
+
complete -c doing -l not -f -n '__fish_doing_using_command last' -d Show\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
303
312
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command last' -d Specify\ a\ section
|
|
304
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command last' -d
|
|
305
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command last' -d
|
|
313
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command last' -d Filter\ entries\ using\ a\ search\ query
|
|
314
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command last' -d Filter\ entries\ by\ tag
|
|
306
315
|
complete -c doing -l template -f -r -n '__fish_doing_using_command last' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
|
|
307
316
|
complete -c doing -l val -f -r -n '__fish_doing_using_command last' -d Perform\ a\ tag\ value\ query
|
|
308
317
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command last' -d Force\ exact\ search\ string\ matching
|
|
@@ -310,42 +319,45 @@ complete -c doing -l ask -f -n '__fish_doing_using_command later' -d Prompt\ f
|
|
|
310
319
|
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\]
|
|
311
320
|
complete -c doing -l editor -s e -f -n '__fish_doing_using_command later' -d Edit\ entry\ with\ vim
|
|
312
321
|
complete -c doing -l note -s n -f -r -n '__fish_doing_using_command later' -d Note
|
|
313
|
-
complete -c doing -l bool -f -r -n '__fish_doing_using_command mark flag' -d Boolean
|
|
322
|
+
complete -c doing -l bool -f -r -n '__fish_doing_using_command mark flag' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
314
323
|
complete -c doing -l count -s c -f -r -n '__fish_doing_using_command mark flag' -d How\ many\ recent\ entries\ to\ tag
|
|
315
324
|
complete -c doing -l case -f -r -n '__fish_doing_using_command mark flag' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
316
325
|
complete -c doing -l date -s d -f -n '__fish_doing_using_command mark flag' -d Include\ current\ date/time\ with\ tag
|
|
317
326
|
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
|
|
318
327
|
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
|
|
319
|
-
complete -c doing -l not -f -n '__fish_doing_using_command mark flag' -d Flag\ items\ that\ \*don\'t\*\ match\ search/tag
|
|
328
|
+
complete -c doing -l not -f -n '__fish_doing_using_command mark flag' -d Flag\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
320
329
|
complete -c doing -l remove -s r -f -n '__fish_doing_using_command mark flag' -d Remove\ flag
|
|
321
330
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command mark flag' -d Section
|
|
322
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command mark flag' -d
|
|
323
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command mark flag' -d
|
|
331
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command mark flag' -d Filter\ entries\ using\ a\ search\ query
|
|
332
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command mark flag' -d Filter\ entries\ by\ tag
|
|
324
333
|
complete -c doing -l unfinished -s u -f -n '__fish_doing_using_command mark flag' -d Flag\ last\ entry
|
|
325
334
|
complete -c doing -l val -f -r -n '__fish_doing_using_command mark flag' -d Perform\ a\ tag\ value\ query
|
|
326
335
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command mark flag' -d Force\ exact\ search\ string\ matching
|
|
336
|
+
complete -c doing -l noauto -s X -f -n '__fish_doing_using_command meanwhile' -d Exclude\ auto\ tags\ and\ default\ tags
|
|
327
337
|
complete -c doing -l archive -s a -f -n '__fish_doing_using_command meanwhile' -d Archive\ previous\ @meanwhile\ entry
|
|
328
338
|
complete -c doing -l ask -f -n '__fish_doing_using_command meanwhile' -d Prompt\ for\ note\ via\ multi-line\ input
|
|
329
339
|
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\]
|
|
330
340
|
complete -c doing -l editor -s e -f -n '__fish_doing_using_command meanwhile' -d Edit\ entry\ with\ vim
|
|
331
|
-
complete -c doing -l note -s n -f -r -n '__fish_doing_using_command meanwhile' -d
|
|
341
|
+
complete -c doing -l note -s n -f -r -n '__fish_doing_using_command meanwhile' -d Include\ a\ note
|
|
332
342
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command meanwhile' -d Section
|
|
333
343
|
complete -c doing -l ask -f -n '__fish_doing_using_command note' -d Prompt\ for\ note\ via\ multi-line\ input
|
|
334
|
-
complete -c doing -l bool -f -r -n '__fish_doing_using_command note' -d Boolean
|
|
344
|
+
complete -c doing -l bool -f -r -n '__fish_doing_using_command note' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
335
345
|
complete -c doing -l case -f -r -n '__fish_doing_using_command note' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
336
346
|
complete -c doing -l editor -s e -f -n '__fish_doing_using_command note' -d Edit\ entry\ with\ vim
|
|
337
347
|
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
|
|
338
|
-
complete -c doing -l not -f -n '__fish_doing_using_command note' -d
|
|
348
|
+
complete -c doing -l not -f -n '__fish_doing_using_command note' -d Note\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
339
349
|
complete -c doing -l remove -s r -f -n '__fish_doing_using_command note' -d Replace/Remove\ last\ entry\'s\ note
|
|
340
350
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command note' -d Section
|
|
341
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command note' -d
|
|
342
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command note' -d
|
|
351
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command note' -d Filter\ entries\ using\ a\ search\ query
|
|
352
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command note' -d Filter\ entries\ by\ tag
|
|
343
353
|
complete -c doing -l val -f -r -n '__fish_doing_using_command note' -d Perform\ a\ tag\ value\ query
|
|
344
354
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command note' -d Force\ exact\ search\ string\ matching
|
|
355
|
+
complete -c doing -l noauto -s X -f -n '__fish_doing_using_command now next' -d Exclude\ auto\ tags\ and\ default\ tags
|
|
345
356
|
complete -c doing -l ask -f -n '__fish_doing_using_command now next' -d Prompt\ for\ note\ via\ multi-line\ input
|
|
346
|
-
complete -c doing -l started -f -r -n '__fish_doing_using_command now next' -d Backdate\ start\
|
|
357
|
+
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\]
|
|
347
358
|
complete -c doing -l editor -s e -f -n '__fish_doing_using_command now next' -d Edit\ entry\ with\ vim
|
|
348
359
|
complete -c doing -l finish_last -s f -f -n '__fish_doing_using_command now next' -d Timed\ entry
|
|
360
|
+
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
|
|
349
361
|
complete -c doing -l note -s n -f -r -n '__fish_doing_using_command now next' -d Include\ a\ note
|
|
350
362
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command now next' -d Section
|
|
351
363
|
complete -c doing -l config_template -f -r -n '__fish_doing_using_command on' -d Output\ using\ a\ template\ from\ configuration
|
|
@@ -369,31 +381,33 @@ complete -c doing -l times -s t -f -n '__fish_doing_using_command recent' -d Sh
|
|
|
369
381
|
complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command recent' -d Sort\ tags\ by
|
|
370
382
|
complete -c doing -l template -f -r -n '__fish_doing_using_command recent' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
|
|
371
383
|
complete -c doing -l totals -f -n '__fish_doing_using_command recent' -d Show\ intervals\ with\ totals\ at\ the\ end\ of\ output
|
|
372
|
-
complete -c doing -l
|
|
384
|
+
complete -c doing -l file -s f -f -r -n '__fish_doing_using_command redo' -d Specify\ alternate\ doing\ file
|
|
385
|
+
complete -c doing -l interactive -s i -f -n '__fish_doing_using_command redo' -d Select\ from\ an\ interactive\ menu
|
|
386
|
+
complete -c doing -l bool -f -r -n '__fish_doing_using_command reset begin' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
373
387
|
complete -c doing -l case -f -r -n '__fish_doing_using_command reset begin' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
374
388
|
complete -c doing -l interactive -s i -f -n '__fish_doing_using_command reset begin' -d Select\ from\ a\ menu\ of\ matching\ entries
|
|
375
389
|
complete -c doing -l not -f -n '__fish_doing_using_command reset begin' -d Reset\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
376
390
|
complete -c doing -l resume -s r -f -n '__fish_doing_using_command reset begin' -d Resume\ entry
|
|
377
391
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command reset begin' -d Limit\ search\ to\ section
|
|
378
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command reset begin' -d
|
|
379
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command reset begin' -d
|
|
392
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command reset begin' -d Filter\ entries\ using\ a\ search\ query
|
|
393
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command reset begin' -d Filter\ entries\ by\ tag
|
|
380
394
|
complete -c doing -l val -f -r -n '__fish_doing_using_command reset begin' -d Perform\ a\ tag\ value\ query
|
|
381
395
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command reset begin' -d Force\ exact\ search\ string\ matching
|
|
382
396
|
complete -c doing -l before -f -r -n '__fish_doing_using_command rotate' -d Rotate\ entries\ older\ than\ date
|
|
383
|
-
complete -c doing -l bool -f -r -n '__fish_doing_using_command rotate' -d
|
|
397
|
+
complete -c doing -l bool -f -r -n '__fish_doing_using_command rotate' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
384
398
|
complete -c doing -l case -f -r -n '__fish_doing_using_command rotate' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
385
399
|
complete -c doing -l keep -s k -f -r -n '__fish_doing_using_command rotate' -d How\ many\ items\ to\ keep\ in\ each\ section
|
|
386
|
-
complete -c doing -l not -f -n '__fish_doing_using_command rotate' -d Rotate\ items\ that\ \*don\'t\*\ match\ search
|
|
400
|
+
complete -c doing -l not -f -n '__fish_doing_using_command rotate' -d Rotate\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
387
401
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command rotate' -d Section\ to\ rotate
|
|
388
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command rotate' -d
|
|
389
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command rotate' -d
|
|
402
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command rotate' -d Filter\ entries\ using\ a\ search\ query
|
|
403
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command rotate' -d Filter\ entries\ by\ tag
|
|
390
404
|
complete -c doing -l val -f -r -n '__fish_doing_using_command rotate' -d Perform\ a\ tag\ value\ query
|
|
391
405
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command rotate' -d Force\ exact\ search\ string\ matching
|
|
392
406
|
complete -c doing -l column -s c -f -n '__fish_doing_using_command sections' -d List\ in\ single\ column
|
|
393
407
|
complete -c doing -l archive -s a -f -n '__fish_doing_using_command select' -d Archive\ selected\ items
|
|
394
|
-
complete -c doing -l after -f -r -n '__fish_doing_using_command select' -d Select\
|
|
408
|
+
complete -c doing -l after -f -r -n '__fish_doing_using_command select' -d Select\ entries\ newer\ than\ date
|
|
395
409
|
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
|
|
396
|
-
complete -c doing -l before -f -r -n '__fish_doing_using_command select' -d Select\
|
|
410
|
+
complete -c doing -l before -f -r -n '__fish_doing_using_command select' -d Select\ entries\ older\ than\ date
|
|
397
411
|
complete -c doing -l cancel -s c -f -n '__fish_doing_using_command select' -d Cancel\ selected\ items
|
|
398
412
|
complete -c doing -l case -f -r -n '__fish_doing_using_command select' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
399
413
|
complete -c doing -l delete -s d -f -n '__fish_doing_using_command select' -d Delete\ selected\ items
|
|
@@ -401,7 +415,7 @@ complete -c doing -l editor -s e -f -n '__fish_doing_using_command select' -d E
|
|
|
401
415
|
complete -c doing -l finish -s f -f -n '__fish_doing_using_command select' -d Add\ @done\ with\ current\ time\ to\ selected\ item\(s\)
|
|
402
416
|
complete -c doing -l flag -f -n '__fish_doing_using_command select' -d Add\ flag\ to\ selected\ item\(s\)
|
|
403
417
|
complete -c doing -l force -f -n '__fish_doing_using_command select' -d Perform\ action\ without\ confirmation
|
|
404
|
-
complete -c doing -l from -f -r -n '__fish_doing_using_command select' -d Date\ range
|
|
418
|
+
complete -c doing -l from -f -r -n '__fish_doing_using_command select' -d Date\ range
|
|
405
419
|
complete -c doing -l move -s m -f -r -n '__fish_doing_using_command select' -d Move\ selected\ items\ to\ section
|
|
406
420
|
complete -c doing -l menu -f -n '__fish_doing_using_command select' -d Use\ --no-menu\ to\ skip\ the\ interactive\ menu
|
|
407
421
|
complete -c doing -l not -f -n '__fish_doing_using_command select' -d Select\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
@@ -410,29 +424,29 @@ complete -c doing -l query -s q -f -r -n '__fish_doing_using_command select' -d
|
|
|
410
424
|
complete -c doing -l remove -s r -f -n '__fish_doing_using_command select' -d Reverse\ -c
|
|
411
425
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command select' -d Select\ from\ a\ specific\ section
|
|
412
426
|
complete -c doing -l save_to -f -r -n '__fish_doing_using_command select' -d Save\ selected\ entries\ to\ file\ using\ --output\ format
|
|
413
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command select' -d
|
|
427
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command select' -d Filter\ entries\ using\ a\ search\ query
|
|
414
428
|
complete -c doing -l tag -s t -f -r -n '__fish_doing_using_command select' -d Tag\ selected\ entries
|
|
415
429
|
complete -c doing -l val -f -r -n '__fish_doing_using_command select' -d Perform\ a\ tag\ value\ query
|
|
416
430
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command select' -d Force\ exact\ search\ string\ matching
|
|
417
431
|
complete -c doing -l age -s a -f -r -n '__fish_doing_using_command show' -d Age
|
|
418
432
|
complete -c doing -l after -f -r -n '__fish_doing_using_command show' -d Show\ entries\ newer\ than\ date
|
|
419
|
-
complete -c doing -l bool -s b -f -r -n '__fish_doing_using_command show' -d Tag\ boolean
|
|
420
433
|
complete -c doing -l before -f -r -n '__fish_doing_using_command show' -d Show\ entries\ older\ than\ date
|
|
434
|
+
complete -c doing -l bool -f -r -n '__fish_doing_using_command show' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
421
435
|
complete -c doing -l count -s c -f -r -n '__fish_doing_using_command show' -d Max\ count\ to\ show
|
|
422
436
|
complete -c doing -l case -f -r -n '__fish_doing_using_command show' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
423
437
|
complete -c doing -l config_template -f -r -n '__fish_doing_using_command show' -d Output\ using\ a\ template\ from\ configuration
|
|
424
438
|
complete -c doing -l duration -f -n '__fish_doing_using_command show' -d Show\ elapsed\ time\ on\ entries\ without\ @done\ tag
|
|
425
|
-
complete -c doing -l from -f -r -n '__fish_doing_using_command show' -d Date\ range
|
|
439
|
+
complete -c doing -l from -f -r -n '__fish_doing_using_command show' -d Date\ range
|
|
426
440
|
complete -c doing -l hilite -s h -f -n '__fish_doing_using_command show' -d Highlight\ search\ matches\ in\ output
|
|
427
441
|
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
|
|
428
442
|
complete -c doing -l menu -s m -f -n '__fish_doing_using_command show' -d Select\ section\ or\ tag\ to\ display\ from\ a\ menu
|
|
429
|
-
complete -c doing -l not -f -n '__fish_doing_using_command show' -d Show\ items\ that\ \*don\'t\*\ match\ search/tag
|
|
443
|
+
complete -c doing -l not -f -n '__fish_doing_using_command show' -d Show\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
430
444
|
complete -c doing -l output -s o -f -r -n '__fish_doing_using_command show' -d Output\ to\ export\ format
|
|
431
445
|
complete -c doing -l only_timed -f -n '__fish_doing_using_command show' -d Only\ show\ items\ with\ recorded\ time\ intervals
|
|
432
446
|
complete -c doing -l sort -s s -f -r -n '__fish_doing_using_command show' -d Sort\ order
|
|
433
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command show' -d
|
|
447
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command show' -d Filter\ entries\ using\ a\ search\ query
|
|
434
448
|
complete -c doing -l times -s t -f -n '__fish_doing_using_command show' -d Show\ time\ intervals\ on\ @done\ tasks
|
|
435
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command show' -d
|
|
449
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command show' -d Filter\ entries\ by\ tag
|
|
436
450
|
complete -c doing -l tag_order -f -r -n '__fish_doing_using_command show' -d Tag\ sort\ direction
|
|
437
451
|
complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command show' -d Sort\ tags\ by
|
|
438
452
|
complete -c doing -l template -f -r -n '__fish_doing_using_command show' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
|
|
@@ -448,7 +462,7 @@ complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command since' -d So
|
|
|
448
462
|
complete -c doing -l template -f -r -n '__fish_doing_using_command since' -d Override\ output\ format\ with\ a\ template\ string\ containing\ \%placeholders
|
|
449
463
|
complete -c doing -l totals -f -n '__fish_doing_using_command since' -d Show\ time\ totals\ at\ the\ end\ of\ output
|
|
450
464
|
complete -c doing -l autotag -s a -f -n '__fish_doing_using_command tag' -d Autotag\ entries\ based\ on\ autotag\ configuration\ in\ \~/
|
|
451
|
-
complete -c doing -l bool -f -r -n '__fish_doing_using_command tag' -d Boolean
|
|
465
|
+
complete -c doing -l bool -f -r -n '__fish_doing_using_command tag' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
452
466
|
complete -c doing -l count -s c -f -r -n '__fish_doing_using_command tag' -d How\ many\ recent\ entries\ to\ tag
|
|
453
467
|
complete -c doing -l case -f -r -n '__fish_doing_using_command tag' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
454
468
|
complete -c doing -l date -s d -f -n '__fish_doing_using_command tag' -d Include\ current\ date/time\ with\ tag
|
|
@@ -459,8 +473,8 @@ complete -c doing -l remove -s r -f -n '__fish_doing_using_command tag' -d Remo
|
|
|
459
473
|
complete -c doing -l regex -f -n '__fish_doing_using_command tag' -d Interpret\ tag\ string\ as\ regular\ expression
|
|
460
474
|
complete -c doing -l rename -f -r -n '__fish_doing_using_command tag' -d Replace\ existing\ tag\ with\ tag\ argument
|
|
461
475
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command tag' -d Section
|
|
462
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command tag' -d
|
|
463
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command tag' -d
|
|
476
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command tag' -d Filter\ entries\ using\ a\ search\ query
|
|
477
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command tag' -d Filter\ entries\ by\ tag
|
|
464
478
|
complete -c doing -l unfinished -s u -f -n '__fish_doing_using_command tag' -d Tag\ last\ entry
|
|
465
479
|
complete -c doing -l value -s v -f -r -n '__fish_doing_using_command tag' -d Include\ a\ value
|
|
466
480
|
complete -c doing -l val -f -r -n '__fish_doing_using_command tag' -d Perform\ a\ tag\ value\ query
|
|
@@ -471,12 +485,12 @@ complete -c doing -l counts -s c -f -n '__fish_doing_using_command tags' -d Sho
|
|
|
471
485
|
complete -c doing -l case -f -r -n '__fish_doing_using_command tags' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
472
486
|
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
|
|
473
487
|
complete -c doing -l line -s l -f -n '__fish_doing_using_command tags' -d Output\ in\ a\ single\ line\ with\ @\ symbols
|
|
474
|
-
complete -c doing -l not -f -n '__fish_doing_using_command tags' -d
|
|
488
|
+
complete -c doing -l not -f -n '__fish_doing_using_command tags' -d Show\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
475
489
|
complete -c doing -l order -s o -f -r -n '__fish_doing_using_command tags' -d Sort\ order
|
|
476
490
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command tags' -d Section
|
|
477
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command tags' -d
|
|
491
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command tags' -d Filter\ entries\ using\ a\ search\ query
|
|
478
492
|
complete -c doing -l sort -f -r -n '__fish_doing_using_command tags' -d Sort\ by\ name\ or\ count
|
|
479
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command tags' -d
|
|
493
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command tags' -d Filter\ entries\ by\ tag
|
|
480
494
|
complete -c doing -l val -f -r -n '__fish_doing_using_command tags' -d Perform\ a\ tag\ value\ query
|
|
481
495
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command tags' -d Force\ exact\ search\ string\ matching
|
|
482
496
|
complete -c doing -l column -s c -f -n '__fish_doing_using_command template' -d List\ in\ single\ column\ for\ completion
|
|
@@ -498,24 +512,24 @@ complete -c doing -l file -s f -f -r -n '__fish_doing_using_command undo' -d Spe
|
|
|
498
512
|
complete -c doing -l interactive -s i -f -n '__fish_doing_using_command undo' -d Select\ from\ recent\ backups
|
|
499
513
|
complete -c doing -l prune -s p -f -r -n '__fish_doing_using_command undo' -d Remove\ old\ backups
|
|
500
514
|
complete -c doing -l redo -s r -f -n '__fish_doing_using_command undo' -d Redo\ last\ undo
|
|
501
|
-
complete -c doing -l after -f -r -n '__fish_doing_using_command view' -d
|
|
515
|
+
complete -c doing -l after -f -r -n '__fish_doing_using_command view' -d Show\ entries\ newer\ than\ date
|
|
502
516
|
complete -c doing -l age -f -r -n '__fish_doing_using_command view' -d Age
|
|
503
|
-
complete -c doing -l
|
|
504
|
-
complete -c doing -l
|
|
517
|
+
complete -c doing -l before -f -r -n '__fish_doing_using_command view' -d Show\ entries\ older\ than\ date
|
|
518
|
+
complete -c doing -l bool -f -r -n '__fish_doing_using_command view' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
505
519
|
complete -c doing -l count -s c -f -r -n '__fish_doing_using_command view' -d Count\ to\ display
|
|
506
520
|
complete -c doing -l case -f -r -n '__fish_doing_using_command view' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
|
507
521
|
complete -c doing -l color -f -n '__fish_doing_using_command view' -d Include\ colors\ in\ output
|
|
508
522
|
complete -c doing -l duration -f -n '__fish_doing_using_command view' -d Show\ elapsed\ time\ on\ entries\ without\ @done\ tag
|
|
509
|
-
complete -c doing -l from -f -r -n '__fish_doing_using_command view' -d Date\ range
|
|
523
|
+
complete -c doing -l from -f -r -n '__fish_doing_using_command view' -d Date\ range
|
|
510
524
|
complete -c doing -l hilite -s h -f -n '__fish_doing_using_command view' -d Highlight\ search\ matches\ in\ output
|
|
511
525
|
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
|
|
512
|
-
complete -c doing -l not -f -n '__fish_doing_using_command view' -d Show\ items\ that\ \*don\'t\*\ match\ search\
|
|
526
|
+
complete -c doing -l not -f -n '__fish_doing_using_command view' -d Show\ items\ that\ \*don\'t\*\ match\ search/tag\ filters
|
|
513
527
|
complete -c doing -l output -s o -f -r -n '__fish_doing_using_command view' -d Output\ to\ export\ format
|
|
514
528
|
complete -c doing -l only_timed -f -n '__fish_doing_using_command view' -d Only\ show\ items\ with\ recorded\ time\ intervals
|
|
515
529
|
complete -c doing -l section -s s -f -r -n '__fish_doing_using_command view' -d Section
|
|
516
|
-
complete -c doing -l search -f -r -n '__fish_doing_using_command view' -d
|
|
530
|
+
complete -c doing -l search -f -r -n '__fish_doing_using_command view' -d Filter\ entries\ using\ a\ search\ query
|
|
517
531
|
complete -c doing -l times -s t -f -n '__fish_doing_using_command view' -d Show\ time\ intervals\ on\ @done\ tasks
|
|
518
|
-
complete -c doing -l tag -f -r -n '__fish_doing_using_command view' -d
|
|
532
|
+
complete -c doing -l tag -f -r -n '__fish_doing_using_command view' -d Filter\ entries\ by\ tag
|
|
519
533
|
complete -c doing -l tag_order -f -r -n '__fish_doing_using_command view' -d Tag\ sort\ direction
|
|
520
534
|
complete -c doing -l tag_sort -f -r -n '__fish_doing_using_command view' -d Sort\ tags\ by
|
|
521
535
|
complete -c doing -l totals -f -n '__fish_doing_using_command view' -d Show\ intervals\ with\ totals\ at\ the\ end\ of\ output
|
|
@@ -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 [
|
|
34
|
+
## @return [Array] Array of highlighted @tags
|
|
39
35
|
##
|
|
40
36
|
def highlight_tags(color = 'cyan')
|
|
41
|
-
|
|
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.
|
|
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
|
|
57
|
-
|
|
58
|
-
|
|
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
|
|
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("")
|
|
96
|
+
end
|
|
97
|
+
|
|
83
98
|
private
|
|
84
99
|
|
|
85
100
|
def all_searches?(text, searches)
|
|
@@ -4,8 +4,10 @@ module Doing
|
|
|
4
4
|
# A collection of Changes
|
|
5
5
|
class Changes
|
|
6
6
|
attr_reader :changes
|
|
7
|
+
attr_writer :changes_only
|
|
7
8
|
|
|
8
|
-
def initialize(lookup: nil, search: nil)
|
|
9
|
+
def initialize(lookup: nil, search: nil, changes_only: false)
|
|
10
|
+
@changes_only = changes_only
|
|
9
11
|
changelog = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', 'CHANGELOG.md'))
|
|
10
12
|
raise 'Error locating changelog' unless File.exist?(changelog)
|
|
11
13
|
|
|
@@ -14,17 +16,25 @@ module Doing
|
|
|
14
16
|
end
|
|
15
17
|
|
|
16
18
|
def latest
|
|
17
|
-
@
|
|
19
|
+
if @changes_only
|
|
20
|
+
@changes[0].changes_only.force_encoding('utf-8')
|
|
21
|
+
else
|
|
22
|
+
@changes[0].to_s.force_encoding('utf-8')
|
|
23
|
+
end
|
|
18
24
|
end
|
|
19
25
|
|
|
20
26
|
def to_s
|
|
21
|
-
@
|
|
27
|
+
if @changes_only
|
|
28
|
+
@changes.map(&:changes_only).join().force_encoding('utf-8')
|
|
29
|
+
else
|
|
30
|
+
@changes.map(&:to_s).join("\n\n").force_encoding('utf-8')
|
|
31
|
+
end
|
|
22
32
|
end
|
|
23
33
|
|
|
24
34
|
private
|
|
25
35
|
|
|
26
36
|
def parse_changes(lookup, search)
|
|
27
|
-
change_rx = /(?<=\n|\A)### (\d+\.\d+\.\d+(?:\w
|
|
37
|
+
change_rx = /(?<=\n|\A)### (\d+\.\d+\.\d+(?:\w*))(.*?)(?=\n### |\Z)/m
|
|
28
38
|
@changes = @content.scan(change_rx).each_with_object([]) do |m, a|
|
|
29
39
|
next if m[0].nil? || m[1].nil?
|
|
30
40
|
|
|
File without changes
|