1
0
Fork 0
mirror of https://github.com/topydo/topydo.git synced 2024-05-20 05:48:35 +00:00
Commit graph

1439 commits

Author SHA1 Message Date
Bram Schoenmakers 5d6be98e02 Add topydo invocation and column UI screenshot in the welcome message
Now the screenshot is visible immediately when you visit the website.
2017-07-19 14:34:08 +02:00
Bram Schoenmakers 7640e05966 Update documentation: progress colors and add cross-link 2017-07-19 14:28:21 +02:00
Bram Schoenmakers 136cd8be81 Show a grey progress color for completed items 2017-07-19 14:19:12 +02:00
Bram Schoenmakers 19fe7d3442 Always try to convert tag values to a (humanized) date
For other tags containing date values, try to print the relative
humanized date as well. If the tag does not contain a date in YYYY-MM-DD
value, it's normal value is printed.
2017-07-18 08:50:58 +02:00
Bram Schoenmakers a97a9b5398 Take hide tags into account in column mode
Fixes #186.
2017-07-16 18:26:36 +02:00
Bram Schoenmakers 7ca36b812a Merge branch 'completion' 2017-07-13 07:05:35 +02:00
Jacek Sowiński 6f77ce7e3e Add most basic readline shortcuts in commandline
ctrl-a: move cursor to the beginning
ctrl-e: move cursor to the end
ctrl-u: delete from the cursor back to the beginning
ctrl-k: delete from the cursor to the end
2017-07-13 07:01:35 +02:00
Bram Schoenmakers 9acb8f447b Remove URL as Github is unable to display a 2 MB HTML file 2017-07-12 09:42:16 +02:00
Bram Schoenmakers 3a39290322 Add documentation to the topydo repository. 2017-07-12 09:40:01 +02:00
Jacek Sowiński 1fbf62a399 Add completion box and full completion support
- completion box pops out for multiple candidates
- <Tab> and <Shift-Tab> will navigate through the list of candidates
- any other key than <Tab> and <Shift-Tab> will close the box
- completion box is glued to cursor and is trimmed to max 4 lines
- +projects, @contexts, dates and commands (with aliases) are supported
2017-07-10 22:28:16 +02:00
Jacek Sowiński cfd66d5fc5 Reorganize code for completers
1.Rename completers

topydo.ui.prompt.TopydoCompleter is now topydo.ui.prompt.PromptCompleter
topydo.lib.Completer is now topydo.ui.CompleterBase

2. Reuse CompleterBase code in prompt completer.
3. Sort completion suggestions
4. Introduce completion of due: dates in column completer.
5. Store subcommands for completers in cache (via lru_cache).
2017-07-10 21:31:51 +02:00
Jacek Sowiński 0e2bbbb7eb Implement simple completion into the Column UI
Currently it works only with single completion candidate and works for:
contexts, projects, subcommands.
2017-07-10 21:31:51 +02:00
Bram Schoenmakers 8d5f43ba6b Better handling of invalid dates
The postpone subcommand would crash when postponing a todo item with an
invalid due date (e.g. due:2017-06-31).

When postponing, the due date serves as an offset. With an invalid due
date, no proper offset can be found. Instead of (silently) falling back
to today's due date, show an error instead.

Moreover, invalid creation/completion dates are also ignored.
2017-07-10 14:08:52 +02:00
Bram Schoenmakers 6627fb99af Update ls' help text 2017-06-29 07:11:40 +02:00
Bram Schoenmakers dca02e2b7a Add %n, %N, %u and %U in the formatting for identifiers
%n: Line number
%N: Padded line number
%u: Text-based ID
%U: Padded text-based ID

Addresses issue #184.
2017-06-28 09:21:39 +02:00
Bram Schoenmakers b4c7b0a06a Add pylint to the test dependency array
With 1.7.1 and higher we can use it in Python 3.6.
2017-06-09 10:38:05 +02:00
Bram Schoenmakers dd5bb5c007 Merge branch 'python36' 2017-06-08 14:48:42 +02:00
Bram Schoenmakers 82e8c4c26f Revert "Allow Python 3.6 to fail because of pylint issues"
This reverts commit 25144172b3.
2017-06-08 14:39:06 +02:00
Bram Schoenmakers f0303137e6 Refer to static copy of the documentation.
Located at https://www.topydo.org/static.html
2017-06-08 13:01:31 +02:00
Bram Schoenmakers 93ac32e696 Merge pull request #175 from mruwek/select-all
Introduce new 'mark_all' action in Column UI
2017-03-10 12:43:58 +01:00
Jacek Sowiński 4bae3b9503 Introduce new 'mark_all' action in Column UI
It will mark all todo items contained in currently selected
TodoListWidget. By defualt it is mapped to <C-a> (Ctrl-a).
2017-02-27 23:02:01 +01:00
Bram Schoenmakers c6960e71cf Memoize some (relatively expensive) calls in the Config class 2017-02-27 12:48:16 +01:00
Bram Schoenmakers a700f7f293 Merge pull request #172 from mruwek/fix-139
Add possibility to trigger actions after archiving
2017-02-27 07:36:30 +01:00
Jacek Sowiński c2d6511a9d Use Command.name() when looking for read-only cmds 2017-02-24 16:38:25 +01:00
Jacek Sowiński 19cca43a87 Adapt test of do and del for post_archive() 2017-02-24 15:45:40 +01:00
Jacek Sowiński 6c49fbdd95 Add possibility to trigger actions after archiving
Each command can now execute action defined in its own
Command.post_archive() method after archiving action is done. Hook for
`do` and `del` is also included in this commit.

This should fix #139
2017-02-24 15:45:35 +01:00
Bram Schoenmakers dea65c346c Print a message on Ctrl-C instead of exiting column mode 2017-02-22 12:03:13 +01:00
Bram Schoenmakers 6faf0ded0d Fix generic help and usage of invalid subcommands in aliases
Plain 'help' would crash the column UI, as would the usage of an invalid
command in an alias.

This case should be handled properly, as the CLI and Prompt mode do.

For this purpose, the generic help text was extracted, such that it can
be printed in column mode (and also in prompt mode, while I was at it).
2017-02-22 11:32:28 +01:00
Bram Schoenmakers d0342c585d Apply LimitFilter after HiddenTagFilter
The LimitFilter should be performed at the very last step. Instead of
complicating ExpressionCommand and ListCommand to cough up a well
ordered set of filters, order the filters when updating the view. Each
filter is assigned an order number, where filters with a higher order
are applied later.

This fixes the output when using the ls -n flag, where the truncation
appears before the hide tag filter. This results in possibly less items
to be printed than specified (or worse: nothing is printed).
2017-02-22 09:35:53 +01:00
Bram Schoenmakers 9e13f20be1 Merge pull request #171 from mruwek/fix-config-and-format
Fix config duplicates and catch ListFormatParser errors
2017-02-21 07:30:59 +01:00
Bram Schoenmakers 9fdbde19da Merge pull request #169 from mruwek/before-after-dep-ls
Introduce 'before' and 'after' keywords to `dep ls`
2017-02-21 07:22:04 +01:00
Jacek Sowiński 67975f4b1c Print empty output of dep ls
Lack of printing empty result was especially confusing in column UI
(console wasn't opened and user could think that command wasn't
executed).
2017-02-20 21:30:04 +01:00
Jacek Sowiński 0759b54a6c Don't crash on duplicates in config
Use last definition of an option instead. Section duplicates are also
supported from now.

Example:

'''
[column_keymap]
a = foo
a = bar

[column_keymap]
b = foobar
'''

is equivalent of:

'''
[column_keymap]
a = bar
b = foobar
'''
2017-02-20 20:31:34 +01:00
Jacek Sowiński 8b9e3877bb Show error message when parsing of -F fails 2017-02-20 20:15:22 +01:00
Jacek Sowiński 77abb6c022 Introduce 'before' and 'after' keywords to dep ls
From now on:
`topydo dep ls before 1` gives the same output as `topydo dep ls 1 to`
and:
`topydo dep ls after 1` gives the same output as `topydo dep ls to 1`
2017-02-15 22:22:28 +01:00
Bram Schoenmakers edc11eeb28 Merge branch 'editor' 2017-02-10 15:14:04 +01:00
Bram Schoenmakers f6a38845dd Add tests for editor selection 2017-02-10 15:06:14 +01:00
Bram Schoenmakers 4570a21062 Merge pull request #158 from mruwek/multi-4all
Allow actions on multiple ids without MultiCommand
2017-02-10 08:38:16 +01:00
Jacek Sowiński 89e9617625 Revert TodoList changes if Transaction fails
This will prevent from leaving TodoList and todo.txt file in
inconsistent state whenever first Command.execute() inside Transaction
succeeds and any subsequent fails for whatever reason.
2017-02-09 23:44:33 +01:00
Jacek Sowiński ffdd292f40 Introduce new method for getting command shortname 2017-02-09 23:44:33 +01:00
Jacek Sowiński 83d1005a95 Fix backup descriptions for column UI transactions
This provides that each backup description will still inform user about
each command that was executed. When transaction of commands was
executed user will get printed list of commands separated by ';'.

Example:

Successfully reverted: append 1 FooBar; append 3 FooBar; append 6 FooBar;
2017-02-09 22:39:45 +01:00
Jacek Sowiński 8797023087 Properly check todo ID validity before transaction 2017-02-09 22:39:36 +01:00
Jacek Sowiński 8c606507c3 Allow actions on multiple ids without MultiCommand
This feature means that commands like `tag`, `append` or `dep` can work
now with multiple (marked) todo items in column UI.
2017-02-09 22:37:04 +01:00
Bram Schoenmakers 16f397f1d8 Fix -E flag 2017-02-09 08:37:51 +01:00
Bram Schoenmakers ebb3b4c229 Make text editor more configurable
Lookup mechanism:

1. Check whether an editor was given with the -E flag:

     topydo edit -E vim

2. Use the value of $TOPYDO_EDITOR
3. Use the value in the configuration file:

   [edit]
   editor = vim

4. Use the value in $EDITOR
5. Use 'vi' if the above fails.

This makes it easier to invoke an editor as vim with additional
parameters, for instance by adding the full todo.txt file to the
completion options (see the tip in issue #164). This trick was added to
the configuration file as a comment.
2017-02-08 14:13:55 +01:00
Bram Schoenmakers 68fde1b1b6 Add PyPI button 2017-02-07 12:04:22 +01:00
Bram Schoenmakers 8ef1ae91dc Merge pull request #167 from mruwek/column-title
Prefer filterexpr if there is no title in config
2017-02-06 13:08:15 +01:00
Jacek Sowiński 766acf4b19 Prefer filterexpr if there is no title in config
Use 'Yet another column' only if there is no title and filterexpr is
also empty. This behavior is in accordance with change introduced in
fc154914a2.
2017-02-06 12:26:47 +01:00
Bram Schoenmakers 5e13411a05 Do not apply ordinal filtering when a tag appears more than once
Suppose we have the todo item:

    (C) Some item key:value1 key:value2

And then I do an ls:

    topydo ls -x key:value2

Before, this would yield an empty result, which is undesired. Therefore,
only apply ordinal tag filtering when a tag appears exactly once in the
todo item. This is a simple approach, and special operators >, >= etc
will not be applicable:

    topydo ls -x key:>value1

will no longer work. The result could be ambiguous: filter out when none of
the tags match, or only some of them?
2017-01-27 12:28:30 +01:00
Bram Schoenmakers 51ff4a66c2 iCalendar is needed for running tests 2017-01-24 20:47:00 +01:00