GNU bug report logs - #47860
28.0.50; Mini buffer resize when lines are truncated regression

Previous Next

Package: emacs;

Reported by: Aaron Jensen <aaronjensen <at> gmail.com>

Date: Sun, 18 Apr 2021 01:33:02 UTC

Severity: normal

Tags: fixed

Found in version 28.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 47860 in the body.
You can then email your comments to 47860 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Sun, 18 Apr 2021 01:33:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Aaron Jensen <aaronjensen <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 18 Apr 2021 01:33:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Cc: eliz <at> gnu.org
Subject: 28.0.50; Mini buffer resize when lines are truncated regression
Date: Sat, 17 Apr 2021 20:31:19 -0500
This is a weird one, but when using selectrum and consult I noticed that
in some cases the mini buffer does not get properly resized. I tracked
it down to a recent commit:

56c42bd28d9be400e37e122b7abebcd980ea0e8b

When one of the lines in the minibuffer is truncated, automatically
resizing the mini buffer does not work properly. Specifically, the
height is not adjusted to the actual height of the content.

To reproduce, you'll need selectrum and consult installed, then, from
emacs -Q:

(recentf-mode)
;; This should be enough x's to cause truncation (so more than your
;; window width)
(setq recentf-list '("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"))
(require 'consult)
(require 'selectrum)
(selectrum-mode)
(setq completion-styles '(substring))
(consult-buffer)

I expect to see all lines in the minibuffer, including the xxxx..., but
instead I just see the first couple. Reverting the above commit fixes
the issue.

Hopefully this is enough to pinpoint it, but if it's not I can try and
find a more narrow repro (I suspect it has something to do w/ the group
headers and its dashes because other similar things in the minibuffer do
not reproduce this.


In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin20.3.0, NS appkit-2022.30 Version 11.2.3 (Build 20D91))
 of 2021-04-11 built on MacBook-Pro.local
Windowing system distributor 'Apple', version 10.3.2022
System Description:  macOS 11.2.3

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/info/emacs
 --prefix=/usr/local/Cellar/emacs-plus <at> 28/28.0.50 --with-xml2
 --with-gnutls --with-native-compilation --without-dbus
 --with-imagemagick --with-modules --with-rsvg --with-ns
 --disable-ns-self-contained 'CFLAGS=-I/usr/local/opt/gcc/include
 -I/usr/local/opt/libgccjit/include -I/usr/local/opt/gmp/include
 -I/usr/local/opt/jpeg/include' 'LDFLAGS=-L/usr/local/lib/gcc/10
 -I/usr/local/opt/gcc/include -I/usr/local/opt/libgccjit/include
 -I/usr/local/opt/gmp/include -I/usr/local/opt/jpeg/include''

Configured features:
ACL GLIB GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES
NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF
TOOLKIT_SCROLL_BARS XIM ZLIB

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

Major mode: C/*l

Minor modes in effect:
  bug-reference-prog-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  global-git-commit-mode: t
  transient-posframe-mode: t
  selectrum-prescient-mode: t
  company-posframe-mode: t
  company-prescient-mode: t
  company-tng-mode: t
  eval-sexp-fu-flash-mode: t
  eros-mode: t
  org-roam-mode: t
  speed-of-thought-mode: t
  dtrt-indent-mode: t
  electric-pair-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  winner-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: deferred
  treemacs-fringe-indicator-mode: t
  global-auto-revert-mode: t
  recentf-mode: t
  better-jumper-mode: t
  better-jumper-local-mode: t
  repeat-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-evil-collection-unimpaired-mode: t
  evil-collection-unimpaired-mode: t
  global-evil-mc-mode: t
  evil-mc-mode: t
  evil-snipe-override-mode: t
  evil-snipe-mode: t
  evil-snipe-override-local-mode: t
  evil-snipe-local-mode: t
  global-evil-matchit-mode: t
  evil-matchit-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  envrc-global-mode: t
  envrc-mode: t
  projectile-mode: t
  persp-mode: t
  which-key-posframe-mode: t
  which-key-mode: t
  mini-frame-mode: t
  gcmh-mode: t
  selectrum-mode: t
  prescient-persist-mode: t
  +popup-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  show-paren-mode: t
  save-place-mode: t
  ns-auto-titlebar-mode: t
  leader-key-leader-override-mode: t
  global-leader-key-leader-override-mode: t
  delete-selection-mode: t
  savehist-mode: t
  xterm-mouse-mode: t
  override-global-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  global-display-line-numbers-mode: t
  display-line-numbers-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
  window-divider-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  auto-fill-function: yas--auto-fill
  transient-mark-mode: t
  abbrev-mode: t

Load-path shadows:
/Users/aaronjensen/.emacs.d/straight/build/ivy/elpa hides /Users/aaronjensen/.emacs.d/straight/build/lispy/elpa
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-stan hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-stan
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-exp hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-exp
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-J hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-J
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-emacs-lisp hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-emacs-lisp
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-css hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-css
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lob hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-lob
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-irc hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol-irc
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-forth hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-forth
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-macs hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-macs
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-version hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-version
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-scheme hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-scheme
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-abc hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-abc
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-C hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-C
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-capture hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-capture
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ref hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ref
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-clojure hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-clojure
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-mouse hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-mouse
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ledger hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ledger
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-ctags hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-ctags
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-entities hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-entities
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-archive hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-archive
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-screen hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-screen
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-bibtex hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol-bibtex
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-haskell hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-haskell
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-asymptote hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-asymptote
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-table hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-table
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-eww hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol-eww
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-org hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox-org
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-num hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-num
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-plot hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-plot
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-rmail hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol-rmail
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-awk hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-awk
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-groovy hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-groovy
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-octave hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-octave
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-faces hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-faces
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-colview hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-colview
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-R hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-R
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-refile hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-refile
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-timer hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-timer
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ebnf hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ebnf
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-mobile hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-mobile
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-fortran hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-fortran
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-shell hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-shell
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-perl hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-perl
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sqlite hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-sqlite
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sed hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-sed
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-list hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-list
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ruby hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ruby
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-eval hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-eval
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-habit hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-habit
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-clock hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-clock
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-goto hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-goto
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-html hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox-html
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-src hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-src
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lisp hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-lisp
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-eshell hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol-eshell
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ditaa hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ditaa
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-pcomplete hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-pcomplete
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-lint hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-lint
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-latex hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox-latex
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sass hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-sass
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-io hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-io
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-tangle hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-tangle
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-calc hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-calc
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-java hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-java
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-icalendar hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox-icalendar
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-mhe hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol-mhe
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-attach-git hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-attach-git
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-md hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox-md
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-beamer hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox-beamer
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-element hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-element
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-protocol hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-protocol
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-mscgen hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-mscgen
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-gnuplot hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-gnuplot
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-tempo hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-tempo
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-latex hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-latex
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-w3m hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol-w3m
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-id hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-id
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-vala hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-vala
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-man hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox-man
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-feed hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-feed
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lua hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-lua
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-table hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-table
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ocaml hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ocaml
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-coq hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-coq
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-gnus hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol-gnus
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-picolisp hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-picolisp
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-indent hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-indent
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lilypond hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-lilypond
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-matlab hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-matlab
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-datetree hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-datetree
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-docview hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol-docview
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-python hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-python
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-makefile hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-makefile
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-duration hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-duration
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-agenda hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-agenda
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-dot hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-dot
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-js hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-js
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-publish hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox-publish
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-inlinetask hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-inlinetask
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-org hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-org
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-keys hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-keys
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-core hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-core
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-compat hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-compat
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-odt hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox-odt
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-info hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol-info
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-plantuml hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-plantuml
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-eshell hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-eshell
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-ascii hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox-ascii
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-loaddefs hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-loaddefs
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-hledger hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-hledger
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-maxima hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-maxima
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-bbdb hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ol-bbdb
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-macro hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-macro
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sql hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-sql
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-attach hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-attach
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-processing hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-processing
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-texinfo hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ox-texinfo
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-crypt hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-crypt
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-footnote hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-footnote
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-install hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/org-install
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-comint hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-comint
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-shen hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/org/ob-shen
/Users/aaronjensen/.emacs.d/straight/build/let-alist/let-alist hides /usr/local/Cellar/emacs-plus <at> 28/28.0.50/share/emacs/28.0.50/lisp/emacs-lisp/let-alist

Features:
(shadow mail-extr emacsbug sendmail cua-base org-clock conf-mode
semantic/ia semantic/analyze/refs semantic/db-find semantic/db-ref
semantic/senator semantic/decorate semantic/analyze semantic/sort
semantic/scope semantic/analyze/fcn semantic/ctxt semantic/format
semantic/tag-ls semantic/find git-rebase org-goto cal-move timezone
magit-extras tabify sql rng-xsd xsd-regexp rng-cmpct tramp-cache
lsp-diagnostics lsp-modeline view lsp-zig lsp-steep lsp-svelte lsp-sqls
lsp-yaml lsp-xml lsp-vimscript lsp-vhdl lsp-vetur lsp-html lsp-verilog
lsp-vala lsp-terraform lsp-tex lsp-sorbet lsp-solargraph lsp-rust lsp-rf
lsp-r lsp-purescript lsp-pyls lsp-pwsh lsp-php lsp-perl lsp-ocaml
lsp-nix lsp-nim lsp-lua lsp-kotlin lsp-json lsp-javascript lsp-haxe
lsp-groovy lsp-hack lsp-go lsp-completion lsp-gdscript lsp-fsharp
lsp-fortran lsp-eslint lsp-erlang lsp-elixir lsp-elm lsp-dockerfile
lsp-dhall lsp-d lsp-css lsp-csharp gnutls lsp-crystal lsp-cmake
lsp-clojure lsp-clangd lsp-bash lsp-angular lsp-ada lsp-actionscript
diary-lib diary-loaddefs hippie-exp vc-mtn vc-hg vc-bzr vc-src vc-sccs
vc-svn vc-cvs vc-rcs vc bug-reference evil-collection-pdf pdf-loader
pdf-tools pdf-view pdf-cache dired-aux explain-pause-mode
explain-pause-top explain-pause-log-to-socket evil-collection-restclient
restclient vterm-toggle tramp-sh evil-collection-vterm vterm term ehelp
vterm-module term/xterm xterm dumb-jump popup rng-nxml rng-valid
nxml-mode nxml-outln nxml-rap terraform-mode hcl-mode dockerfile-mode
yaml-mode json-mode json-reformat json-snatcher js cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
sh-script executable lua-mode ruby-electric ruby-refactor rspec-mode
evil-ruby-text-objects bundler inf-ruby ruby-mode smie enh-ruby-mode
eslintd-fix web-mode disp-table company-rg git-link magit-delta prettier
tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat
ls-lisp nvm iter2 lsp-ui lsp-ui-flycheck lsp-ui-doc goto-addr
lsp-ui-imenu lsp-ui-peek lsp-ui-sideline flycheck lsp-ui-util lsp-mode
lsp-protocol spinner network-stream markdown-mode org-pandoc-import
gnuplot org-journal org-crypt cal-iso deft org-drill persist tab-line
restart-emacs ace-window buffer-move rotate completing-read-xref
embark-consult embark ffap desktop frameset pdf-info tq pdf-util wgrep
sort drag-stuff speeddating evil-nerd-commenter
evil-nerd-commenter-operator evil-nerd-commenter-sdk char-fold sgml-mode
facemenu evil-visualstar evil-collection-magit treemacs-magit
magit-bookmark magit-submodule magit-obsolete 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 package url-handlers magit-repos magit-apply
magit-wip magit-log which-func magit-diff smerge-mode git-commit
log-edit pcvs-util add-log magit-core magit-autorevert magit-margin
magit-transient magit-process with-editor magit-mode transient-posframe
transient magit-git magit-section magit-utils consult-selectrum
selectrum-prescient selectrum minibuf-eldef crm company-files
company-capf company-posframe company-prescient company-tng company
eval-sexp-fu eros lispyville lispy swiper ivy ivy-faces ivy-overlay
colir lispy-inline avy etags fileloop lispy-tags semantic/db eieio-base
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local cedet ediff ediff-merg ediff-mult ediff-wind
ediff-diff ediff-help ediff-init ediff-util iedit iedit-lib vc-git
diff-mode vc-dispatcher org-appear orgonomic org-indent org-superstar
form-feed ol-eww eww xdg url-queue mm-url ol-rmail ol-mhe ol-irc ol-info
ol-gnus nnselect gnus-search eieio-opt speedbar ezimage dframe gnus-art
mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom
browse-url gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud
nnimap nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int
gnus-range message rfc822 mml mml-sec epa epg epg-config mm-decode
mm-bodies mm-encode mailabbrev gmm-utils mailheader gnus-win gnus
nnheader gnus-util rmail rmail-loaddefs mail-utils ol-docview doc-view
jka-compr image-mode exif ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ox-odt
rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse
nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda
ox-ascii ox-gfm ox-md ox-html table ox-publish ox org-download
org-attach async org-roam org-roam-link org-roam-graph xml
org-roam-doctor org-roam-dailies org-roam-capture org-roam-db
emacsql-sqlite3 emacsql emacsql-compiler org-mac-link org-capture
org-roam-completion org-roam-buffer org-roam-faces org-roam-macs
org-roam-compat org-id org-refile org-protocol org-tempo tempo
evil-org-agenda evil-org org-element avl-tree generator ob-shell org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src
ob-comint org-pcomplete org-list org-faces org-entities time-date
noutline outline hide-mode-line popup-mode-core org-version
ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs
org-loaddefs format-spec cal-menu calendar cal-loaddefs elisp-def ert
ewoc evil-collection-debug debug sotlisp skeleton dtrt-indent elec-pair
consult treemacs-bookmarks bookmark yasnippet popup-mode-hacks winner
treemacs-evil treemacs-perspective treemacs-projectile
treemacs-all-the-icons all-the-icons all-the-icons-faces data-material
data-weathericons data-octicons data-fileicons data-faicons
data-alltheicons treemacs treemacs-header-line treemacs-compatibility
treemacs-mode treemacs-interface treemacs-extensions
treemacs-mouse-interface treemacs-tags evil-collection-xref xref project
treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode
treemacs-rendering treemacs-async treemacs-workspaces treemacs-dom
treemacs-visuals treemacs-fringe-indicator treemacs-scope pulse
treemacs-faces treemacs-icons treemacs-themes treemacs-core-utils
pfuture inline hl-line ht treemacs-logging treemacs-customization
treemacs-macros autorevert filenotify rainbow-mode xterm-color color
evil-collection-helpful helpful imenu trace evil-collection-edebug
edebug backtrace info-look find-func f help-fns elisp-refs s
dired-subtree dired-hacks-utils evil-collection-dired dired
dired-loaddefs dash evil-collection-profiler profiler url-http url
url-proxy url-privacy url-expand url-methods url-history mailcap
url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr url-cookie url-domsuf url-util url-gw url-parse auth-source
eieio eieio-core eieio-loaddefs password-cache url-vars nsm rmc puny
recentf tree-widget better-jumper repeat undo-tree diff queue evil-anzu
anzu evil-collection-unimpaired evil-collection-which-key
evil-collection-ibuffer evil-collection-help evil-collection-custom
evil-collection-process-menu evil-collection annalist evil-mc
evil-mc-command-execute evil-mc-command-record evil-mc-cursor-make
evil-mc-region evil-mc-cursor-state evil-mc-undo evil-mc-vars
evil-mc-known-commands evil-mc-common evil-numbers evil-snipe
evil-matchit evil-matchit-sdk evil-surround cus-edit cus-start cus-load
wid-edit evil evil-integration evil-maps evil-commands reveal flyspell
ispell evil-jumps evil-command-window evil-types evil-search evil-ex
shell pcomplete evil-macros evil-repeat evil-states evil-core
evil-common windmove calc calc-loaddefs calc-macs rect evil-digraphs
evil-vars envrc inheritenv json map persp-projectile projectile grep
compile text-property-search comint ansi-color ibuf-ext ibuffer
ibuffer-loaddefs perspective which-key-posframe posframe which-key
advice thingatpt ido mini-frame server gcmh gcmh-autoloads
explain-pause-mode-autoloads pdf-tools-autoloads autoload radix-tree
lisp-mnt tablist-autoloads restclient-autoloads vterm-toggle-autoloads
vterm-autoloads dumb-jump-autoloads popup-autoloads
terraform-mode-autoloads hcl-mode-autoloads dockerfile-mode-autoloads
yaml-mode-autoloads json-mode-autoloads json-snatcher-autoloads
json-reformat-autoloads lua-mode-autoloads ruby-electric-autoloads
bundler-autoloads inf-ruby-autoloads ruby-refactor-autoloads
rspec-mode-autoloads evil-ruby-text-objects-autoloads
enh-ruby-mode-autoloads sotlisp-autoloads elisp-def-autoloads
lispyville-autoloads lispy-autoloads zoutline-autoloads
counsel-autoloads swiper-autoloads ivy-autoloads iedit-autoloads
eros-autoloads eval-sexp-fu-autoloads eslintd-fix-autoloads
web-mode-autoloads company-rg-autoloads company-posframe-autoloads
company-prescient-autoloads company-autoloads git-link-autoloads
magit-delta-autoloads xterm-color-autoloads prettier-autoloads
nvm-autoloads iter2-autoloads flycheck-autoloads let-alist-autoloads
lsp-ui-autoloads lsp-mode-autoloads markdown-mode-autoloads
spinner-autoloads org-superstar-autoloads ox-gfm-autoloads
org-pandoc-import-autoloads gnuplot-autoloads org-download-autoloads
async-autoloads org-journal-autoloads deft-autoloads org-roam-autoloads
emacsql-sqlite3-autoloads emacsql-autoloads orgonomic-autoloads
org-drill-autoloads persist-autoloads org-appear-autoloads
evil-org-autoloads transient-posframe-autoloads restart-emacs-autoloads
better-jumper-autoloads hydra ring lv buffer-move-autoloads
rotate-autoloads completing-read-xref-autoloads mini-frame-autoloads
embark-consult-autoloads embark-autoloads consult-autoloads
selectrum-prescient-autoloads selectrum-autoloads
persp-projectile-autoloads prescient prescient-autoloads
which-key-posframe-autoloads which-key-autoloads popup-mode
popup-mode-settings popup-mode-autoloads hide-mode-line-autoloads
wgrep-autoloads yasnippet-autoloads form-feed-autoloads
drag-stuff-autoloads dtrt-indent-autoloads ws-butler ws-butler-autoloads
evil-anzu-autoloads anzu-autoloads evil-collection-autoloads
annalist-autoloads evil-mc-autoloads evil-numbers-autoloads
speeddating-autoloads evil-snipe-autoloads evil-matchit-autoloads
evil-nerd-commenter-autoloads evil-visualstar-autoloads
evil-surround-autoloads pp undo-tree-autoloads queue-autoloads paren
treemacs-perspective-autoloads perspective-autoloads
treemacs-magit-autoloads magit-autoloads git-commit-autoloads
with-editor-autoloads transient-autoloads
treemacs-all-the-icons-autoloads all-the-icons-autoloads
treemacs-projectile-autoloads treemacs-evil-autoloads evil-autoloads
goto-chg-autoloads pcase treemacs-autoloads cfrs-autoloads ht-autoloads
pfuture-autoloads ace-window-autoloads avy-autoloads
projectile-autoloads pkg-info-autoloads epl-autoloads saveplace
rainbow-mode-autoloads posframe-autoloads ns-auto-titlebar
ns-auto-titlebar-autoloads nano nano-modeline memoize face-remap
nano-theme nano-faces nano-theme-light nano-base-colors nano-layout
nano-autoloads memoize-autoloads envrc-autoloads inheritenv-autoloads
compdef derived compdef-autoloads helpful-autoloads elisp-refs-autoloads
f-autoloads s-autoloads use-package-bind-key dired-subtree-autoloads
dired-hacks-utils-autoloads dash-autoloads hydra-autoloads lv-autoloads
leader-key bind-map leader-key-autoloads bind-map-autoloads delsel
savehist xt-mouse edmacro kmacro no-littering no-littering-autoloads
finder-inf bind-key easy-mmode use-package-core use-package-autoloads
bind-key-autoloads straight-autoloads info straight display-line-numbers
comp comp-cstr warnings subr-x rx cl-seq cl-macs cl-extra help-mode seq
byte-opt gv cl-loaddefs cl-lib bytecomp byte-compile cconv iso-transl
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode elisp-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 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 cl-preloaded nadvice button loaddefs faces
cus-face macroexp files window text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process
nativecomp emacs)

Memory information:
((conses 16 3314864 582845)
 (symbols 48 92802 4)
 (strings 32 364412 115375)
 (string-bytes 1 14259477)
 (vectors 16 310952)
 (vector-slots 8 6522884 139043)
 (floats 8 2687 2734)
 (intervals 56 175710 3592)
 (buffers 992 360))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Sun, 18 Apr 2021 06:58:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: bug-gnu-emacs <at> gnu.org
Subject: Re: 28.0.50; Mini buffer resize when lines are truncated regression
Date: Sun, 18 Apr 2021 09:57:09 +0300
> From: Aaron Jensen <aaronjensen <at> gmail.com>
> CC: eliz <at> gnu.org
> Date: Sat, 17 Apr 2021 20:31:19 -0500
> 
> This is a weird one, but when using selectrum and consult I noticed that
> in some cases the mini buffer does not get properly resized. I tracked
> it down to a recent commit:
> 
> 56c42bd28d9be400e37e122b7abebcd980ea0e8b
> 
> When one of the lines in the minibuffer is truncated, automatically
> resizing the mini buffer does not work properly. Specifically, the
> height is not adjusted to the actual height of the content.
> 
> To reproduce, you'll need selectrum and consult installed, then, from
> emacs -Q:
> 
> (recentf-mode)
> ;; This should be enough x's to cause truncation (so more than your
> ;; window width)
> (setq recentf-list '("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"))
> (require 'consult)
> (require 'selectrum)
> (selectrum-mode)
> (setq completion-styles '(substring))
> (consult-buffer)
> 
> I expect to see all lines in the minibuffer, including the xxxx..., but
> instead I just see the first couple. Reverting the above commit fixes
> the issue.
> 
> Hopefully this is enough to pinpoint it, but if it's not I can try and
> find a more narrow repro

Yes, please do.  I'd very much prefer to see a recipe that doesn't
involve 3rd-party packages which specifically are aimed at changing
how completion works in the minibuffer.  So, please, no consult and
no selectrum.  Okay?

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Sun, 18 Apr 2021 17:47:01 GMT) Full text and rfc822 format available.

Message #11 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: bug-gnu-emacs <at> gnu.org
Subject: Re: 28.0.50; Mini buffer resize when lines are truncated regression
Date: Sun, 18 Apr 2021 12:45:48 -0500
On Sun, Apr 18, 2021 at 1:57 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> Yes, please do.  I'd very much prefer to see a recipe that doesn't
> involve 3rd-party packages which specifically are aimed at changing
> how completion works in the minibuffer.  So, please, no consult and
> no selectrum.  Okay?

I haven't been able to get selectrum out of the mix yet. It's doing
quite a bit and I don't understand minibuffer manipulation well enough
to narrow the repro just yet. I did get rid of consult, so now the
repro is just:

(require 'selectrum)
(selectrum-mode)
(setq completion-styles '(substring))
(selectrum-completing-read
 "test: "
 '("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
   "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"))

It may be a bit before I'm able to narrow it down any further. Do you
have any sense of how that commit could possibly affect the automatic
sizing of the minibuffer?

Thanks,

Aaron




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Sun, 18 Apr 2021 18:04:01 GMT) Full text and rfc822 format available.

Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: bug-gnu-emacs <at> gnu.org
Subject: Re: 28.0.50; Mini buffer resize when lines are truncated regression
Date: Sun, 18 Apr 2021 21:03:00 +0300
> From: Aaron Jensen <aaronjensen <at> gmail.com>
> Date: Sun, 18 Apr 2021 12:45:48 -0500
> Cc: bug-gnu-emacs <at> gnu.org
> 
> On Sun, Apr 18, 2021 at 1:57 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
> >
> > Yes, please do.  I'd very much prefer to see a recipe that doesn't
> > involve 3rd-party packages which specifically are aimed at changing
> > how completion works in the minibuffer.  So, please, no consult and
> > no selectrum.  Okay?
> 
> I haven't been able to get selectrum out of the mix yet.

Too bad.

> Do you have any sense of how that commit could possibly affect the
> automatic sizing of the minibuffer?

Not sure what kind of answer you expected here.  That change affects
Emacs display behavior when lines are truncated, and it could indeed
affe ct the mini-window resizing because of that.  That change was
done to fix a bug, so reverting it is out of the question.  We need to
understand how the change affects the use case you present.  It could
be that there's another display bug, or it could be that the package
in question itself has a bug that just went unnoticed because of the
bug fixed by that commit.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 00:17:02 GMT) Full text and rfc822 format available.

Message #17 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: bug-gnu-emacs <at> gnu.org
Subject: Re: 28.0.50; Mini buffer resize when lines are truncated regression
Date: Sun, 18 Apr 2021 19:15:55 -0500
On Sun, Apr 18, 2021 at 1:03 PM Eli Zaretskii <eliz <at> gnu.org> wrote:
> > I haven't been able to get selectrum out of the mix yet.
>
> Too bad.

Okay, narrowed it down:

(setq hook
      (lambda nil
        (remove-hook 'minibuffer-setup-hook hook)
        (setq-local overlay
                    (make-overlay (point) (point) nil
                                  'front-advance 'rear-advance))
        (setq-local truncate-lines t)
        (setq minibuf-after-string
"a\nbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\nccc")
        ;; (setq minibuf-after-string "a\nbbbbbbb\nccc")
        (move-overlay overlay (point-max) (point-max))
        (overlay-put overlay
                     'after-string minibuf-after-string)))

(unwind-protect
    (progn
      (add-hook 'minibuffer-setup-hook hook t)
      (read-from-minibuffer ""))
  (remove-hook 'minibuffer-setup-hook hook))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 12:41:02 GMT) Full text and rfc822 format available.

Message #20 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Gregory Heytings <gregory <at> heytings.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: 47860 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#47860: 28.0.50; Mini buffer resize when lines are truncated
 regression
Date: Mon, 19 Apr 2021 12:40:12 +0000
>
> Okay, narrowed it down:
>
> (setq hook
>      (lambda nil
>        (remove-hook 'minibuffer-setup-hook hook)
>        (setq-local overlay
>                    (make-overlay (point) (point) nil
>                                  'front-advance 'rear-advance))
>        (setq-local truncate-lines t)
>        (setq minibuf-after-string
> "a\nbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\nccc")
>        ;; (setq minibuf-after-string "a\nbbbbbbb\nccc")
>        (move-overlay overlay (point-max) (point-max))
>        (overlay-put overlay
>                     'after-string minibuf-after-string)))
>
> (unwind-protect
>    (progn
>      (add-hook 'minibuffer-setup-hook hook t)
>      (read-from-minibuffer ""))
>  (remove-hook 'minibuffer-setup-hook hook))
>

Thanks.  But what do you expect this code to do?  I tested it, and for 
Emacs 24 to 27 you see only "a" in the minibuffer.  After commit 
56c42bd28d, you see two lines, "a" and "bbb...".




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 13:11:02 GMT) Full text and rfc822 format available.

Message #23 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gregory Heytings <gregory <at> heytings.org>
Cc: 47860 <at> debbugs.gnu.org, aaronjensen <at> gmail.com
Subject: Re: bug#47860: 28.0.50; Mini buffer resize when lines are truncated
 regression
Date: Mon, 19 Apr 2021 16:10:26 +0300
> Date: Mon, 19 Apr 2021 12:40:12 +0000
> From: Gregory Heytings <gregory <at> heytings.org>
> cc: Eli Zaretskii <eliz <at> gnu.org>, 47860 <at> debbugs.gnu.org
> 
> Thanks.  But what do you expect this code to do?  I tested it, and for 
> Emacs 24 to 27 you see only "a" in the minibuffer.  After commit 
> 56c42bd28d, you see two lines, "a" and "bbb...".

Exactly the questions to which I would like to know the answers,
thanks.

IOW, given that the current code does "somewhat" better than
everything we had before, what exactly is the problem you (Aaron) see
with the offending commit that you call it "regression"?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 14:04:02 GMT) Full text and rfc822 format available.

Message #26 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 47860 <at> debbugs.gnu.org, Gregory Heytings <gregory <at> heytings.org>
Subject: Re: bug#47860: 28.0.50;
 Mini buffer resize when lines are truncated regression
Date: Mon, 19 Apr 2021 09:02:24 -0500
 On Mon, Apr 19, 2021 at 8:10 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> > Date: Mon, 19 Apr 2021 12:40:12 +0000
> > From: Gregory Heytings <gregory <at> heytings.org>
> > cc: Eli Zaretskii <eliz <at> gnu.org>, 47860 <at> debbugs.gnu.org
> >
> > Thanks.  But what do you expect this code to do?  I tested it, and for
> > Emacs 24 to 27 you see only "a" in the minibuffer.  After commit
> > 56c42bd28d, you see two lines, "a" and "bbb...".
>
> Exactly the questions to which I would like to know the answers,
> thanks.
>
> IOW, given that the current code does "somewhat" better than
> everything we had before, what exactly is the problem you (Aaron) see
> with the offending commit that you call it "regression"?

I have not tested with Emacs 27. I have, however, tested with Emacs 28
with and without the commit I mentioned.

With the commit reverted, I see this:

https://cln.sh/sNpBcb

Without it reverted, I see this:

https://cln.sh/RtPEie

What I expect is for the minibuffer to be sized as the first example
and not the second.

I have not tested my repro on Emacs 27, so it's interesting to hear
that only the first line is displayed. However,

This is what it looks like when using selectrum in Emacs 27:

https://user-images.githubusercontent.com/8199224/114367956-3f4a8e00-9b7d-11eb-8307-5372fb48de63.png

and Emacs 28:

https://user-images.githubusercontent.com/8588/114411541-e1fd0f80-9b71-11eb-8ba3-5bf1437a7806.png

In Emacs 28, the minibuffer is not resized to be large enough to see
all candidates. It also never scrolls, so it's difficult to pick any
candidate that is not visible.

I do know that Selectrum does some vertical resizing after adding text
to the minibuffer, so that may be what causes Emacs 27 to look right.
It may also be that that vertical resizing now fails in Emacs 28 for
some reason. I did not need the resizing code to reproduce what
appears to be *an* issue, but it could very well not be the exact
issue I'm seeing in Selectrum if it is indeed the resizing code that's
not working properly.

I'll spend a little time adding the resize code in and testing in
Emacs 27 to see if that helps narrow down to the exact issue I'm
seeing on selectrum.

Thanks,

Aaron




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 14:04:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 14:25:02 GMT) Full text and rfc822 format available.

Message #32 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 47860 <at> debbugs.gnu.org, Gregory Heytings <gregory <at> heytings.org>
Subject: Re: bug#47860: 28.0.50;
 Mini buffer resize when lines are truncated regression
Date: Mon, 19 Apr 2021 09:24:19 -0500
On Mon, Apr 19, 2021 at 9:02 AM Aaron Jensen <aaronjensen <at> gmail.com> wrote:
> I have not tested with Emacs 27. I have, however, tested with Emacs 28
> with and without the commit I mentioned.
>

I forgot to mention that when I reverted the commit I got a conflict
so I effectively undid another commit in the same area, so my diff
looked like this:

       if ((op & MOVE_TO_POS) != 0
-          && (IT_CHARPOS (*it) > to_charpos
-          || (IT_CHARPOS (*it) == to_charpos
-              && to_charpos == ZV
-              && (ZV_BYTE <= 1 || FETCH_BYTE (ZV_BYTE - 1) != '\n'))))
+          && IT_CHARPOS (*it) > to_charpos)
         {




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 14:45:01 GMT) Full text and rfc822 format available.

Message #35 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: 47860 <at> debbugs.gnu.org, gregory <at> heytings.org
Subject: Re: bug#47860: 28.0.50;
 Mini buffer resize when lines are truncated regression
Date: Mon, 19 Apr 2021 17:43:50 +0300
> From: Aaron Jensen <aaronjensen <at> gmail.com>
> Date: Mon, 19 Apr 2021 09:24:19 -0500
> Cc: Gregory Heytings <gregory <at> heytings.org>, 47860 <at> debbugs.gnu.org
> 
> On Mon, Apr 19, 2021 at 9:02 AM Aaron Jensen <aaronjensen <at> gmail.com> wrote:
> > I have not tested with Emacs 27. I have, however, tested with Emacs 28
> > with and without the commit I mentioned.
> >
> 
> I forgot to mention that when I reverted the commit I got a conflict
> so I effectively undid another commit in the same area, so my diff
> looked like this:
> 
>        if ((op & MOVE_TO_POS) != 0
> -          && (IT_CHARPOS (*it) > to_charpos
> -          || (IT_CHARPOS (*it) == to_charpos
> -              && to_charpos == ZV
> -              && (ZV_BYTE <= 1 || FETCH_BYTE (ZV_BYTE - 1) != '\n'))))
> +          && IT_CHARPOS (*it) > to_charpos)
>          {

This basically goes back to what we had in all versions up to and
including 27.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 14:49:02 GMT) Full text and rfc822 format available.

Message #38 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Gregory Heytings <gregory <at> heytings.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: 47860 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#47860: 28.0.50; Mini buffer resize when lines are truncated
 regression
Date: Mon, 19 Apr 2021 14:48:56 +0000
>
> I have not tested with Emacs 27. I have, however, tested with Emacs 28 
> with and without the commit I mentioned.
>
> With the commit reverted, I see this:
>
> https://cln.sh/sNpBcb
>
> Without it reverted, I see this:
>
> https://cln.sh/RtPEie
>

This is not what I see, nor what Eli sees.  We see the second screenshot 
after commit 56c42bd28d, and only "a" before commit 56c42bd28d.  Do you 
really see that with emacs -Q and your recipe?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 14:50:02 GMT) Full text and rfc822 format available.

Message #41 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: 47860 <at> debbugs.gnu.org, gregory <at> heytings.org
Subject: Re: bug#47860: 28.0.50;
 Mini buffer resize when lines are truncated regression
Date: Mon, 19 Apr 2021 17:48:40 +0300
> From: Aaron Jensen <aaronjensen <at> gmail.com>
> Date: Mon, 19 Apr 2021 09:02:24 -0500
> Cc: Gregory Heytings <gregory <at> heytings.org>, 47860 <at> debbugs.gnu.org
> 
> > IOW, given that the current code does "somewhat" better than
> > everything we had before, what exactly is the problem you (Aaron) see
> > with the offending commit that you call it "regression"?
> 
> I have not tested with Emacs 27.

Not just 27, 27 and all the previous versions.

> I have, however, tested with Emacs 28
> with and without the commit I mentioned.
> 
> With the commit reverted, I see this:
> 
> https://cln.sh/sNpBcb
> 
> Without it reverted, I see this:
> 
> https://cln.sh/RtPEie
> 
> What I expect is for the minibuffer to be sized as the first example
> and not the second.

So you have a package (or two?) that work(s) only with an unreleased
codebase of Emacs 28 before those two commits were installed?  How
do those packages work in Emacs 27 and previous versions?

> This is what it looks like when using selectrum in Emacs 27:
> 
> https://user-images.githubusercontent.com/8199224/114367956-3f4a8e00-9b7d-11eb-8307-5372fb48de63.png
> 
> and Emacs 28:
> 
> https://user-images.githubusercontent.com/8588/114411541-e1fd0f80-9b71-11eb-8ba3-5bf1437a7806.png

That looks like an entirely different phenomenon than the one
presented by the minimal reproducer.  Are you sure that the reproducer
actually shows the same problem?

Bottom line, I'm now even more confused regarding the problem and the
effect of the 2 commits you reverted.  Reverting them should get you
back to what we had in Emacs 27 and before, but you say it doesn't?
And the effect on selectrum is very different than the effect on the
reproducer you posted.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 15:15:01 GMT) Full text and rfc822 format available.

Message #44 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 47860 <at> debbugs.gnu.org, Gregory Heytings <gregory <at> heytings.org>
Subject: Re: bug#47860: 28.0.50;
 Mini buffer resize when lines are truncated regression
Date: Mon, 19 Apr 2021 10:13:51 -0500
On Mon, Apr 19, 2021 at 9:48 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
> So you have a package (or two?) that work(s) only with an unreleased
> codebase of Emacs 28 before those two commits were installed?  How
> do those packages work in Emacs 27 and previous versions?

No, they work in Emacs 27 and 28 before 56c42bd28d was installed. As I
said, selectrum must be doing something else on top of what I narrowed
my repro down that triggers the appropriate resize.

>
> > This is what it looks like when using selectrum in Emacs 27:
> >
> > https://user-images.githubusercontent.com/8199224/114367956-3f4a8e00-9b7d-11eb-8307-5372fb48de63.png
> >
> > and Emacs 28:
> >
> > https://user-images.githubusercontent.com/8588/114411541-e1fd0f80-9b71-11eb-8ba3-5bf1437a7806.png
>
> That looks like an entirely different phenomenon than the one
> presented by the minimal reproducer.  Are you sure that the reproducer
> actually shows the same problem?

Both show a failure to resize properly in correlation with a truncated
line. I now believe it's unlikely to be the exact same issue given the
behavior on Emacs 27 w/ my repro. Until I've successfully narrowed
down something that reproduces on Emacs 27, I can't say for certain
that they're related.

> Bottom line, I'm now even more confused regarding the problem and the
> effect of the 2 commits you reverted.

Yeah, well, I'm confused as well. I'm trying to narrow down a repro in
multiple codebases I don't fully understand that points to a commit
that I do not understand at all. I'm feeling my way through the dark
here so I appreciate your patience.

> Reverting them should get you
> back to what we had in Emacs 27 and before, but you say it doesn't?

That's right, it does not, however resetting to 56c42bd28d^ does. Said
plainly: there's a difference in my repro between 56c42bd28d^ and
master + a revert of 56c42bd28d (and the section associated commit
that affected that same area of the code).

> And the effect on selectrum is very different than the effect on the
> reproducer you posted.

In my naivete they looked the same: a failure to resize the minibuffer
vertically to the appropriate size. There's more nuance to this though
and I'll work on a clarifying repro.

If you're willing to install selectrum, it would be helpful if you
could at least verify the behavior I'm seeing so that I do not think
I've gone mad. This reproduces the problem for me on master, but not
on emacs-27. Specifically, on emacs-27, I see both aaaa... and bbbb...
visible in the minibuffer, but on master, I only see aaa....

(require 'selectrum)

(let ((prompt "test: ")
      (candidates '("aaa"
                    "bbb"))
      (candidates
'("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")))
  (let* ((buf (current-buffer))
         default
         (res
          (let
              ((hook
                (make-symbol "selectrum--minibuffer-setup")))
            (fset hook
                  (lambda nil
                    (remove-hook 'minibuffer-setup-hook hook)
                    (setq-local selectrum--last-buffer buf)
                    ;; Track globally and in last buffer.
                    (setq-default selectrum--last-command this-command)
                    (setq-default selectrum--last-prefix-arg current-prefix-arg)
                    (when (buffer-live-p selectrum--last-buffer)
                      (with-current-buffer selectrum--last-buffer
                        (setq-local selectrum--last-command this-command)
                        (setq-local selectrum--last-prefix-arg
current-prefix-arg)))
                    (setq-local auto-hscroll-mode nil)
                    (setq-local selectrum--is-initializing t)
                    (setq-local selectrum--candidates-overlay
                                (make-overlay (point) (point) nil
                                              'front-advance 'rear-advance))
                    (setq-local selectrum--count-overlay
                                (make-overlay (point-min) (point-min)))
                    ;; If metadata specifies a custom sort function use it as
                    ;; `selectrum-preprocess-candidates-function' for
this session.
                    (when-let ((sortf (selectrum--get-meta
'display-sort-function)))
                      (setq-local
selectrum-preprocess-candidates-function sortf))
                    (if (not (functionp candidates))
                        (selectrum--preprocess candidates)
                      (setq-local selectrum--preprocessed-candidates nil)
                      (setq-local
selectrum--dynamic-candidates-function candidates))
                    (let ((default (or (car-safe default) default)))
                      (setq-local selectrum--default-candidate
                                  (if (and default (symbolp default))
                                      (symbol-name default)
                                    default)))
                    (setq-default selectrum--default-candidate
                                  selectrum--default-candidate)
                    ;; Make sure to trigger an "user input changed"
event, so that
                    ;; candidate refinement happens in
`post-command-hook' and an index
                    ;; is assigned.
                    (setq-local selectrum--previous-input-string nil)
                    (setq-local selectrum--line-height (line-pixel-height))
                    (add-hook 'post-command-hook #'selectrum--update
nil 'local)))
            (unwind-protect
                (progn
                  (add-hook 'minibuffer-setup-hook hook t)
                  (read-from-minibuffer prompt))
              (remove-hook 'minibuffer-setup-hook hook)))))))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 16:20:02 GMT) Full text and rfc822 format available.

Message #47 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 47860 <at> debbugs.gnu.org, Gregory Heytings <gregory <at> heytings.org>
Subject: Re: bug#47860: 28.0.50;
 Mini buffer resize when lines are truncated regression
Date: Mon, 19 Apr 2021 11:19:06 -0500
On Mon, Apr 19, 2021 at 10:13 AM Aaron Jensen <aaronjensen <at> gmail.com> wrote:
>
> If you're willing to install selectrum, it would be helpful if you
> could at least verify the behavior I'm seeing so that I do not think
> I've gone mad. This reproduces the problem for me on master, but not
> on emacs-27. Specifically, on emacs-27, I see both aaaa... and bbbb...
> visible in the minibuffer, but on master, I only see aaa....

Okay, here's a selectrum-free repro that, on emacs 27 shows all 3
lines and on emacs 28 shows only two lines:

(defun foo--set-window-height (window &optional height)
  (let ((dheight (or height (cdr (window-text-pixel-size window))))
        (wheight (window-pixel-height window))
        (window-resize-pixelwise t))
    (window-resize
     window (- dheight wheight) nil nil 'pixelwise)))

(setq hook
      (lambda nil
        (remove-hook 'minibuffer-setup-hook hook)
        (setq-local auto-hscroll-mode nil)
        (setq-local foo--candidates-overlay
                    (make-overlay (point) (point) nil
                                  'front-advance 'rear-advance))
        (setq-local truncate-lines t)
        (setq minibuf-after-string "
\naaa\nbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\ncccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc")
        (move-overlay foo--candidates-overlay
                      (point-max) (point-max))
        (put-text-property 0 1 'cursor t minibuf-after-string)
        (overlay-put foo--candidates-overlay
                     'after-string minibuf-after-string)
        (foo--set-window-height (active-minibuffer-window))))

(unwind-protect
    (progn
      (add-hook 'minibuffer-setup-hook hook t)
      (read-from-minibuffer "test: "))
  (remove-hook 'minibuffer-setup-hook hook))

Screenshot from 27:

https://cln.sh/G5j1zB

Screenshot from 28:

https://cln.sh/2QOHD0

Please let me know if you can repro as I've demonstrated




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 17:16:01 GMT) Full text and rfc822 format available.

Message #50 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: 47860 <at> debbugs.gnu.org, gregory <at> heytings.org
Subject: Re: bug#47860: 28.0.50;
 Mini buffer resize when lines are truncated regression
Date: Mon, 19 Apr 2021 20:15:15 +0300
> From: Aaron Jensen <aaronjensen <at> gmail.com>
> Date: Mon, 19 Apr 2021 11:19:06 -0500
> Cc: Gregory Heytings <gregory <at> heytings.org>, 47860 <at> debbugs.gnu.org
> 
> Okay, here's a selectrum-free repro that, on emacs 27 shows all 3
> lines and on emacs 28 shows only two lines:
> 
> (defun foo--set-window-height (window &optional height)
>   (let ((dheight (or height (cdr (window-text-pixel-size window))))
>         (wheight (window-pixel-height window))
>         (window-resize-pixelwise t))
>     (window-resize
>      window (- dheight wheight) nil nil 'pixelwise)))

Yes, that's the problem: selectrum doesn't rely on the automatic
mini-window resize, it resizes the mini-window manually!  And it
relies on window-text-pixel-size to tell how high should the
mini-window become.

So the root cause is in window-text-pixel-size when this crazy mix of
overlays is used.  Will take a look when I have time.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Mon, 19 Apr 2021 17:42:01 GMT) Full text and rfc822 format available.

Message #53 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: aaronjensen <at> gmail.com
Cc: 47860 <at> debbugs.gnu.org, gregory <at> heytings.org
Subject: Re: bug#47860: 28.0.50;
 Mini buffer resize when lines are truncated regression
Date: Mon, 19 Apr 2021 20:40:40 +0300
> Date: Mon, 19 Apr 2021 20:15:15 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: 47860 <at> debbugs.gnu.org, gregory <at> heytings.org
> 
> So the root cause is in window-text-pixel-size when this crazy mix of
> overlays is used.  Will take a look when I have time.

And here's a much simpler recipe:

  (progn
    (with-current-buffer (get-buffer-create "foo")
      (insert "test: ")
      (overlay-put (make-overlay (point-max) (point-max))
		   'after-string "
  \naaa\nbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\ncccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc")
      (setq-local truncate-lines t))
    (switch-to-buffer "foo")
    (window-text-pixel-size))

The result indicates that the buffer has only 4 screen lines, whereas
it actually has 5.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Thu, 22 Apr 2021 11:08:01 GMT) Full text and rfc822 format available.

Message #56 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: aaronjensen <at> gmail.com
Cc: 47860 <at> debbugs.gnu.org, gregory <at> heytings.org
Subject: Re: bug#47860: 28.0.50;
 Mini buffer resize when lines are truncated regression
Date: Thu, 22 Apr 2021 14:07:01 +0300
> Date: Mon, 19 Apr 2021 20:40:40 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: 47860 <at> debbugs.gnu.org, gregory <at> heytings.org
> 
>   (progn
>     (with-current-buffer (get-buffer-create "foo")
>       (insert "test: ")
>       (overlay-put (make-overlay (point-max) (point-max))
> 		   'after-string "
>   \naaa\nbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\ncccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc")
>       (setq-local truncate-lines t))
>     (switch-to-buffer "foo")
>     (window-text-pixel-size))
> 
> The result indicates that the buffer has only 4 screen lines, whereas
> it actually has 5.

I hope I fixed this now on the master branch, please test.




Added tag(s) fixed. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Thu, 22 Apr 2021 13:53:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47860; Package emacs. (Thu, 22 Apr 2021 16:02:01 GMT) Full text and rfc822 format available.

Message #61 received at 47860 <at> debbugs.gnu.org (full text, mbox):

From: Aaron Jensen <aaronjensen <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 47860 <at> debbugs.gnu.org, Gregory Heytings <gregory <at> heytings.org>
Subject: Re: bug#47860: 28.0.50;
 Mini buffer resize when lines are truncated regression
Date: Thu, 22 Apr 2021 11:00:45 -0500
On Thu, Apr 22, 2021 at 6:07 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> I hope I fixed this now on the master branch, please test.

It looks to work for me, thank you!




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Thu, 22 Apr 2021 16:51:02 GMT) Full text and rfc822 format available.

Notification sent to Aaron Jensen <aaronjensen <at> gmail.com>:
bug acknowledged by developer. (Thu, 22 Apr 2021 16:51:03 GMT) Full text and rfc822 format available.

Message #66 received at 47860-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Aaron Jensen <aaronjensen <at> gmail.com>
Cc: 47860-done <at> debbugs.gnu.org, gregory <at> heytings.org
Subject: Re: bug#47860: 28.0.50;
 Mini buffer resize when lines are truncated regression
Date: Thu, 22 Apr 2021 19:50:22 +0300
> From: Aaron Jensen <aaronjensen <at> gmail.com>
> Date: Thu, 22 Apr 2021 11:00:45 -0500
> Cc: 47860 <at> debbugs.gnu.org, Gregory Heytings <gregory <at> heytings.org>
> 
> On Thu, Apr 22, 2021 at 6:07 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
> >
> > I hope I fixed this now on the master branch, please test.
> 
> It looks to work for me, thank you!

OK, I'm therefore closing the bug.  Thanks for testing the solution.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 21 May 2021 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 334 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.