Subject: Re: bug#38717: display-line-numbers set to relative
From: Stefan Kangas <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked], "Franco A. Cortesi" <[email-masked]>
Date: Wed, 15 Jan 2020 20:50:26 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Eli Zaretskii <[email-masked]> writes:

> tags 38717 notabug
> thanks
>
>> From: "Franco A. Cortesi" <[email-masked]>
>> Date: Mon, 23 Dec 2019 00:49:47 -0300
>> 
>> When display-line-numbers is set to 'relative', the number of spaces before the digits starts growing (to two)
>> when the current line hits 43 in my case. Of course, no other line has more than two digits as the screen only
>> has 56 lines in total so the growing of spaces (and columns) is not needed at all and of course is undesired.
>> This behavior seems to be correctly implemented but for absolute line numbers, where hitting line 43 means
>> the bottom line is close to start showing numbers with three digits.
>
> This is a side effect of the implementation, which avoids scanning the
> entire area to be displayed twice, and instead estimates the maximum
> width of a line number when the first line of a window is displayed,
> and then sticks to that width for that window.  Since Emacs can
> display variable-size fonts in the same window-full, it must be
> pessimistic and assume the smallest possible font (which makes the
> last line's number become larger, and cross the 3-digits threshold
> sooner).
>
> I don't think this is too much to pay for lightning-fast display of
> line numbers (unlike linum.el and similar modes).
>
>> The current line always showing the absolute line number is another big problem as it will make the number
>> of columns to grow and srink anyway. This growing and shrinking could be totally prevented if users were able
>> to remove or configure the contents of the current line indicator. If configurable, a custom face would be also
>> very good. For example a colored "-" indicating the current line would be nice for many users.
>
> Sounds like you want to customize the option
> display-line-numbers-current-absolute, and maybe also to customize the
> line-number-current-face face.
>
> In general, I suggest to type
>
>    M-x customize-group RET display-line-numbers RET
>
> and review the customizable options this mode offers, you might find
> something you want to change from the default.  (The most important
> options are also described in the Emacs manual.)
>
>> Lastly and less important, it would be great to be able to remove the space before the first numeric character!
>
> Cannot be done easily, because Emacs supports right-to-left text,
> where line numbers appear on the right, and when the line number is
> rendered, Emacs doesn't yet know whether the text after the line
> number is R2L or L2R.

So it seems like there is nothing to do here and I'm closing this bug.

Best regards,
Stefan Kangas