[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#71290: Options for viewing project buffers
From: |
Dmitry Gutov |
Subject: |
bug#71290: Options for viewing project buffers |
Date: |
Sun, 9 Jun 2024 05:42:16 +0300 |
User-agent: |
Mozilla Thunderbird |
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.