X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=TODO;h=1b8fb42ab7297e892b1e0c07fa19fbe50e607a7e;hp=7c984c28c88485af53abc5731f4ad229c60f1438;hb=de064f177202b8e7ec4073eef24b17f91eba11c8;hpb=cfc671cc2e970a7d8ce162926845ea6619270d64 diff --git a/TODO b/TODO index 7c984c28..1b8fb42a 100644 --- a/TODO +++ b/TODO @@ -4,11 +4,7 @@ Fix the things that are causing the most pain to new users 2. Allow an easy way to get tags from directory names (if the user has them) -3. Allow an easy way to remove excess tags, (date-based search) - -4. Make emacs fast for big search results (see "lazy searching" below) - -5. Fix Xapian defect #250 so tagging is fast. +3. Fix Xapian defect #250 so tagging is fast. Emacs interface (notmuch.el) ---------------------------- @@ -19,11 +15,7 @@ Add a global keybinding table for notmuch, and then view-specific tables that add to it. Add a command to archive all threads in a search view. - -Lazy searching: call "notmuch search" with --first and --max to fill -just a screenful of results, and then fill in more as ther user pages -through the buffer. - + Add a '|' binding from the search view. Add a binding to run a search from notmuch-show-mode. @@ -112,6 +104,19 @@ indexing. notmuch library --------------- +Provide a sane syntax for date ranges. First, we don't want to require +both endpoints to be specified. For example it would be nice to be +able to say things like "since:2009-01-1" or "until:2009-01-1" and +have the other enpoint be implicit. Second we'de like to support +relative specifications of time such as "since:'2 months ago'". To do +any of this we're probably going to need to break down an write our +own parser for the query string rather than using Xapian's QueryParser +class. + +Make failure to read a file (such as a permissions problem) a warning +rather than an error (should be similar to the existing warning for a +non-mail file). + Add support for files that are moved or deleted (which obviously need to be handled differently). @@ -127,6 +132,11 @@ Add support for configuring "virtual tags" which are a tuple of (tag-name, search-specification). The database is responsible for ensuring that the virtual tag is always consistent. +Think about optimizing chunked searches (max-threads > 0) to avoid +repeating work. That would be saving state from the previous chunk and +reusing it if the next search is the next chunk with the same search +string. + General ------- Audit everything for dealing with out-of-memory (and drop xutil.c).