Subject: Re: bug#31666: Bad interaction between visual-line-mode and wrap-prefix on long lines

From: Stephen Berman <[email-masked]>
Date: Fri, 01 Jun 2018 10:00:52 +0200

On Fri, 01 Jun 2018 10:32:08 +0300 Eli Zaretskii <[email-masked]> wrote:

> [...]  What you propose would require it to look ahead one more
> screen line (to determine whether it will still be too long after
> wrapping), which will slow down redisplay and complicate the code even
> more.
>
> It will also have a nasty (IMO) effect, whereby adding or removing a
> character to the "bbb..." part will make the display change between
> this:
>
>    aaaaaaaaaaaaaaaa
>    bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
>
> and this:
>
>    aaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
>
> This will cause all the rest of the text below this line to scroll up
> or down, 

But this is what already happens with visual-line-mode enabled...

>          which will require us to disable several redisplay
> optimizations when just one character is inserted/deleted.

...or have I misunderstood what you're referring to?

> If someone can find a clever technique to overcome these difficulties,
> I'm sure patches will be very welcome.
>
>> This is also an issue in todo-mode, which by default
>> enables visual-line-mode and indents with wrap-prefix.  For example,
>> here both items have no space after the date, but the second one is too
>> long for the window, so Visual Line mode breaks it:
>> 
>> 1 [May 31, 2018] http://git.savannah.gnu.org/cgit/emacs.git/log/
>> 2 [May 31, 2018] 
>>    http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=c0a0351249c1e6a9307224d
>>    8337ff8916f4cf138
>> 
>> It would be nice if the display could be like this:
>> 
>> 1 [May 31, 2018] http://git.savannah.gnu.org/cgit/emacs.git/log/
>> 2 [May 31, 2018] http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=c0a035124
>>    9c1e6a9307224d8337ff8916f4cf138
>
> The usual way of handling these situations is to turn on
> truncate-lines.  Any reasons why you don't do that in that mode?
> Especially since we now have horizontal scrolling of just the current
> line?

I would find it more inconvenient to scroll to see the whole item.  The
line-breaking is just an aesthetic issue here.

Steve Berman