GNU bug report logs - #71290
Options for viewing project buffers

Previous Next

Package: emacs;

Reported by: mikpom <mikpom <at> mikpom.ru>

Date: Fri, 31 May 2024 12:30:02 UTC

Severity: normal

Done: Dmitry Gutov <dmitry <at> gutov.dev>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Dmitry Gutov <dmitry <at> gutov.dev>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#71290: closed (Options for viewing project buffers)
Date: Sun, 09 Jun 2024 02:52:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sun, 9 Jun 2024 05:42:16 +0300
with message-id <ae45e32c-b975-41fc-9ed2-5b3900e52b95 <at> gutov.dev>
and subject line Re: bug#71290: Options for viewing project buffers
has caused the debbugs.gnu.org bug report #71290,
regarding Options for viewing project buffers
to be marked as done.

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


-- 
71290: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71290
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: mikpom <mikpom <at> mikpom.ru>
To: bug-gnu-emacs <at> gnu.org
Subject: Options for viewing project buffers
Date: Fri, 31 May 2024 19:28:53 +0700
Greetings devs and emacs community.

I occasionally need to list buffers of a project and do so with the
built-in command project-list-buffers from project.el. The problem is
that this command utilizes Buffer-menu mode and does so in a hard-coded
way. Personally I prefer IBuffer which is already heavily customized
while I have zero knowledge of Buffer-menu mode. 

I suggest to make an option whether project.el will list buffers with
Ibuffer, Buffer-menu or even something else?

Kind regards,
-Mikhail


[Message part 3 (message/rfc822, inline)]
From: Dmitry Gutov <dmitry <at> gutov.dev>
To: mikpom <mikpom <at> mikpom.ru>, 71290-done <at> debbugs.gnu.org
Subject: Re: bug#71290: Options for viewing project buffers
Date: Sun, 9 Jun 2024 05:42:16 +0300
Hi!

On 05/06/2024 07:00, mikpom wrote:
> So I implemented (thank  for a suggestion in Emacs-ru chat) optional
> Ibuffer viewer. Diff on project.el is attached. It works in my setting.

This works, thank you. Pushed to master with expanded docstring and a 
minor fix (the ARG argument).

Also added the below patch.

This seems to work well, so marking this as resolved.

diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index ab928a35e54..a16ff30395b 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -1567,7 +1567,8 @@ project-list-buffers
     (funcall project-buffers-viewer pr arg)))

 (defun project-list-buffers-buffer-menu (project &optional files-only)
-  "Lists buffers of a project in Buffer-menu mode"
+  "List buffers for PROJECT in Buffer-menu mode.
+If FILES-ONLY is non-nil, only show the file-visiting buffers."
   (let ((buffer-list-function
          (lambda ()
            (seq-filter
@@ -1598,11 +1599,13 @@ project-list-buffers-buffer-menu
        (list-buffers-noselect files-only buffer-list-function)))))

 (defun project-list-buffers-ibuffer (project &optional files-only)
-  "Lists buffers of a project with Ibuffer"
-  ;; TODO files-only
+  "List buffers for PROJECT using Ibuffer.
+If FILES-ONLY is non-nil, only show the file-visiting buffers."
   (ibuffer t (format "*Ibuffer-%s*" (project-name project))
-           `((predicate . (member (current-buffer)
-                                  (project-buffers ',project))))))
+           `((predicate . (and
+                           (or ,(not files-only) buffer-file-name)
+                           (member (current-buffer)
+                                   (project-buffers ',project)))))))

 (defcustom project-kill-buffer-conditions
   '(buffer-file-name    ; All file-visiting buffers are included.



This bug report was last modified 1 year and 13 days ago.

Previous Next


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