Package: emacs;
Reported by: the_wurfkreuz <the_wurfkreuz <at> proton.me>
Date: Tue, 4 Mar 2025 06:32:02 UTC
Severity: normal
Found in version 31.0.50
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: the_wurfkreuz <the_wurfkreuz <at> proton.me> Subject: bug#76734: closed (Re: bug#76734: 31.0.50; The line numbers take more space than they need) Date: Tue, 04 Mar 2025 21:37:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report #76734: 31.0.50; The line numbers take more space than they 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 76734 <at> debbugs.gnu.org. -- 76734: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76734 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Stefan Kangas <stefankangas <at> gmail.com> To: the_wurfkreuz <the_wurfkreuz <at> proton.me>, Eli Zaretskii <eliz <at> gnu.org> Cc: 76734-done <at> debbugs.gnu.org Subject: Re: bug#76734: 31.0.50; The line numbers take more space than they need Date: Tue, 4 Mar 2025 21:36:21 +0000the_wurfkreuz via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> writes: > Sent with Proton Mail secure email. > > On Tuesday, March 4th, 2025 at 2:55 PM, Eli Zaretskii <eliz <at> gnu.org> wrote: > >> tags 76734 notabug >> thanks >> >> > Date: Tue, 04 Mar 2025 06:31:00 +0000 >> > From: the_wurfkreuz via "Bug reports for GNU Emacs, >> > the Swiss army knife of text editors" bug-gnu-emacs <at> gnu.org >> > >> > When using the line-numbers mode, the line numbers start to take an >> > additional space from a buffer way before the line count reaches 3 >> > digit numbers. >> > >> > Steps to reproduce: >> > >> > 1. Evaluate: >> > >> > (global-display-line-numbers-mode 1) >> > (setq display-line-numbers 'visual >> > display-line-numbers-type 'relative) >> > >> > (fringe-mode '(1 . 1)) >> > >> > 2. Then create new lines in the same buffer using the newline >> > command. In my case i get an additional space on a 38th line already. >> >> >> This is by design. Emacs cannot know how many lines will actually be >> shown in the window before it actually shows them all. By contrast, >> it needs to decide how many columns to allocate for line numbers >> before it displays even a single line, to avoid the annoying >> horizontal movement of text as much as possible. So it sometimes errs >> on the safe side (recall that some lines could be smaller than others >> due to different fonts), to avoid the need to display the window >> twice, which would significantly punish performance in this mode. >> >> Why is that a problem? > > If it's done so intentionally, then there is no inherent problem. Yes, I think it's intentional here, sorry. Thanks for the bug report, nevertheless. I guess the only thing left to do here is to close the bug; I'm doing that with this message.
[Message part 3 (message/rfc822, inline)]
From: the_wurfkreuz <the_wurfkreuz <at> proton.me> To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org> Subject: 31.0.50; The line numbers take more space than they need Date: Tue, 04 Mar 2025 06:31:00 +0000[Message part 4 (text/plain, inline)]When using the line-numbers mode, the line numbers start to take an additional space from a buffer way before the line count reaches 3 digit numbers. Steps to reproduce: 1. Evaluate: (global-display-line-numbers-mode 1) (setq display-line-numbers 'visual display-line-numbers-type 'relative) (fringe-mode '(1 . 1)) 2. Then create new lines in the same buffer using the newline command. In my case i get an additional space on a 38th line already. In GNU Emacs 31.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.24.43, cairo version 1.18.0) of 2025-02-19 built on ub-void Repository revision: b568ff418ce7147c27d7f82fe4a8eef325b9de2c Repository branch: HEAD System Description: Void Linux Configured using: 'configure --with-native-compilation=aot --with-tree-sitter --with-gif --with-png --with-jpeg --with-rsvg --with-tiff --with-imagemagick --with-pgtk --with-mailutils CC=/usr/bin/gcc CXX=/usr/bin/gcc' Configured features: CAIRO DBUS FREETYPE GLIB GMP GNUTLS GSETTINGS HARFBUZZ IMAGEMAGICK JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB Important settings: value of $LC_COLLATE: C value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: windmove-mode: t savehist-mode: t meow-global-mode: t meow-mode: t meow-normal-mode: t meow-esc-mode: t envrc-global-mode: t envrc-mode: t buffer-terminator-mode: t global-git-commit-mode: t magit-auto-revert-mode: t marginalia-mode: t vertico-mode: t corfu-popupinfo-mode: t corfu-history-mode: t corfu-echo-mode: t global-corfu-mode: t corfu-mode: t which-key-mode: t undo-fu-session-global-mode: t undo-fu-session-mode: t global-treesit-auto-mode: t global-auto-revert-mode: t save-place-mode: t electric-pair-mode: t recentf-mode: t global-display-line-numbers-mode: t display-line-numbers-mode: t override-global-mode: t tooltip-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t minibuffer-regexp-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/wurfkreuz/.emacs.d/elpa/transient-20250108.1351/transient hides /usr/local/share/emacs/31.0.50/lisp/transient Features: (shadow sort mail-extr emacsbug face-remap ido shortdoc misearch multi-isearch pulse windmove cus-start help-fns radix-tree tramp-cmds em-unix em-term term disp-table ehelp em-script em-prompt em-pred em-ls em-hist em-glob em-extpipe em-cmpl em-dirs em-basic em-banner em-alias em-elecslash esh-mode esh-var dired-aux org-appear image-file image-converter oc-basic ol-eww eww vtable mule-util url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader range ol-docview doc-view image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi python vc-git vc-dispatcher jka-compr raku-detect savehist f eshell em-tramp esh-cmd esh-ext esh-proc esh-opt esh-io esh-arg esh-module esh-module-loaddefs esh-util meow meow-tutor meow-cheatsheet meow-cheatsheet-layout meow-core meow-shims meow-esc meow-command array meow-thing meow-visual meow-keypad meow-beacon meow-helpers meow-util meow-keymap meow-face meow-var delsel org-tempo tempo org-drill persist org-agenda embark-org org-element org-persist org-id org-refile org-element-ast inline avl-tree org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-version org-loaddefs cal-menu calendar cal-loaddefs org-compat org-macs eglot external-completion jsonrpc xref ert ewoc debug backtrace kdl-mode generic markdown-mode color nix-mode nix-repl nix-shell nix-store nix-log nix-instantiate nix-shebang nix-format nix yaml-mode dockerfile-mode terraform-mode noutline outline hcl-mode lua-mode perl-mode flymake envrc inheritenv buffer-terminator transpose-frame magit-bookmark magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff git-commit log-edit message sendmail yank-media puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process magit-mode benchmark magit-git magit-base magit-section cursor-sensor crm smerge-mode diff-mode track-changes diff hydra lv with-editor server embark-consult embark ffap thingatpt consult bookmark marginalia vertico project cape corfu-popupinfo corfu-history corfu-echo corfu orderless tempel-collection tempel wgrep grep compile text-property-search which-key docker docker-context docker-volume docker-network docker-image docker-container docker-faces docker-core docker-compose docker-process docker-utils tablist advice tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local find-func cedet dired dired-loaddefs docker-group transient edmacro kmacro compat dash aio generator s goto-chg undo-fu-session undo-fu zig-ts-mode clojure-ts-mode treesit-auto crontab-mode sh-script smie treesit executable rose-pine-theme cus-edit pp cus-load midnight autorevert filenotify saveplace tramp-cache time-stamp tramp-sh tramp trampver tramp-integration files-x tramp-message tramp-compat shell pcomplete comint ansi-osc ring parse-time iso8601 time-date format-spec ansi-color tramp-loaddefs desktop frameset elec-pair recentf tree-widget wid-edit comp comp-cstr warnings comp-run comp-common display-line-numbers cl-extra help-mode use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core finder-inf annalist-autoloads buffer-terminator-autoloads cape-autoloads clojure-ts-mode-autoloads corfu-autoloads crontab-mode-autoloads cursor-undo-autoloads docker-autoloads aio-autoloads dockerfile-mode-autoloads embark-consult-autoloads consult-autoloads embark-autoloads envrc-autoloads f-autoloads go-mode-autoloads goto-chg-autoloads haskell-mode-autoloads hydra-autoloads inheritenv-autoloads lua-mode-autoloads lv-autoloads magit-autoloads pcase marginalia-autoloads markdown-mode-autoloads meow-autoloads nix-mode-autoloads magit-section-autoloads orderless-autoloads org-appear-autoloads org-drill-autoloads persist-autoloads queue-autoloads raku-mode-autoloads rx s-autoloads tablist-autoloads tempel-collection-autoloads tempel-autoloads terraform-mode-autoloads dash-autoloads hcl-mode-autoloads transient-autoloads transpose-frame-autoloads treesit-auto-autoloads undo-fu-autoloads undo-fu-session-autoloads vertico-autoloads wgrep-autoloads info with-editor-autoloads yaml-mode-autoloads zig-ts-mode-autoloads package browse-url xdg url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win touch-screen pgtk-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine 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 emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo gtk pgtk lcms2 multi-tty move-toolbar make-network-process tty-child-frames native-compile emacs) Memory information: ((conses 16 1020202 193596) (symbols 48 53352 11) (strings 32 257404 62454) (string-bytes 1 8166769) (vectors 16 99053) (vector-slots 8 1933532 133075) (floats 8 827 2083) (intervals 56 12099 2590) (buffers 992 28))[Message part 5 (text/html, inline)][image.png (image/png, attachment)][image.png (image/png, attachment)]
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.