emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#64855: closed (30.0.50; ERC 5.6: Make scrolltobottom less erratic)


From: GNU bug Tracking System
Subject: bug#64855: closed (30.0.50; ERC 5.6: Make scrolltobottom less erratic)
Date: Tue, 19 Sep 2023 13:40:02 +0000

Your message dated Tue, 19 Sep 2023 06:38:52 -0700
with message-id <87zg1icmfn.fsf@neverwas.me>
and subject line Re: bug#64855: 30.0.50; ERC 5.6: Make scrolltobottom less 
erratic
has caused the debbugs.gnu.org bug report #64855,
regarding 30.0.50; ERC 5.6: Make scrolltobottom less erratic
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
64855: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64855
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: 30.0.50; ERC 5.6: Make scrolltobottom less erratic Date: Tue, 25 Jul 2023 06:40:24 -0700 User-agent: Gnus/5.13 (Gnus v5.13)
Tags: patch

A minor bug fix involving the `scrolltobottom' module (and originally
lumped in with the mostly unrelated bug#63595) eventually materialized
on HEAD as [1]. While it did fix the bug, it didn't really address any
of the related foundational issues that have haunted `scrolltobottom'
since the beginning. The attached patch is meant to make the module more
predictable and consistent overall, while specifically addressing

  - the effect only being applied in the selected window

  - the effect not responding to changes in window size

  - the gradual scrolling of point toward the centermost line when
    away from the prompt (on graphical displays)

People miffed by this module's rough edges are encouraged to try these
changes and give feedback.

Thanks.


[1] commit e51e43b7046b56c58310854182a1d589ee4c770c
    Author: F. Jason Park <jp@neverwas.me>
    Date:   Wed May 17 19:48:02 2023 -0700

      Fix buffer-mismatch bug in erc-scroll-to-bottom

      * lisp/erc/erc-goodies.el (erc-scroll-to-bottom): Only
      `recenter' when the selected window's buffer is current.
      Previously, the module `scrolltobottom' signaled an "Error in
      `post-command-hook'" when a user clicked a channel indicator in
      the mode line from a window showing another ERC buffer.
    [...]
      (Bug#63595)

    lisp/erc/erc-goodies.el | 1 +
    lisp/erc/erc-track.el   | 9 ++++++++-
    2 files changed, 9 insertions(+), 1 deletion(-)


In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.17.6) of 2023-07-25 built on localhost
Repository revision: 89558533683a100ca7946c4a35bf4ef50463efef
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Fedora Linux 37 (Workstation Edition)

Configured using:
 'configure --enable-check-lisp-object-type --enable-checking=yes,glyphs
 'CFLAGS=-O0 -g3'
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-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:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util text-property-search time-date mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils erc auth-source cl-seq
eieio eieio-core cl-macs password-cache json subr-x map format-spec
cl-loaddefs cl-lib erc-backend erc-networks byte-opt gv bytecomp
byte-compile erc-common erc-compat erc-loaddefs rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode 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 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 lcms2
dynamic-setting system-font-setting font-render-setting cairo gtk
x-toolkit xinput2 x multi-tty move-toolbar make-network-process emacs)

Memory information:
((conses 16 64796 9162) (symbols 48 8637 0) (strings 32 23386 1972)
 (string-bytes 1 680274) (vectors 16 15042)
 (vector-slots 8 207499 8948) (floats 8 24 41) (intervals 56 225 0)
 (buffers 976 10))

Attachment: 0001-5.6-Consider-all-windows-in-erc-scrolltobottom-mode.patch
Description: Text Data


--- End Message ---
--- Begin Message --- Subject: Re: bug#64855: 30.0.50; ERC 5.6: Make scrolltobottom less erratic Date: Tue, 19 Sep 2023 06:38:52 -0700 User-agent: Gnus/5.13 (Gnus v5.13)
"J.P." <jp@neverwas.me> writes:

> But it comes with a few known problems.
>
> The first can be observed during the rapid insertion of newly arriving
> messages, like you get with history playback or large swaths of help
> text. Basically, when point is away from the prompt and you issue a
> command that changes `window-start' significantly (e.g., M-<), point
> hardly moves at all, maybe half a screenful at most.
>
> Another issue is only noticeable if you have code running that
> suppresses message insertion after prompt submissions (see bug#49860's
> `echo-message' for one example). Basically, if you've got
> `erc-scrolltobottom-relaxed' enabled and you stare long enough, you'll
> notice that the prompt drifts downward with every submitted round of
> multi-line input.
>
> Attached is a patch that attempts to address both of these issues, along
> with a couple more to get at some unrelated odds and ends. I'm also sort
> of thinking we ought to temporarily change the default of the new option
> `erc-scrolltobottom-all' to t for a few weeks to help flush out any
> other glaring bugs introduced by this feature. If anyone thinks that's a
> bad idea, please say so. Thanks.

I've installed this as

  69a1546 Run erc--scrolltobottom-on-pre-insert unconditionally

along with two others from that set. However, I left out

  [3/4] [5.6] Skip erc-ignored-user-p when erc-ignore-list is empty

because even a minor change like this to such a widely used feature
should probably be accompanied by tests and extra scrutiny, especially
since I myself am not really familiar with it. The optimization itself
seems simple enough, but one of those options is buffer-local and set
via the /IGNORE command, which complicates matters.

I'm thinking we may end up folding that patch into a larger initiative
aimed at moving everything related to message skipping and hiding to
another module. Indeed, there seems to be a good deal of overlap in
functionality among the lurker, hide-list, and /IGNORE features (and
also the fools stuff in erc-match). It'd be nice to get all that out of
erc.el because it can mostly be implemented using hooks, which should
help with maintenance and maybe save uninterested users some cycles.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]