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

From: Philip Kaludercic <[email-masked]>
Date: Fri, 04 Nov 2022 17:07:42 +0000

Sean Devlin <[email-masked]> writes:

> Hi folks,
>
>> On Nov 4, 2022, at 2:47 AM, Philip Kaludercic <[email-masked]> wrote:
>> 
>> Dmitry Gutov <[email-masked] <mailto:[email-masked]>> writes:
>> 
>>> On 02.11.2022 16:17, Sean Devlin wrote:
>>>> 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.
>>> 
>>> Right, I'm not seeing it in there either. Perhaps it'll get there
>>> after Emacs 29 is released.
>> 
>> Right, Emacs 29 support is under development, but hasn't been completed
>> yet: https://git.sr.ht/~pkal/compat/tree/emacs-29.1/item/compat-29.el.
>> 
>>> Philip, is that the plan?
>> 
>> The plan is to be ready by the time Emacs 29 is released.  If possible
>> and I get to it, it might also be released earlier, but at the very
>> least I'll be waiting for the feature freeze later this month.
>
> That sounds good to me. I have a workaround in the meantime, so I’m
> happy to wait for the new release. 

I don't know what your workaround is, but since both functions
(buffer-match-p, match-buffers) are self-contained, you can also just
copy the current implementation into your local configuration.

>                                    Thanks both for your help, and feel
> free to close this at your discretion.

OK, done :)