[PATCH 1/2] Add notmuch-search-unthread-thread

Subject: [PATCH 1/2] Add notmuch-search-unthread-thread

Date: Thu, 7 Dec 2023 18:02:46 +0100

To: notmuch@notmuchmail.org

Cc: Sandra Snan

From: Sandra Snan


I'm in threads with many thousands of emails. So with this new
`notmuch-search-unthread-thread`, I can be in my normal daily
notmuch-search of tag:inbox and tag:personal and if I put my cursor on
at rhead and then run this command, I get a buffer with the messages
from that thread in a flat list. (Because so huge are the threads that
`notmuch-tree-from-search-thread` can't handle them either.)

And then from that "exploded view" of a thread I can go to messages
one at a time in a non-borking way and then hit q to go back to the
exploded view.
---
 emacs/notmuch.el | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 6eef4af1..c8f53625 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -547,6 +547,23 @@ Return non-nil on success."
       (message "End of search results.")
       nil)))
 
+(defun notmuch-search-unthread-thread (&optional entire)
+  "View the relevant parts of the currently selected thread
+as single messages.
+
+Without a prefix, it only shows the messages from the thread that
+match the search query. With a prefix, it shows the entire
+thread.
+
+Return non-nil on success."
+  (interactive "P")
+  (let ((thread-id (notmuch-search-find-thread-id)))
+    (if thread-id
+	(notmuch-unthreaded (if entire thread-id
+			      (concat notmuch-search-query-string " and " thread-id)))
+      (message "No such thread with that id found!")
+      nil)))
+
 (defun notmuch-tree-from-search-current-query ()
   "Tree view of current query."
   (interactive)
-- 
2.39.2

_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: