Subject: Re: bug#28855: 26.0.90; display-line-numbers-mode does not respect (line|wrap)-prefix '(space :align-to N) text property

From: Alex <[email-masked]>
Date: Wed, 18 Oct 2017 17:58:03 -0600

Eli Zaretskii <[email-masked]> writes:

>> Date: Wed, 18 Oct 2017 19:44:50 +0200
>> From: martin rudalics <[email-masked]>
>> CC: [email-masked], Stefan Monnier <[email-masked]>, 
>>  John Wiegley <[email-masked]>
>> 
>> If someone wants the current behavior, we could add
>> a "special element" like 'line-number-display-start' such that
>> 
>> :align-to 0
>> 
>> would behave like
>> 
>> :align-to (+ line-number-display-start (line-number-display-width t))
>> 
>> for LTR text.
>
> Actually, it's the other way around: the current behavior is that
> :align-to always starts counting from the window edge, even if line
> numbers are displayed, so the effect of ":align-to N" is as if N has
> been reduced by the screen space used for displaying the numbers.

By "window edge" do you mean the edge of the text area? Since AFAICT
there's no current way to specify alignment relative to the window
edges. This is what the 2nd part of Bug#28771 is about.

> The changes I'm about to install make :align-to work as you described
> above, i.e. start measuring the offset from where the line-number
> display ends.

What about starting the measurement from after the line-prefix attribute
as well? Then there can be a new element for pixel specs that one can
use to display relative to line numbers, if one so wishes.

> After the change, if someone wants to always measure the offset from
> the window edge, they could/should use
>
>   :align-to (+ left-fringe left-fringe N)

> > Unless ‘fringes-outside-margins’ is non-nil and there's a left margin.
> For that, there's left-margin that can play the same role.

If there's a distinct element for line-numbers, then you don't have to
worry about what elements are on the left, or what order they're in.