On Tue, 31 Jan 2012 08:31:26 -0800, Jameson Graef Rollins <firstname.lastname@example.org> wrote: > On Tue, 31 Jan 2012 08:09:08 +0000, David Edmondson <email@example.com> wrote: > > On Mon, 30 Jan 2012 09:47:34 -0800, Jameson Graef Rollins <firstname.lastname@example.org> wrote: > > > One thing I've noticed, which isn't actually part of this patch, is that > > > the long-line truncation doesn't respect the indentation, which makes > > > things look strange. > > > > Which lines are getting wrapped in a way that you don't like? The header > > line? The headers? The body? > > Header lines, such as Subject, To, Cc, etc. You could try out id:"email@example.com". > > > But honestly I still don't like our method of displaying threads as a > > > giant chain of concatenated messages with indentation. But that's for > > > later work. > > > > It's inherited from sup, and is surely part of the "raison de notmuch" > > :-) > > Inheritance is not a good justification for anything, much less > questionable UI choices (I seem to have inherited baldness from my dad. > Thanks dad). I didn't suggest that inheritance was justification. Whether it's a questionable UI choice is largely a matter of personal preference. When Carl started the project he chose to follow sup's example in this respect. (Though sup is more aggressive in scrolling the display to the left to accommodate deep threads.) > Problems I have with the current approach: > > - thread structure is opaque. This is especially true with long > threads, where it can be next to impossible to see which messages are > replies to what. This is by far my biggest pet peeve with the current > format. A collapsed view of the current `notmuch-show-mode' buffer is not very different to a mutt index view. > - navigation through the thread is difficult. This is related to above. > There's no way to simultaneously see the current message and the > thread structure, which again, makes it very difficult to find > children and parents. This could possibly be fixed by having key > bindings that would navigate through parents, children and siblings of > the current message, but that might be tricky to implement. It would be relatively simple to add the bindings you describe, based on the computed thread depth of messages. So far I haven't particularly missed being able to do it. > - indentation of the entire message body is a really bad way to indicate > thread depth. I don't like how messages start to walk off screen as > threads get longer, or how copying regions of the body brings the > indentation with it. Your indentation toggling will improve this a > bit, though, but I still think it's a bandaid on the larger issue. The indentation works well until threads are more than about ten levels deep, I find. It becomes unworkable after about twenty levels (but conversations that deep tend to stress both the UI and myself in other ways as well). I don't copy regions of the `notmuch-show-mode' buffer, so that hasn't been a problem. > I must say that the approach I've been longing for is a modified version > of what mutt has: a top pain that is just the thread structure (with > nice branching lines), and a bottom pain that displays the current > message. I think that would be a much cleaner approach. Nothing precludes the implementation of what you describe. It's not hard to see how the two approaches could live side by side.