From: "João Távora" <joaotavora@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 40529@debbugs.gnu.org, Aidan Beggs <nadiasggeb001@gmail.com>
Subject: bug#40529: 26.3; global-display-line-numbers-mode and flymake-show-diagnostics-buffer error
Date: Sun, 12 Apr 2020 13:22:34 +0100 [thread overview]
Message-ID: <CALDnm52S1EAwuKsXXX+n09X1TbX24UtTz8X1xJ6aA3msZS_XdQ@mail.gmail.com> (raw)
In-Reply-To: <CALDnm535DMLd75rdp33RmV5VCfxJ36E0XgCxyf4XCQhHMpWzPQ@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2581 bytes --]
On Fri, Apr 10, 2020 at 5:16 PM João Távora <joaotavora@gmail.com> wrote:
>
> On Fri, Apr 10, 2020 at 5:09 PM João Távora <joaotavora@gmail.com> wrote:
>
> > leaves me wondering if there isn't a hook ordering bug here. Maybe it's
> > just a question of delaying entry in tabulated-list-mode until
important stuff
> > is set up.
>
> Or maybe all that's needed is this (100% untested) change:
>
> diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
Finally looked into the problem and no, this doesn't work because
flymake-diagnostics-buffer-mode erases local vars before setting up the
tabulated-list-mode derived mode. This is kind of a chicken-and-egg
issue that can only be fixed in flymake.el with some ugly hacks.
But after some analysis, I think it is tabulated-list-mode, or rather
its recent adaptation to display-line-numbers-mode, which is in the
wrong here. It used to be that using a mode derived from
tabulated-list-mode didn't immediately force a request for refreshing its
rows. After display-line-numbers-mode came along, that ceased to be
true in some situations.
Reading the special code in tabulated-list-mode concerned with line
numbers, the latter seem to affect only the header line, not the
buffer's contents. So this seems to be the correct fix:
commit 0145b3c87f329e51c729703d778848cdc8393a33
Author: João Távora <joaotavora@gmail.com>
Date: Sun Apr 12 13:10:45 2020 +0100
Fix tabulated-list-mode bootstrapping problem
Fixes: bug#40529
Don't refresh all the tabulated-list rows when entering
tabulated-list-mode just because display-line-number-mode is t.
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode): Don't
call tabulated-list-revert, just tabulated-list-init-header.
diff --git a/lisp/emacs-lisp/tabulated-list.el
b/lisp/emacs-lisp/tabulated-list.el
index 501cc3a29e..68eaef1fcd 100644
--- a/lisp/emacs-lisp/tabulated-list.el
+++ b/lisp/emacs-lisp/tabulated-list.el
@@ -765,7 +765,7 @@ tabulated-list-mode
;; column of the first entry happens to begin with a R2L letter.
(setq bidi-paragraph-direction 'left-to-right)
;; This is for if/when they turn on display-line-numbers
- (add-hook 'display-line-numbers-mode-hook #'tabulated-list-revert nil t)
+ (add-hook 'display-line-numbers-mode-hook #'tabulated-list-init-header
nil t)
;; This is for if/when they customize the line-number face or when
;; the line-number width needs to change due to scrolling.
(setq-local tabulated-list--current-lnum-width 0)
[-- Attachment #2: Type: text/html, Size: 3002 bytes --]
next prev parent reply other threads:[~2020-04-12 12:22 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-09 20:55 bug#40529: 26.3; global-display-line-numbers-mode and flymake-show-diagnostics-buffer error Aidan Beggs
2020-04-10 6:30 ` Eli Zaretskii
2020-04-10 11:50 ` João Távora
2020-04-10 12:16 ` Eli Zaretskii
2020-04-10 14:38 ` João Távora
2020-04-10 15:50 ` Eli Zaretskii
2020-04-10 16:09 ` João Távora
2020-04-10 16:16 ` João Távora
2020-04-12 12:22 ` João Távora [this message]
2020-04-12 13:43 ` Eli Zaretskii
2020-04-12 14:13 ` João Távora
2020-04-12 14:42 ` Eli Zaretskii
2020-04-12 16:58 ` João Távora
2020-04-12 17:15 ` Eli Zaretskii
2020-04-12 20:45 ` Aidan Beggs
2020-04-13 5:03 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CALDnm52S1EAwuKsXXX+n09X1TbX24UtTz8X1xJ6aA3msZS_XdQ@mail.gmail.com \
--to=joaotavora@gmail.com \
--cc=40529@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=nadiasggeb001@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).