]> git.notmuchmail.org Git - notmuch/blobdiff - TODO
TODO: Add some ideas about better search syntax
[notmuch] / TODO
diff --git a/TODO b/TODO
index 2778604cb361ed4fe6489da72951414704093da3..23585c80d18ff84266f638417549f545dc175ef0 100644 (file)
--- a/TODO
+++ b/TODO
@@ -33,6 +33,18 @@ has the "muted" tag).
 
 Fix i-search to open up invisible citations as necessary.
 
+Make '=' count from the end rather than from the beginning if more
+than half-way through the buffer.
+
+Fix to automatically wrap long headers (for RFC compliance) before
+sending. This should probably just be fixed in message-mode itself,
+(but perhaps we can have a notmuch-message-mode that layers this on
+top).
+
+Implement Fcc and use it for all messages, (whether a new composition,
+a reply, or a forward). This again may require a notmuch-message-mode
+that extends message-mode.
+
 Emacs saved-search interface
 ----------------------------
 Here's a proposal Carl wrote (id:87einafy4u.fsf@yoom.home.cworth.org):
@@ -118,6 +130,27 @@ file.
 Allow configuration for filename patterns that should be ignored when
 indexing.
 
+Replace the "notmuch part --part=id" command with "notmuch show
+--part=id", (David Edmonson wants to rewrite some of "notmuch show" to
+provide more MIME-structure information in its output first).
+
+Replace the "notmuch search-tags" command with "notmuch search
+--output=tags".
+
+Fix to avoid this ugly message:
+
+       (process:17197): gmime-CRITICAL **: g_mime_message_get_mime_part: assertion `GMIME_IS_MESSAGE (message)' failed
+       Warning: Not indexing empty mime part.
+
+  This probably means adding a test case to generate that message,
+  filing an upstream bug against GMime, and then silencing the
+  notmuch-generated portion of the warning (so that once GMime is
+  fixed, this is all silent).
+
+Simplify notmuch-reply to simply print the headers (we have the
+original values) rather than calling GMime (which encodes) and adding
+the confusing gmime-filter-headers.c code (which decodes).
+
 notmuch library
 ---------------
 Add an interface to accept a "key" and a byte stream, rather than a
@@ -142,8 +175,6 @@ Fix to use the *last* Message-ID header if multiple such headers are
 encountered, (I noticed this is one thing that kept me from seeing the
 same message-ID values as sup).
 
-Add support for the user to specify custom headers to be indexed.
-
 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.
@@ -177,8 +208,53 @@ notmuch searches. Here was one proposal made in IRC:
 Provide a ~me Xapian synonym for all of the user's configured email
 addresses.
 
+Search syntax
+-------------
+Implement support for "tag:*" to expand to all tags.
+
+Fix "notmuch search to:" to be less confusing. Many users expect this
+to search for all messages with a To: header, but it instead searches
+for all messages with the word "to". If we don't provide the first
+behavior, perhaps we should exit on an error when a configured prefix
+is provided with no value?
+
+Support "*" in all cases and not just as a special case. That is, "* "
+should also work, as well as "* and tag:inbox".
+
+Implement a syntax for requesting set-theoertic operations on results
+of multiple searches. For example, I would like to do:
+
+       "tag:inbox" SET-SUBTRACT "tag:muted"
+
+    as well as:
+
+       "tag:notmuch and <date-range>" SET-INTERSECT
+       "tag:notmuch and not (tag:merged or tag:postponed)"
+
+    See id:3wdpr282yz2.fsf@testarossa.amd.com for more details on the
+    use cases of the above.
+
+Database changes
+----------------
+Store a reference term for every message-id that appears in
+References. We just started doing this for newly-added documents, but
+at the next convenient database-schema upgrade, we should go back and
+fix old messages to be consistent.
+
+Start indexing the List-Id header, (and re-index this header for
+existing messages at the next database upgrade).
+
+Start indexing the message file's directory ana make it available for
+search as "folder:" (and re-index this value for existing messages at
+the next database upgrade).
+
+Add support for the user to specify custom headers to be indexed (and
+re-index these for existing messages at the next database upgrade).
+
 Test suite
 ----------
+Start testing --format=json.
+
 Achieve 100% test coverage with the test suite.
 
 Modularize test suite (to be able to run individual tests).
@@ -189,6 +265,9 @@ Fix the insane quoting nightmare of the test suite, (and once we do
 that we can actually test the implicit-phrase search feature such as
 "notmuch search 'body search (phrase)'"
 
+Test "notmuch reply" choosing the correct email address from the
+Received header when no configured email address appears in To or Cc.
+
 General
 -------
 Audit everything for dealing with out-of-memory (and drop xutil.c).