all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: "Franco A. Cortesi" <cortesifranco3@gmail.com>
Cc: 38717@debbugs.gnu.org
Subject: bug#38717: display-line-numbers set to relative
Date: Mon, 23 Dec 2019 15:47:53 +0200	[thread overview]
Message-ID: <83h81rxieu.fsf@gnu.org> (raw)
In-Reply-To: <CAOP1d78Rg5vGVKUQQqO8dar3C1iaOzLUz27S-jWfCUPeJe9Kjg@mail.gmail.com> (cortesifranco3@gmail.com)

tags 38717 notabug
thanks

> From: "Franco A. Cortesi" <cortesifranco3@gmail.com>
> 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.





  parent reply	other threads:[~2019-12-23 13:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-23  3:49 bug#38717: display-line-numbers set to relative Franco A. Cortesi
2019-12-23  4:35 ` Franco A. Cortesi
2019-12-23 13:47 ` Eli Zaretskii [this message]
2020-01-15 19:50   ` Stefan Kangas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83h81rxieu.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=38717@debbugs.gnu.org \
    --cc=cortesifranco3@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.