Subject: bug#58933: 28.2; project-buffers should take an optional filter

From: Sean Devlin <[email-masked]>
Date: Wed, 2 Nov 2022 10:17:29 -0400

Hi Dmitry,

> On Nov 1, 2022, at 7:38 PM, Dmitry Gutov <[email-masked]> wrote:
> 
> Hi Sean,
> 
> On 01.11.2022 00:04, Sean Devlin wrote:
> 
>> Project.el provides a function project-buffers that returns a list of
>> buffers associated with the given project. The list is unfiltered,
>> meaning any program using it will have to do some work to pick out the
>> buffers of interest. It would be useful if the function had an optional
>> argument to do this work.
>> Project.el already has a function project--buffer-check that validates a
>> buffer against a list of conditions. Maybe it should be wired into
>> project-buffers to do the job of filtering?
> 
> There is also 'match-buffers' and 'buffer-match-p' in the core Emacs starting with Emacs 29 (should also be available with the 'compat' package).
> 
> What do you think about these alternatives?

Thanks for the pointer—I wasn’t aware of these functions. (I’m still on 28.2.)

It looks like these do fit the bill. For example, it looks like I could write:

(match-buffers condition (project-buffers project))

I can’t see these functions in my local installation of compat (056e3cc), but maybe definitions from Emacs 29 haven’t been added yet? In any case, I’m happy to wait a little bit.

> 
> We could indeed add a new argument, but perhaps it won't made as much of a difference, given those options.

Given the functions you mentioned, I think it’s probably not a high priority to solve the problem in project.el.

Thanks!