Subject: bug#31717: closed (Re: bug#31717: 26.1; display-line-numbers-mode enlarges indicator without need)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 03 Oct 2019 20:41:02 +0000

Your bug report

#31717: 26.1; display-line-numbers-mode enlarges indicator without need

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
31717: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=31717
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#31717: 26.1; display-line-numbers-mode enlarges indicator without need
From: Stefan Kangas <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: Carlos Pita <[email-masked]>, [email-masked]
Date: Thu, 3 Oct 2019 22:39:47 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Eli Zaretskii <[email-masked]> writes:

> tags 31717 notabug
> thanks
>
>> From: Carlos Pita <[email-masked]>
>> Date: Tue, 5 Jun 2018 00:30:10 -0300
>
> (Sorry for a longish response, but you raise design and implementation
> issues which cannot be explained without some non-trivial background.)
>
>> When transitioning from line 69 to line 70 a new column is added to the
>> left of the indicator as if there was a need to fit three digits despite
>> that the file has less than 100 lines and despite that if it were larger
>> line 100 would fall out of the window.
>
> Right, this is the intended behavior, and there are good reasons for
> it.  See below.

This was tagged notabug since the observed behaviour was intentional.
I'm therefore also closing it now.

Best regards,
Stefan Kangas

Subject: 26.1; display-line-numbers-mode enlarges indicator without need
From: Carlos Pita <[email-masked]>
To: [email-masked]
Date: Mon, 04 Jun 2018 23:34:52 -0300
List-Id: <debbugs-submit.debbugs.gnu.org>

When transitioning from line 69 to line 70 a new column is added to the
left of the indicator as if there was a need to fit three digits despite
that the file has less than 100 lines and despite that if it were larger
line 100 would fall out of the window.

I have tested the transition from 969 to 970 and it shows the same
effect.

It's as if the mode is anticipating an extra digit soon and playing
conservative. I understand that there could be performance reasons for
doing this (thus avoiding the need to compute the remaining lines in a
window or file) but:

1. The mode is already adding two whitespaces around the line number
indicator. Wasting one more char is on the verge of infuriating ;)

2. AFAICS computing the file size doesn't seem too demanding a task,
neither the remaining lines in a window  (although the window could be
resized).

---

In GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2018-05-29 built on juergen
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description:	Manjaro Linux

Recent messages:
Quit [2 times]
C-h C-g is undefined
nil
Quit
Display-Line-Numbers mode disabled in current buffer
x is undefined
Display-Line-Numbers mode enabled in current buffer
0 (#o0, #x0, ?\C-@)
scroll-down-command: Beginning of buffer [3 times]
Making completion list...

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-modules
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
 -fno-plt' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 MODULES THREADS LIBSYSTEMD LCMS2

Important settings:
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Info

Minor modes in effect:
  display-line-numbers-mode: t
  diff-auto-refine-mode: t
  pyvenv-mode: t
  shell-dirtrack-mode: t
  ido-everywhere: t
  winner-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg gnus-util rmail rmail-loaddefs
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils pp cl-print jka-compr vc-git display-line-numbers
doom-tomorrow-night-theme doom-themes doom-themes-common cl-extra
yasnippet elec-pair highlight-indentation flymake-proc flymake warnings
company edmacro kmacro pcase help-fns radix-tree help-mode elpy
find-file-in-project ivy delsel ivy-overlay ffap thingatpt diff-mode
easy-mmode elpy-shell pyvenv esh-var esh-io esh-cmd esh-opt esh-ext
esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util
elpy-profile elpy-django s elpy-refactor subr-x python tramp-sh tramp
tramp-compat tramp-loaddefs trampver ucs-normalize shell pcomplete
parse-time format-spec advice json map ido grep compile comint
ansi-color files-x etags xref project cus-edit cus-start cus-load
wid-edit winner ring windmove finder-inf info package easymenu
epg-config url-handlers url-parse auth-source cl-seq eieio eieio-core
cl-macs eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib time-date mule-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 395972 45995)
 (symbols 48 33197 1)
 (miscs 40 181 236)
 (strings 32 77765 6307)
 (string-bytes 1 2252569)
 (vectors 16 53016)
 (vector-slots 8 923948 18050)
 (floats 8 186 268)
 (intervals 56 4758 0)
 (buffers 992 16))