mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-27 13:17:56 +01:00
emacs/show: optionally insert bodies of "deep messages" lazily
This leverages the machinery already there to insert buttons for attachments. A potential use-case is browsing the top layers of the tree to decide which of the lower subtrees to read.
This commit is contained in:
parent
ded2eb1a50
commit
1d254bd35e
5 changed files with 203 additions and 2 deletions
|
@ -277,6 +277,9 @@ Display of messages can be controlled by the following variables
|
|||
:index:`notmuch-show-header-line`
|
||||
|docstring::notmuch-show-header-line|
|
||||
|
||||
:index:`notmuch-show-depth-limit`
|
||||
|docstring::notmuch-show-depth-limit|
|
||||
|
||||
:index:`notmuch-multipart/alternative-discouraged`
|
||||
|
||||
Which mime types to hide by default for multipart messages.
|
||||
|
|
|
@ -110,6 +110,19 @@ displayed."
|
|||
(function :tag "Function"))
|
||||
:group 'notmuch-show)
|
||||
|
||||
(defcustom notmuch-show-depth-limit nil
|
||||
"Depth beyond which message bodies are displayed lazily.
|
||||
|
||||
If bound to an integer, any message with tree depth greater than
|
||||
this will have its body display lazily, initially
|
||||
inserting only a button.
|
||||
|
||||
If this variable is set to nil (the default) no such lazy
|
||||
insertion is done."
|
||||
:type '(choice (const :tag "No limit" nil)
|
||||
(number :tag "Limit" 10))
|
||||
:group 'notmuch-show)
|
||||
|
||||
(defcustom notmuch-show-relative-dates t
|
||||
"Display relative dates in the message summary line."
|
||||
:type 'boolean
|
||||
|
@ -1030,17 +1043,21 @@ is t, hide the part initially and show the button."
|
|||
(> notmuch-show-max-text-part-size 0)
|
||||
(> (length (plist-get part :content))
|
||||
notmuch-show-max-text-part-size)))
|
||||
(deep (and notmuch-show-depth-limit
|
||||
(> depth notmuch-show-depth-limit)))
|
||||
(beg (point))
|
||||
;; This default header-p function omits the part button for
|
||||
;; the first (or only) part if this is text/plain.
|
||||
(button (and (funcall notmuch-show-insert-header-p-function part hide)
|
||||
(button (and (or deep
|
||||
(funcall notmuch-show-insert-header-p-function part hide))
|
||||
(notmuch-show-insert-part-header
|
||||
nth mime-type
|
||||
(and content-type (downcase content-type))
|
||||
(plist-get part :filename))))
|
||||
;; Hide the part initially if HIDE is t, or if it is too long
|
||||
;; Hide the part initially if HIDE is t, or if it is too long/deep
|
||||
;; and we have a button to allow toggling.
|
||||
(show-part (not (or (equal hide t)
|
||||
(and deep button)
|
||||
(and long button))))
|
||||
(content-beg (point)))
|
||||
;; Store the computed mime-type for later use (e.g. by attachment handlers).
|
||||
|
|
|
@ -91,6 +91,24 @@ test_emacs '(let ((notmuch-show-only-matching-messages t))
|
|||
(test-visible-output))'
|
||||
test_expect_equal_file $EXPECTED/notmuch-show-elide-non-matching-messages-on OUTPUT
|
||||
|
||||
test_begin_subtest "Hide bodies of messages by depth"
|
||||
test_emacs '(let ((notmuch-show-depth-limit -1))
|
||||
(notmuch-search "thread:{id:87ocn0qh6d.fsf@yoom.home.cworth.org}")
|
||||
(notmuch-test-wait)
|
||||
(notmuch-search-show-thread)
|
||||
(notmuch-test-wait)
|
||||
(test-visible-output))'
|
||||
test_expect_equal_file $EXPECTED/notmuch-show-depth OUTPUT
|
||||
|
||||
test_begin_subtest "Hide bodies of messages (depth > 1)"
|
||||
test_emacs '(let ((notmuch-show-depth-limit 1))
|
||||
(notmuch-search "thread:{id:87ocn0qh6d.fsf@yoom.home.cworth.org}")
|
||||
(notmuch-test-wait)
|
||||
(notmuch-search-show-thread)
|
||||
(notmuch-test-wait)
|
||||
(test-visible-output))'
|
||||
test_expect_equal_file $EXPECTED/notmuch-show-depth-1 OUTPUT
|
||||
|
||||
test_begin_subtest "notmuch-show: elide non-matching messages (w/ notmuch-show-toggle-elide-non-matching)"
|
||||
test_emacs '(let ((notmuch-show-only-matching-messages nil))
|
||||
(notmuch-search "from:lars@seas.harvard.edu and subject:\"Maildir storage\"")
|
||||
|
|
44
test/emacs-show.expected-output/notmuch-show-depth
Normal file
44
test/emacs-show.expected-output/notmuch-show-depth
Normal file
|
@ -0,0 +1,44 @@
|
|||
Lars Kellogg-Stedman <lars@seas.harvard.edu> (2009-11-17) (inbox signed)
|
||||
Subject: [notmuch] Working with Maildir storage?
|
||||
To: notmuch@notmuchmail.org
|
||||
Date: Tue, 17 Nov 2009 14:00:54 -0500
|
||||
|
||||
[ multipart/mixed (hidden) ]
|
||||
Mikhail Gusarov <dottedmag@dottedmag.net> (2009-11-17) (inbox signed unread)
|
||||
Subject: Re: [notmuch] Working with Maildir storage?
|
||||
To: notmuch@notmuchmail.org
|
||||
Date: Wed, 18 Nov 2009 01:02:38 +0600
|
||||
|
||||
[ multipart/mixed (hidden) ]
|
||||
Lars Kellogg-Stedman <lars@seas.harvard.edu> (2009-11-17) (inbox signed)
|
||||
Subject: Re: [notmuch] Working with Maildir storage?
|
||||
To: Mikhail Gusarov <dottedmag@dottedmag.net>
|
||||
Cc: notmuch@notmuchmail.org
|
||||
Date: Tue, 17 Nov 2009 15:33:01 -0500
|
||||
|
||||
[ multipart/mixed (hidden) ]
|
||||
Mikhail Gusarov <dottedmag@dottedmag.net> (2009-11-17) (inbox unread)
|
||||
Subject: [notmuch] Working with Maildir storage?
|
||||
To: notmuch@notmuchmail.org
|
||||
Date: Wed, 18 Nov 2009 02:50:48 +0600
|
||||
|
||||
[ text/plain (hidden) ]
|
||||
Keith Packard <keithp@keithp.com> (2009-11-17) (inbox unread)
|
||||
Subject: [notmuch] Working with Maildir storage?
|
||||
To: notmuch@notmuchmail.org
|
||||
Date: Tue, 17 Nov 2009 13:24:13 -0800
|
||||
|
||||
[ text/plain (hidden) ]
|
||||
Lars Kellogg-Stedman <lars@seas.harvard.edu> (2009-11-18) (inbox signed unread)
|
||||
Subject: Re: [notmuch] Working with Maildir storage?
|
||||
To: Keith Packard <keithp@keithp.com>
|
||||
Cc: notmuch@notmuchmail.org
|
||||
Date: Tue, 17 Nov 2009 19:50:40 -0500
|
||||
|
||||
[ multipart/mixed (hidden) ]
|
||||
Carl Worth <cworth@cworth.org> (2009-11-18) (inbox unread)
|
||||
Subject: [notmuch] Working with Maildir storage?
|
||||
To: notmuch@notmuchmail.org
|
||||
Date: Wed, 18 Nov 2009 02:08:10 -0800
|
||||
|
||||
[ text/plain (hidden) ]
|
119
test/emacs-show.expected-output/notmuch-show-depth-1
Normal file
119
test/emacs-show.expected-output/notmuch-show-depth-1
Normal file
|
@ -0,0 +1,119 @@
|
|||
Lars Kellogg-Stedman <lars@seas.harvard.edu> (2009-11-17) (inbox signed)
|
||||
Subject: [notmuch] Working with Maildir storage?
|
||||
To: notmuch@notmuchmail.org
|
||||
Date: Tue, 17 Nov 2009 14:00:54 -0500
|
||||
|
||||
[ multipart/mixed ]
|
||||
[ multipart/signed ]
|
||||
[ Unknown key ID 0xD74695063141ACD8 or unsupported algorithm ]
|
||||
[ text/plain ]
|
||||
I saw the LWN article and decided to take a look at notmuch. I'm
|
||||
currently using mutt and mairix to index and read a collection of
|
||||
Maildir mail folders (around 40,000 messages total).
|
||||
|
||||
notmuch indexed the messages without complaint, but my attempt at
|
||||
searching bombed out. Running, for example:
|
||||
|
||||
notmuch search storage
|
||||
|
||||
Resulted in 4604 lines of errors along the lines of:
|
||||
|
||||
Error opening
|
||||
/home/lars/Mail/read-messages.2008/cur/1246413773.24928_27334.hostname,U=3026:2,S:
|
||||
Too many open files
|
||||
|
||||
I'm curious if this is expected behavior (i.e., notmuch does not work
|
||||
with Maildir) or if something else is going on.
|
||||
|
||||
Cheers,
|
||||
|
||||
[ 4-line signature. Click/Enter to show. ]
|
||||
[ application/pgp-signature ]
|
||||
[ text/plain ]
|
||||
[ 4-line signature. Click/Enter to show. ]
|
||||
Mikhail Gusarov <dottedmag@dottedmag.net> (2009-11-17) (inbox signed unread)
|
||||
Subject: Re: [notmuch] Working with Maildir storage?
|
||||
To: notmuch@notmuchmail.org
|
||||
Date: Wed, 18 Nov 2009 01:02:38 +0600
|
||||
|
||||
[ multipart/mixed ]
|
||||
[ multipart/signed ]
|
||||
[ Unknown key ID 0x9D20F6503E338888 or unsupported algorithm ]
|
||||
[ text/plain ]
|
||||
|
||||
Twas brillig at 14:00:54 17.11.2009 UTC-05 when lars@seas.harvard.edu did
|
||||
gyre and gimble:
|
||||
|
||||
LK> Resulted in 4604 lines of errors along the lines of:
|
||||
|
||||
LK> Error opening
|
||||
LK>
|
||||
/home/lars/Mail/read-messages.2008/cur/1246413773.24928_27334.hostname,U=3026:2,S:
|
||||
LK> Too many open files
|
||||
|
||||
See the patch just posted here.
|
||||
|
||||
[ 2-line signature. Click/Enter to show. ]
|
||||
[ application/pgp-signature ]
|
||||
[ text/plain ]
|
||||
[ 4-line signature. Click/Enter to show. ]
|
||||
Lars Kellogg-Stedman <lars@seas.harvard.edu> (2009-11-17) (inbox signed)
|
||||
Subject: Re: [notmuch] Working with Maildir storage?
|
||||
To: Mikhail Gusarov <dottedmag@dottedmag.net>
|
||||
Cc: notmuch@notmuchmail.org
|
||||
Date: Tue, 17 Nov 2009 15:33:01 -0500
|
||||
|
||||
[ multipart/mixed (hidden) ]
|
||||
Mikhail Gusarov <dottedmag@dottedmag.net> (2009-11-17) (inbox unread)
|
||||
Subject: [notmuch] Working with Maildir storage?
|
||||
To: notmuch@notmuchmail.org
|
||||
Date: Wed, 18 Nov 2009 02:50:48 +0600
|
||||
|
||||
[ text/plain (hidden) ]
|
||||
Keith Packard <keithp@keithp.com> (2009-11-17) (inbox unread)
|
||||
Subject: [notmuch] Working with Maildir storage?
|
||||
To: notmuch@notmuchmail.org
|
||||
Date: Tue, 17 Nov 2009 13:24:13 -0800
|
||||
|
||||
[ text/plain (hidden) ]
|
||||
Lars Kellogg-Stedman <lars@seas.harvard.edu> (2009-11-18) (inbox signed unread)
|
||||
Subject: Re: [notmuch] Working with Maildir storage?
|
||||
To: Keith Packard <keithp@keithp.com>
|
||||
Cc: notmuch@notmuchmail.org
|
||||
Date: Tue, 17 Nov 2009 19:50:40 -0500
|
||||
|
||||
[ multipart/mixed (hidden) ]
|
||||
Carl Worth <cworth@cworth.org> (2009-11-18) (inbox unread)
|
||||
Subject: [notmuch] Working with Maildir storage?
|
||||
To: notmuch@notmuchmail.org
|
||||
Date: Wed, 18 Nov 2009 02:08:10 -0800
|
||||
|
||||
On Tue, 17 Nov 2009 14:00:54 -0500, Lars Kellogg-Stedman <lars at
|
||||
seas.harvard.edu> wrote:
|
||||
> I saw the LWN article and decided to take a look at notmuch. I'm
|
||||
> currently using mutt and mairix to index and read a collection of
|
||||
> Maildir mail folders (around 40,000 messages total).
|
||||
|
||||
Welcome, Lars!
|
||||
|
||||
I hadn't even seen that Keith's blog post had been picked up by lwn.net.
|
||||
That's very interesting. So, thanks for coming and trying out notmuch.
|
||||
|
||||
> Error opening
|
||||
> /home/lars/Mail/read-messages.2008/cur/1246413773.24928_27334.hostname,U=3026:2,S:
|
||||
> Too many open files
|
||||
|
||||
Sadly, the lwn article coincided with me having just introduced this
|
||||
bug, and then getting on a Trans-Atlantic flight. So I fixed the bug
|
||||
fairly quickly, but there was quite a bit of latency before I could push
|
||||
the fix out. It should be fixed now.
|
||||
|
||||
> I'm curious if this is expected behavior (i.e., notmuch does not work
|
||||
> with Maildir) or if something else is going on.
|
||||
|
||||
Notmuch works just fine with maildir---it's one of the things that it
|
||||
likes the best.
|
||||
|
||||
Happy hacking,
|
||||
|
||||
-Carl
|
Loading…
Reference in a new issue