This is a dispatch function from the search view that if a thread is small, it shows it with `notmuch-search-show-thread`, and if it's big, it shows it with `notmuch-search-show-or-unthread`. On my own machine I've bound it to `RET` and to `<mouse-1>` in the notmuch-search-mode-map, but that binding isn't part of this patch. It shells out to notmuch count to see if the thread is big or small. "Big" is hardcoded to ten messages or lower, if we want to introduce a variable for that instead, that might be great. It's a deliberate choice to count all the messages in the thread, not just ones that are part of the search (a.k.a. the ones that will show up in the unthreaded view if the thread is big). The reason for that is that that's the number that matters when it comes to how well `notmuch-search-show-thread` can handle it. That's by design. So if there's a thread with 100000 messages and four of them show up in the search (maybe because they have a particular tag or date), it'll see that the thread is big and "explode" it and then show those four new messages in a flat view. --- emacs/notmuch.el | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index c8f53625..e348f660 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -564,6 +564,19 @@ Return non-nil on success." (message "No such thread with that id found!") nil))) +(defun notmuch-search-show-or-unthread () + "If the thread is small, show it the normal notmuch way, and if +it's big, show the messages separatley in a buffer so you can +visit them individually." + (interactive) + (let ((thread-id (notmuch-search-find-thread-id))) + (if thread-id + (if (< 11 (notmuch-call-notmuch-sexp "count" thread-id)) + (notmuch-search-unthread-thread) + (notmuch-search-show-thread)) + (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