pull request

Carl Worth cworth at cworth.org
Wed Apr 21 14:03:03 PDT 2010


On Mon, 19 Apr 2010 09:27:39 +0100, David Edmondson <dme at dme.org> wrote:
> commit 7dedc95af671173a57bafd973604614c03121ce6
> 
>     emacs: JSON based implementation

I merged this and followed it up immediately with a commit to remove the
ability to toggle the body visibility separate from the message
visibility. That was just confusing and none too useful.

> commit 514e14c42e214718768a1ec94cb869cd3eb47114
>
>     emacs: Move body markup to a separate file

This is pushed.

> commit 2b6201fbf9209a875f216d48c30b95a6f583c575
> 
>     emacs: Add more functions to clean up text/plain parts
>     
>     Add:
>     - notmuch-wash-wrap-long-lines: Wrap lines longer than the width of
>       the current window whilst maintaining any citation prefix.
>     - notmuch-wash-tidy-citations: Tidy up citations by:
>       - compress repeated otherwise blank citation lines,
>       - remove otherwise blank citation lines at the head and tail of a
>         citation and remove blank lines between attribution statements and
>         the citation,
>     - notmuch-wash-compress-blanks: Compress repeated blank lines and
>       remove leading and trailing blank lines.

I did not push this one. I think this munges messages too much to be on
by default.

Consider a window of 80 columns and a thread with messages all wrapped
at a reasonable boundary, (75 columns or whatever). And consider that
the thread causes indentation such that messages start running into the
right edge of the window.

Before the above patch, this scenario will cause the message to be
displayed in an obviously incorrect fashion, (some lines will only have
one or two words displayed on them). But since the content is unchanged
From the original message (other than the extra indentation whitespace)
I can just widen my emacs window and view the message correctly.

After the patch, the broken case looks a little nicer, (lines that have
only one or two words are now indented and citation markers are added),
but if I widen the window nothing gets fixed. So that's annoying.

With sup, the approach for this scenarios was to effectively make the
buffer much wider, and to automatically scroll the buffer to the left
when necessary so that the current message was made visible with no
wrapping. I liked that.

Dealing with broken messages that have entire paragraphs unwrapped is a
separate issue from displaying correct messages nicely. I'd like to make
correct messages work well first, and then worry about the broken
messages. (For those, I'm much more willing to accept munged display of
the message.)

> commit c7872f5e1f11cfa10d93cb818c5f6f6c0835b918
>
>     emacs/notmuch-show.el: Improved part labelling
... 
> commit 951db85a55a1893e766b26de1377dda5b4573366
> 
>     emacs: Use `mm-display-part' when possible
...
> commit 5c060ded87ec4dc479625348708ef73852d60b36
> 
>     emacs: Use mailcap.el to guess the type of application/octet-stream parts
...
> commit 5fcbb528384b7bda838f7c77434def15f85c7382
> 
>     emacs: Display all body parts using `notmuch part --part=<n>'

All four of these are pushed now. I like the inline display of
images. (Though I wish that emacs would allow the scrollbar to display
partial images---the sudden disappearance of the message once it hits
the top of the window is annoying.)

> commit 9e193a3998b7503e35d21013c71cc4ecaf6c9d50
> 
>     emacs/notmuch-wash.el: Add `notmuch-wash-inline-patch'

The commit message for this one was enough to make me skip it for now:

>     Due to the scope for error in detecting inline patches (and their
>     extent), this function is not enabled by default.

For this entire series it would be very nice to have some emacs-based
testing in the test suite. And for a patch like this with heuristics
that are known to not be perfect, I think it's essential to have that
testing in place first.

> commit 444de7e73d988cab9b8d1fef851c8ad26174a996
> 
>     emacs/notmuch-show.el: Part headers are real buttons that save the part

Pushed. This is a delightful improvement to our handling of attachments.

I'd like the text on the button to give some more instruction, such as:

	"Click or press Enter to save."

And if we could pull it off, (I don't know how flexible the button
widget is in emacs), it would be nice to have something like this as
well:

	"Or press V to view."

so that one could easily use an external viewer for a single attachment.

Meanwhile, another issue with the result of this series is that I now
seem to get rendering for both the text/plain and the text/html
alternatives when a message has both. For now, the paragraphs are
wrapped much more nicely in the rendering of the html portion, but links
are apparently entirely missing. The link URLs at least appear in the
text/plain rendering, (which is pretty ugly, but at least not impossible
to use).

If we could get one version or the other working completely, then it
would be nice to display only one.

>     Don't attempt to save 'fake' parts generated by
>     `notmuch-wash-inline-patch'.

There was one portion of the patch that did not apply since I hadn't
applied an earlier patch. It looked to me like it was the portion
described by the above sentence, so I dropped that sentence from the
commit message.

> commit e9d737feb5a49fd59e1f27bccd24cac2fd1ef749
> 
>     emacs/notmuch-show.el: Add `notmuch-show-toggle-all' bound to M-RET
>     
>     `notmuch-show-toggle-all' changes the visibility all of the messages
>     in the current thread. By default it makes all of the messages not
>     visible. With a prefix argument, it makes them all visible.

I didn't push this one yet.

The feature is *almost* what I want. It's just that I often want to open
all messages in a thread, (and I've never found myself wanting to close
all messages). So I'd like to switch which behavior requires the prefix
argument here.

Also, care should be taken in the documentation of this function so that
the first line reads as a complete sentence. This is because our help
screen (with the "?" key) displays only the first line of help for each
function.

[Aside: We could improve our help screen by making RET on any line then
bring up the full help message for that function.]

> commit b3be927b54956a7258f203159e0bdb954e686c80
> 
>     emacs: Support for customizing search result display

Finally, this is pushed. It's a quite lovely feature that's quite easy
to take advantage of from "M-x customize-group" "notmuch".

Anyone, if you haven't tried that mode yet for customizing notmuch, you
should give it a try. (And we should add some hint somewhere to make it
easier to find. Perhaps a keybinding to get to the customization
buffer.)

Thanks again, David!

-Carl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20100421/79139701/attachment.pgp>


More information about the notmuch mailing list