From: Dmitry Gutov <dgutov@yandex.ru>
To: 59935@debbugs.gnu.org
Cc: juri@linkov.net
Subject: bug#59935: 29.0.60; project-list-buffers is slow
Date: Sat, 10 Dec 2022 04:03:11 +0200 [thread overview]
Message-ID: <d11c016f-1ad9-fe27-f200-1743b02a9f9b@yandex.ru> (raw)
In-Reply-To: <bc161422-b799-e3e4-2e72-6b50e0140d18@yandex.ru>
On 10/12/2022 03:49, Dmitry Gutov wrote:
> Curiously, though, it shows a different list of buffers. It also
> includes "hidden" buffers - diff-syntax, Echo Area, etc. We should look
> into that either way.
The combined fix for both can be this:
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index 016dfdd5b4..835ab07e50 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -1340,18 +1340,21 @@ project-list-buffers
start with a space (which are for internal use). With prefix argument
ARG, show only buffers that are visiting files."
(interactive "P")
- (let ((pr (project-current t)))
+ (let* ((pr (project-current t))
+ (fetcher (lambda ()
+ (cl-delete-if-not
+ (lambda (b)
+ (or (buffer-file-name b)
+ (string-match-p "\\`[^ ]" (buffer-name b))))
+ (project-buffers pr)))))
(display-buffer
- (if (version< emacs-version "29.0.50")
- (let ((buf (list-buffers-noselect arg (project-buffers pr))))
- (with-current-buffer buf
- (setq-local revert-buffer-function
- (lambda (&rest _ignored)
- (list-buffers--refresh (project-buffers pr))
- (tabulated-list-print t))))
- buf)
- (list-buffers-noselect
- arg nil (lambda (buf) (memq buf (project-buffers pr))))))))
+ (let ((buf (list-buffers-noselect arg (funcall fetcher))))
+ (with-current-buffer buf
+ (setq-local revert-buffer-function
+ (lambda (&rest _ignored)
+ (list-buffers--refresh (funcall fetcher))
+ (tabulated-list-print t))))
+ buf))))
(defcustom project-kill-buffer-conditions
'(buffer-file-name ; All file-visiting buffers are included.
next prev parent reply other threads:[~2022-12-10 2:03 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-10 1:49 bug#59935: 29.0.60; project-list-buffers is slow Dmitry Gutov
2022-12-10 2:03 ` Dmitry Gutov [this message]
2022-12-10 8:11 ` Eli Zaretskii
2022-12-10 10:47 ` Dmitry Gutov
2022-12-10 11:12 ` Eli Zaretskii
2022-12-10 11:37 ` Dmitry Gutov
2022-12-10 14:33 ` Eli Zaretskii
2022-12-10 19:19 ` Dmitry Gutov
2022-12-10 19:42 ` Eli Zaretskii
2022-12-10 19:53 ` Dmitry Gutov
2022-12-10 20:11 ` Eli Zaretskii
2022-12-10 20:23 ` Dmitry Gutov
2022-12-11 6:19 ` Eli Zaretskii
2022-12-11 10:23 ` Dmitry Gutov
2022-12-11 10:54 ` Eli Zaretskii
2022-12-11 16:32 ` Dmitry Gutov
2022-12-12 10:36 ` Jean Louis
2022-12-12 17:12 ` Juri Linkov
2022-12-13 3:10 ` Jean Louis
2022-12-12 19:58 ` Dmitry Gutov
2022-12-13 3:10 ` Jean Louis
2022-12-13 15:29 ` Dmitry Gutov
2022-12-13 19:30 ` Jean Louis
2022-12-13 20:31 ` Dmitry Gutov
2022-12-15 14:58 ` Jean Louis
2022-12-15 15:12 ` Dmitry Gutov
2022-12-10 17:45 ` Juri Linkov
2022-12-10 19:22 ` Dmitry Gutov
2022-12-11 17:07 ` Juri Linkov
2022-12-11 17:49 ` Eli Zaretskii
2022-12-11 17:56 ` Juri Linkov
2022-12-11 18:08 ` Eli Zaretskii
2022-12-11 18:13 ` Dmitry Gutov
2022-12-11 18:12 ` Dmitry Gutov
2022-12-11 18:17 ` Eli Zaretskii
2022-12-11 18:35 ` Dmitry Gutov
2022-12-11 19:00 ` Eli Zaretskii
2022-12-11 19:41 ` Dmitry Gutov
2022-12-11 20:42 ` Eli Zaretskii
2022-12-12 17:16 ` Juri Linkov
2022-12-12 17:27 ` Eli Zaretskii
2022-12-12 17:51 ` Juri Linkov
2022-12-12 18:10 ` Eli Zaretskii
2022-12-12 18:14 ` Juri Linkov
2022-12-12 18:22 ` Eli Zaretskii
2022-12-13 17:49 ` Juri Linkov
2022-12-11 18:37 ` Dmitry Gutov
2022-12-13 17:49 ` Juri Linkov
2022-12-13 18:51 ` Dmitry Gutov
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d11c016f-1ad9-fe27-f200-1743b02a9f9b@yandex.ru \
--to=dgutov@yandex.ru \
--cc=59935@debbugs.gnu.org \
--cc=juri@linkov.net \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.