GNU bug report logs -
#59153
List project buffers
Previous Next
Reported by: Juri Linkov <juri <at> linkov.net>
Date: Wed, 9 Nov 2022 17:44:01 UTC
Severity: wishlist
Tags: patch
Fixed in version 29.0.50
Done: Juri Linkov <juri <at> linkov.net>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 59153 in the body.
You can then email your comments to 59153 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Wed, 09 Nov 2022 17:44:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Juri Linkov <juri <at> linkov.net>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Wed, 09 Nov 2022 17:44:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Version: 29.0.50
Severity: wishlist
Tags: patch
There are project commands and keys corresponding
to the most useful buffer commands:
C-x k (kill-buffer) - C-x p k (project-kill-buffers)
C-x b (switch-to-buffer) - C-x p b (project-switch-to-buffer)
What is still missing is a command to list project buffers:
C-x C-b (list-buffers) - C-x p C-b (project-list-buffers)
project-kill-buffers already shows a list of project buffers,
but only as a part of confirmation for killing buffers.
Here is a patch that adds the missing command. Its argument
has exactly the same meaning as in 'list-buffers'.
[project-list-buffers.patch (text/x-diff, inline)]
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index fc035675cec..e6f9dd750e7 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -713,6 +713,7 @@ project-prefix-map
(define-key map "G" 'project-or-external-find-regexp)
(define-key map "r" 'project-query-replace-regexp)
(define-key map "x" 'project-execute-extended-command)
+ (define-key map "\C-b" 'project-list-buffers)
map)
"Keymap for project commands.")
@@ -1223,6 +1224,25 @@ project-display-buffer-other-frame
(interactive (list (project--read-project-buffer)))
(display-buffer-other-frame buffer-or-name))
+;;;###autoload
+(defun project-list-buffers (&optional arg)
+ "Display a list of project buffers.
+The list is displayed in a buffer named \"*Buffer List*\".
+
+By default, all buffers are listed except those whose names 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))
+ (bufs (mapcan
+ (lambda (buf)
+ (when (and (project--buffer-check buf '("\\`[^ ]"))
+ (or (not arg)
+ (project--buffer-check buf '(buffer-file-name))))
+ (list buf)))
+ (project-buffers pr))))
+ (display-buffer (list-buffers-noselect arg bufs))))
+
(defcustom project-kill-buffer-conditions
'(buffer-file-name ; All file-visiting buffers are included.
;; Most of temp and logging buffers (aside from hidden ones):
@@ -1283,6 +1303,7 @@ project-kill-buffers-display-buffer-list
:package-version '(project . "0.8.2")
:safe #'booleanp)
+;; UNUSED?
(defun project--buffer-list (pr)
"Return the list of all buffers in project PR."
(let ((conn (file-remote-p (project-root pr)))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Wed, 09 Nov 2022 18:03:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 59153 <at> debbugs.gnu.org (full text, mbox):
> From: Juri Linkov <juri <at> linkov.net>
> Date: Wed, 09 Nov 2022 19:40:02 +0200
>
> +By default, all buffers are listed except those whose names start
^^^^^^^^^^^
Suggest to say "all project buffers", otherwise this could be
misinterpreted.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Thu, 10 Nov 2022 07:46:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 59153 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Juri Linkov <juri <at> linkov.net> writes:
> What is still missing is a command to list project buffers:
>
> C-x C-b (list-buffers) - C-x p C-b (project-list-buffers)
>
> project-kill-buffers already shows a list of project buffers,
> but only as a part of confirmation for killing buffers.
>
> Here is a patch that adds the missing command. Its argument
> has exactly the same meaning as in 'list-buffers'.
>
> +;;;###autoload
> +(defun project-list-buffers (&optional arg)
> + "Display a list of project buffers.
> +The list is displayed in a buffer named \"*Buffer List*\".
> +
> +By default, all buffers are listed except those whose names 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))
> + (bufs (mapcan
> + (lambda (buf)
> + (when (and (project--buffer-check buf '("\\`[^ ]"))
> + (or (not arg)
> + (project--buffer-check buf '(buffer-file-name))))
> + (list buf)))
> + (project-buffers pr))))
> + (display-buffer (list-buffers-noselect arg bufs))))
This won't survive a revert buffer, I think. (I'll show all buffers
then.)
--
Akib Azmain Turja, GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5
Fediverse: akib <at> hostux.social
Codeberg: akib
emailselfdefense.fsf.org | "Nothing can be secure without encryption."
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Thu, 10 Nov 2022 08:09:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 59153 <at> debbugs.gnu.org (full text, mbox):
>> + (bufs (mapcan
>> + (lambda (buf)
>> + (when (and (project--buffer-check buf '("\\`[^ ]"))
>> + (or (not arg)
>> + (project--buffer-check buf '(buffer-file-name))))
>> + (list buf)))
>> + (project-buffers pr))))
>> + (display-buffer (list-buffers-noselect arg bufs))))
>
> This won't survive a revert buffer, I think. (I'll show all buffers
> then.)
This means that all uses of the BUFFER-LIST arg of 'list-buffers-noselect'
are flawed. So better would be to provide not a list of buffers, but
a predicate to filter out a list of buffers. Then the revert could use
such a predicate from e.g. a buffer-local variable.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Thu, 10 Nov 2022 12:31:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 59153 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Juri Linkov <juri <at> linkov.net> writes:
>>> + (bufs (mapcan
>>> + (lambda (buf)
>>> + (when (and (project--buffer-check buf '("\\`[^ ]"))
>>> + (or (not arg)
>>> + (project--buffer-check buf '(buffer-file-name))))
>>> + (list buf)))
>>> + (project-buffers pr))))
>>> + (display-buffer (list-buffers-noselect arg bufs))))
>>
>> This won't survive a revert buffer, I think. (I'll show all buffers
>> then.)
>
> This means that all uses of the BUFFER-LIST arg of 'list-buffers-noselect'
> are flawed. So better would be to provide not a list of buffers, but
> a predicate to filter out a list of buffers. Then the revert could use
> such a predicate from e.g. a buffer-local variable.
I just modify the tabulated-list-revert-hook buffer-locally.
--
Akib Azmain Turja --- https://akib.codeberg.page/
GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5
Fediverse: akib <at> hostux.social, Codeberg: akib
emailselfdefense.fsf.org | "Nothing can be secure without encryption."
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Thu, 10 Nov 2022 18:06:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 59153 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
>>> + (bufs (mapcan
>>> + (lambda (buf)
>>> + (when (and (project--buffer-check buf '("\\`[^ ]"))
>>> + (or (not arg)
>>> + (project--buffer-check buf '(buffer-file-name))))
>>> + (list buf)))
>>> + (project-buffers pr))))
>>> + (display-buffer (list-buffers-noselect arg bufs))))
>>
>> This won't survive a revert buffer, I think. (I'll show all buffers
>> then.)
>
> This means that all uses of the BUFFER-LIST arg of 'list-buffers-noselect'
> are flawed. So better would be to provide not a list of buffers, but
> a predicate to filter out a list of buffers. Then the revert could use
> such a predicate from e.g. a buffer-local variable.
Here is a patch that adds a buffer-local variable similar to
Buffer-menu-files-only:
[Buffer-menu-filter-predicate.patch (text/x-diff, inline)]
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index abf152f058c..fbf2bbc58bc 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -101,6 +101,13 @@ Buffer-menu-files-only
This is set by the prefix argument to `buffer-menu' and related
commands.")
+(defvar-local Buffer-menu-filter-predicate nil
+ "Function to filter out buffers in the buffer list.
+Buffers that don't satisfy the predicate will be skipped.
+The value should be a function of one argument; it will be
+called with the buffer. If this function returns non-nil,
+then the buffer will be displayed in the buffer list.")
+
(defvar-keymap Buffer-menu-mode-map
:doc "Local keymap for `Buffer-menu-mode' buffers."
:parent tabulated-list-mode-map
@@ -597,19 +604,23 @@ Buffer-menu-view-other-window
;;; Functions for populating the Buffer Menu.
;;;###autoload
-(defun list-buffers-noselect (&optional files-only buffer-list)
+(defun list-buffers-noselect (&optional files-only buffer-list filter-predicate)
"Create and return a Buffer Menu buffer.
This is called by `buffer-menu' and others as a subroutine.
If FILES-ONLY is non-nil, show only file-visiting buffers.
If BUFFER-LIST is non-nil, it should be a list of buffers; it
-means list those buffers and no others."
+means list those buffers and no others.
+If FILTER-PREDICATE is non-nil, it should be a function
+that filters out buffers from the list of buffers.
+See more at `Buffer-menu-filter-predicate'."
(let ((old-buffer (current-buffer))
(buffer (get-buffer-create "*Buffer List*")))
(with-current-buffer buffer
(Buffer-menu-mode)
(setq Buffer-menu-files-only
(and files-only (>= (prefix-numeric-value files-only) 0)))
+ (setq Buffer-menu-filter-predicate filter-predicate)
(list-buffers--refresh buffer-list old-buffer)
(tabulated-list-print))
buffer))
@@ -631,6 +642,8 @@ list-buffers--refresh
(marked-buffers (Buffer-menu-marked-buffers))
(buffer-menu-buffer (current-buffer))
(show-non-file (not Buffer-menu-files-only))
+ (filter-predicate (and (functionp Buffer-menu-filter-predicate)
+ Buffer-menu-filter-predicate))
entries name-width)
;; Collect info for each buffer we're interested in.
(dolist (buffer (or buffer-list
@@ -644,7 +657,9 @@ list-buffers--refresh
(and (or (not (string= (substring name 0 1) " "))
file)
(not (eq buffer buffer-menu-buffer))
- (or file show-non-file))))
+ (or file show-non-file)
+ (or (not filter-predicate)
+ (funcall filter-predicate buffer)))))
(push (list buffer
(vector (cond
((eq buffer old-buffer) ".")
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index fc035675cec..917d80b2d3f 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -713,6 +713,7 @@ project-prefix-map
(define-key map "G" 'project-or-external-find-regexp)
(define-key map "r" 'project-query-replace-regexp)
(define-key map "x" 'project-execute-extended-command)
+ (define-key map "\C-b" 'project-list-buffers)
map)
"Keymap for project commands.")
@@ -1223,6 +1224,19 @@ project-display-buffer-other-frame
(interactive (list (project--read-project-buffer)))
(display-buffer-other-frame buffer-or-name))
+;;;###autoload
+(defun project-list-buffers (&optional arg)
+ "Display a list of project buffers.
+The list is displayed in a buffer named \"*Buffer List*\".
+
+By default, all project buffers are listed except those whose names
+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))
+ (filter-predicate (lambda (buf) (memq buf (project-buffers pr)))))
+ (display-buffer (list-buffers-noselect arg nil filter-predicate))))
+
(defcustom project-kill-buffer-conditions
'(buffer-file-name ; All file-visiting buffers are included.
;; Most of temp and logging buffers (aside from hidden ones):
@@ -1283,6 +1297,7 @@ project-kill-buffers-display-buffer-list
:package-version '(project . "0.8.2")
:safe #'booleanp)
+;; UNUSED?
(defun project--buffer-list (pr)
"Return the list of all buffers in project PR."
(let ((conn (file-remote-p (project-root pr)))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Thu, 10 Nov 2022 21:22:01 GMT)
Full text and
rfc822 format available.
Message #23 received at 59153 <at> debbugs.gnu.org (full text, mbox):
On 09.11.2022 19:40, Juri Linkov wrote:
> There are project commands and keys corresponding
> to the most useful buffer commands:
>
> C-x k (kill-buffer) - C-x p k (project-kill-buffers)
> C-x b (switch-to-buffer) - C-x p b (project-switch-to-buffer)
>
> What is still missing is a command to list project buffers:
>
> C-x C-b (list-buffers) - C-x p C-b (project-list-buffers)
This is fine with me, thank you.
> +;; UNUSED?
> (defun project--buffer-list (pr)
> "Return the list of all buffers in project PR."
> (let ((conn (file-remote-p (project-root pr)))
And this is a good catch. Apparently the common project buffer
enumeration logic is now missing the file-remote-p related speedup we
added for
https://lists.gnu.org/archive/html/emacs-devel/2021-05/msg00152.html.
I wonder if it's still relevant, that's worth retesting.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Sat, 12 Nov 2022 01:40:01 GMT)
Full text and
rfc822 format available.
Message #26 received at 59153 <at> debbugs.gnu.org (full text, mbox):
On 10.11.2022 23:21, Dmitry Gutov wrote:
>> +;; UNUSED?
>> (defun project--buffer-list (pr)
>> "Return the list of all buffers in project PR."
>> (let ((conn (file-remote-p (project-root pr)))
>
> And this is a good catch. Apparently the common project buffer
> enumeration logic is now missing the file-remote-p related speedup we
> added for
> https://lists.gnu.org/archive/html/emacs-devel/2021-05/msg00152.html.
>
> I wonder if it's still relevant, that's worth retesting.
Never mind. Removed it, thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Sat, 12 Nov 2022 01:42:01 GMT)
Full text and
rfc822 format available.
Message #29 received at 59153 <at> debbugs.gnu.org (full text, mbox):
On 10.11.2022 19:59, Juri Linkov wrote:
> + (display-buffer (list-buffers-noselect arg nil filter-predicate))))
I suppose we'll need an arity check here?
So that this command also works in older emacsen with an install of
project.el from ELPA.
Alternatively, the command could set the value of
Buffer-menu-filter-predicate inside the resulting buffer, rather than
pass it as an argument to list-buffers-noselect.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Sat, 12 Nov 2022 18:12:03 GMT)
Full text and
rfc822 format available.
Message #32 received at 59153 <at> debbugs.gnu.org (full text, mbox):
>> + (display-buffer (list-buffers-noselect arg nil filter-predicate))))
>
> I suppose we'll need an arity check here?
>
> So that this command also works in older emacsen with an install of
> project.el from ELPA.
Ah, I forgot about older emacsen.
> Alternatively, the command could set the value of
> Buffer-menu-filter-predicate inside the resulting buffer, rather than pass
> it as an argument to list-buffers-noselect.
Setting a buffer-local variable looks like a safer option since
Stefan M. warned many times that an arity check is not reliable.
But then need to display buffer twice: first call
list-buffers-noselect without an argument, then
set buffer-local Buffer-menu-filter-predicate,
then programmatically revert the buffer.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Sun, 13 Nov 2022 02:38:01 GMT)
Full text and
rfc822 format available.
Message #35 received at 59153 <at> debbugs.gnu.org (full text, mbox):
On 12.11.2022 20:02, Juri Linkov wrote:
>>> + (display-buffer (list-buffers-noselect arg nil filter-predicate))))
>> I suppose we'll need an arity check here?
>>
>> So that this command also works in older emacsen with an install of
>> project.el from ELPA.
> Ah, I forgot about older emacsen.
>
>> Alternatively, the command could set the value of
>> Buffer-menu-filter-predicate inside the resulting buffer, rather than pass
>> it as an argument to list-buffers-noselect.
> Setting a buffer-local variable looks like a safer option since
> Stefan M. warned many times that an arity check is not reliable.
Catching the wrong-number-of-arguments error is a established way of
handling this.
But we could also, for example, introduce a new function which receives
a predicate, instead of adding a new arg to list-buffers-noselect.
Or just use an Emacs version check. It doesn't feel as nice, but should
work fine nevertheless.
> But then need to display buffer twice: first call
> list-buffers-noselect without an argument, then
> set buffer-local Buffer-menu-filter-predicate,
> then programmatically revert the buffer.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Sun, 13 Nov 2022 18:05:02 GMT)
Full text and
rfc822 format available.
Message #38 received at 59153 <at> debbugs.gnu.org (full text, mbox):
> Or just use an Emacs version check. It doesn't feel as nice, but should
> work fine nevertheless.
Using an Emacs version check is the best thing to do
because it will allow to hide (undefine) the whole
new function (and its keybinding) in older versions
since the new function don't work reliably without
accompanying changes in buff-menu.el.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Sun, 13 Nov 2022 22:19:01 GMT)
Full text and
rfc822 format available.
Message #41 received at 59153 <at> debbugs.gnu.org (full text, mbox):
On 13.11.2022 19:57, Juri Linkov wrote:
>> Or just use an Emacs version check. It doesn't feel as nice, but should
>> work fine nevertheless.
> Using an Emacs version check is the best thing to do
> because it will allow to hide (undefine) the whole
> new function (and its keybinding) in older versions
> since the new function don't work reliably without
> accompanying changes in buff-menu.el.
If you're sure, maybe.
But I would imagine that users of Emacs 28 and earlier would rather
enjoy the new command (with a 'g' caveat) than have it disabled.
As a safety measure, in older Emacs you could also set
'revert-buffer-function' locally to something displaying an error.
I don't remember using 'g' in ibuffer or list-buffers much anyway. But
that depends on one's habits.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Tue, 15 Nov 2022 09:09:02 GMT)
Full text and
rfc822 format available.
Message #44 received at 59153 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
> But I would imagine that users of Emacs 28 and earlier would rather enjoy
> the new command (with a 'g' caveat) than have it disabled.
>
> As a safety measure, in older Emacs you could also set
> 'revert-buffer-function' locally to something displaying an error.
>
> I don't remember using 'g' in ibuffer or list-buffers much anyway. But that
> depends on one's habits.
Maybe something like this that supports 'g' in older versions:
[project-list-buffers.patch (text/x-diff, inline)]
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index ed26872ae77..63510e90502 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -712,6 +712,7 @@ project-prefix-map
(define-key map "G" 'project-or-external-find-regexp)
(define-key map "r" 'project-query-replace-regexp)
(define-key map "x" 'project-execute-extended-command)
+ (define-key map "\C-b" 'project-list-buffers)
map)
"Keymap for project commands.")
@@ -1222,6 +1223,28 @@ project-display-buffer-other-frame
(interactive (list (project--read-project-buffer)))
(display-buffer-other-frame buffer-or-name))
+;;;###autoload
+(defun project-list-buffers (&optional arg)
+ "Display a list of project buffers.
+The list is displayed in a buffer named \"*Buffer List*\".
+
+By default, all project buffers are listed except those whose names
+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)))
+ (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))))))))
+
(defcustom project-kill-buffer-conditions
'(buffer-file-name ; All file-visiting buffers are included.
;; Most of temp and logging buffers (aside from hidden ones):
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Tue, 15 Nov 2022 14:54:02 GMT)
Full text and
rfc822 format available.
Message #47 received at 59153 <at> debbugs.gnu.org (full text, mbox):
On 15.11.2022 10:36, Juri Linkov wrote:
> Maybe something like this that supports 'g' in older versions:
LGTM, thanks!
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Tue, 15 Nov 2022 18:57:01 GMT)
Full text and
rfc822 format available.
Message #50 received at 59153 <at> debbugs.gnu.org (full text, mbox):
close 59153 29.0.50
thanks
>> Maybe something like this that supports 'g' in older versions:
>
> LGTM, thanks!
Thanks for reviewing, now pushed to master. I didn't bump the version
to give more time for testing in master.
bug marked as fixed in version 29.0.50, send any further explanations to
59153 <at> debbugs.gnu.org and Juri Linkov <juri <at> linkov.net>
Request was from
Juri Linkov <juri <at> linkov.net>
to
control <at> debbugs.gnu.org
.
(Tue, 15 Nov 2022 18:57:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Wed, 16 Nov 2022 10:17:02 GMT)
Full text and
rfc822 format available.
Message #55 received at submit <at> debbugs.gnu.org (full text, mbox):
This is a really helpful feature. A query though. Will that be another
feature request for the users of ibuffer. May be a variable
`project-list-buffers-function`.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Fri, 18 Nov 2022 07:22:01 GMT)
Full text and
rfc822 format available.
Message #58 received at 59153 <at> debbugs.gnu.org (full text, mbox):
> This is a really helpful feature. A query though. Will that be another
> feature request for the users of ibuffer. May be a variable
> `project-list-buffers-function`.
Probably this could be implemented in ibuffer.el.
So when ibuffer is loaded, it could override the
keybinding 'C-x p C-b' with own function that uses
ibuffer filters with the current project buffers.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Sat, 19 Nov 2022 18:35:01 GMT)
Full text and
rfc822 format available.
Message #61 received at 59153 <at> debbugs.gnu.org (full text, mbox):
On 18.11.2022 09:09, Juri Linkov wrote:
>> This is a really helpful feature. A query though. Will that be another
>> feature request for the users of ibuffer. May be a variable
>> `project-list-buffers-function`.
>
> Probably this could be implemented in ibuffer.el.
> So when ibuffer is loaded, it could override the
> keybinding 'C-x p C-b' with own function that uses
> ibuffer filters with the current project buffers.
Might as well add 'project-ibuffer' to project.el straight, similarly to
how we have both 'project-shell' and 'project-eshell'.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Sat, 19 Nov 2022 19:16:11 GMT)
Full text and
rfc822 format available.
Message #64 received at 59153 <at> debbugs.gnu.org (full text, mbox):
>>> This is a really helpful feature. A query though. Will that be another
>>> feature request for the users of ibuffer. May be a variable
>>> `project-list-buffers-function`.
>> Probably this could be implemented in ibuffer.el.
>> So when ibuffer is loaded, it could override the
>> keybinding 'C-x p C-b' with own function that uses
>> ibuffer filters with the current project buffers.
>
> Might as well add 'project-ibuffer' to project.el straight, similarly to
> how we have both 'project-shell' and 'project-eshell'.
Not sure where proliferating the number of keybindings for every
alternative will lead to. I'd rather try to use more
`define-alternatives' to allow choosing alternatives between
shell/eshell, list-buffers/ibuffer, ... with the same
project keybinding.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#59153
; Package
emacs
.
(Sat, 19 Nov 2022 19:24:02 GMT)
Full text and
rfc822 format available.
Message #67 received at 59153 <at> debbugs.gnu.org (full text, mbox):
On 19.11.2022 20:48, Juri Linkov wrote:
>>>> This is a really helpful feature. A query though. Will that be another
>>>> feature request for the users of ibuffer. May be a variable
>>>> `project-list-buffers-function`.
>>> Probably this could be implemented in ibuffer.el.
>>> So when ibuffer is loaded, it could override the
>>> keybinding 'C-x p C-b' with own function that uses
>>> ibuffer filters with the current project buffers.
>> Might as well add 'project-ibuffer' to project.el straight, similarly to
>> how we have both 'project-shell' and 'project-eshell'.
> Not sure where proliferating the number of keybindings for every
> alternative will lead to. I'd rather try to use more
> `define-alternatives' to allow choosing alternatives between
> shell/eshell, list-buffers/ibuffer, ... with the same
> project keybinding.
Maybe add it without a binding. Let the user do that choice themselves.
Regarding 'define-alternatives' - sure, that's also possible.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 18 Dec 2022 12:24:09 GMT)
Full text and
rfc822 format available.
This bug report was last modified 2 years and 242 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.