1. 10 Jul, 2017 4 commits
    • Jacek Sowiński's avatar
      Add completion box and full completion support · 1fbf62a3
      Jacek Sowiński authored
      - 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
      1fbf62a3
    • Jacek Sowiński's avatar
      Reorganize code for completers · cfd66d5f
      Jacek Sowiński authored
      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).
      cfd66d5f
    • Jacek Sowiński's avatar
      Implement simple completion into the Column UI · 0e2bbbb7
      Jacek Sowiński authored
      Currently it works only with single completion candidate and works for:
      contexts, projects, subcommands.
      0e2bbbb7
    • Bram Schoenmakers's avatar
      Better handling of invalid dates · 8d5f43ba
      Bram Schoenmakers authored
      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.
      8d5f43ba
  2. 29 Jun, 2017 1 commit
  3. 28 Jun, 2017 1 commit
  4. 09 Jun, 2017 1 commit
  5. 08 Jun, 2017 3 commits
  6. 10 Mar, 2017 1 commit
  7. 27 Feb, 2017 3 commits
  8. 24 Feb, 2017 3 commits
  9. 22 Feb, 2017 3 commits
    • Bram Schoenmakers's avatar
    • Bram Schoenmakers's avatar
      Fix generic help and usage of invalid subcommands in aliases · 6faf0ded
      Bram Schoenmakers authored
      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).
      6faf0ded
    • Bram Schoenmakers's avatar
      Apply LimitFilter after HiddenTagFilter · d0342c58
      Bram Schoenmakers authored
      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).
      d0342c58
  10. 21 Feb, 2017 2 commits
  11. 20 Feb, 2017 3 commits
  12. 15 Feb, 2017 1 commit
  13. 10 Feb, 2017 3 commits
  14. 09 Feb, 2017 6 commits
  15. 08 Feb, 2017 1 commit
    • Bram Schoenmakers's avatar
      Make text editor more configurable · ebb3b4c2
      Bram Schoenmakers authored
      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.
      ebb3b4c2
  16. 07 Feb, 2017 1 commit
  17. 06 Feb, 2017 2 commits
  18. 27 Jan, 2017 1 commit
    • Bram Schoenmakers's avatar
      Do not apply ordinal filtering when a tag appears more than once · 5e13411a
      Bram Schoenmakers authored
      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?
      5e13411a