unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#58933: 28.2; project-buffers should take an optional filter
@ 2022-10-31 22:04 Sean Devlin
  2022-11-01 23:38 ` Dmitry Gutov
  0 siblings, 1 reply; 8+ messages in thread
From: Sean Devlin @ 2022-10-31 22:04 UTC (permalink / raw)
  To: 58933

Hi folks,

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?

In GNU Emacs 28.2
System Description:  macOS

Configured using:
'configure --disable-silent-rules
--enable-locallisppath=/opt/homebrew/share/emacs/site-lisp
--infodir=/opt/homebrew/Cellar/emacs/28.2/share/info/emacs
--prefix=/opt/homebrew/Cellar/emacs/28.2 --with-gnutls --without-x
--with-xml2 --without-dbus --with-modules --without-ns
--without-imagemagick --without-selinux'

Configured features:
ACL GMP GNUTLS JSON LIBXML2 MODULES NOTIFY KQUEUE PDUMPER THREADS ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow regexp-opt sort mail-extr emacsbug message rmc puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util rmail tool-bar rmail-loaddefs auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache json map
text-property-search time-date subr-x seq mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs cl-lib
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
term/xterm xterm byte-opt gv bytecomp byte-compile cconv iso-transl
tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads kqueue multi-tty
make-network-process emacs)

Memory information:
((conses 16 52996 8081)
(symbols 48 6605 1)
(strings 32 18468 1651)
(string-bytes 1 607034)
(vectors 16 10639)
(vector-slots 8 125885 7770)
(floats 8 24 265)
(intervals 56 192 0)
(buffers 992 10))





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#58933: 28.2; project-buffers should take an optional filter
  2022-10-31 22:04 bug#58933: 28.2; project-buffers should take an optional filter Sean Devlin
@ 2022-11-01 23:38 ` Dmitry Gutov
  2022-11-02 14:17   ` Sean Devlin
  0 siblings, 1 reply; 8+ messages in thread
From: Dmitry Gutov @ 2022-11-01 23:38 UTC (permalink / raw)
  To: Sean Devlin, 58933

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?

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





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#58933: 28.2; project-buffers should take an optional filter
  2022-11-01 23:38 ` Dmitry Gutov
@ 2022-11-02 14:17   ` Sean Devlin
  2022-11-04  1:22     ` Dmitry Gutov
  0 siblings, 1 reply; 8+ messages in thread
From: Sean Devlin @ 2022-11-02 14:17 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: 58933

Hi Dmitry,

> On Nov 1, 2022, at 7:38 PM, Dmitry Gutov <dgutov@yandex.ru> 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!




^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#58933: 28.2; project-buffers should take an optional filter
  2022-11-02 14:17   ` Sean Devlin
@ 2022-11-04  1:22     ` Dmitry Gutov
  2022-11-04  6:47       ` Philip Kaludercic
  0 siblings, 1 reply; 8+ messages in thread
From: Dmitry Gutov @ 2022-11-04  1:22 UTC (permalink / raw)
  To: Philip Kaludercic, Sean Devlin; +Cc: 58933

On 02.11.2022 16:17, Sean Devlin wrote:
> Hi Dmitry,
> 
>> On Nov 1, 2022, at 7:38 PM, Dmitry Gutov<dgutov@yandex.ru>  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.

Philip, is that the plan?





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#58933: 28.2; project-buffers should take an optional filter
  2022-11-04  1:22     ` Dmitry Gutov
@ 2022-11-04  6:47       ` Philip Kaludercic
  2022-11-04 16:40         ` Sean Devlin
  0 siblings, 1 reply; 8+ messages in thread
From: Philip Kaludercic @ 2022-11-04  6:47 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Sean Devlin, 58933

Dmitry Gutov <dgutov@yandex.ru> writes:

> On 02.11.2022 16:17, Sean Devlin wrote:
>> Hi Dmitry,
>> 
>>> On Nov 1, 2022, at 7:38 PM, Dmitry Gutov<dgutov@yandex.ru>  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.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#58933: 28.2; project-buffers should take an optional filter
  2022-11-04  6:47       ` Philip Kaludercic
@ 2022-11-04 16:40         ` Sean Devlin
  2022-11-04 17:07           ` Philip Kaludercic
  0 siblings, 1 reply; 8+ messages in thread
From: Sean Devlin @ 2022-11-04 16:40 UTC (permalink / raw)
  To: Philip Kaludercic, Dmitry Gutov; +Cc: 58933

[-- Attachment #1: Type: text/plain, Size: 2273 bytes --]

Hi folks,

> On Nov 4, 2022, at 2:47 AM, Philip Kaludercic <philipk@posteo.net> wrote:
> 
> Dmitry Gutov <dgutov@yandex.ru <mailto:dgutov@yandex.ru>> writes:
> 
>> On 02.11.2022 16:17, Sean Devlin wrote:
>>> Hi Dmitry,
>>> 
>>>> On Nov 1, 2022, at 7:38 PM, Dmitry Gutov<dgutov@yandex.ru>  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. Thanks both for your help, and feel free to close this at your discretion.


[-- Attachment #2: Type: text/html, Size: 10097 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#58933: 28.2; project-buffers should take an optional filter
  2022-11-04 16:40         ` Sean Devlin
@ 2022-11-04 17:07           ` Philip Kaludercic
  2022-11-04 17:11             ` Sean Devlin
  0 siblings, 1 reply; 8+ messages in thread
From: Philip Kaludercic @ 2022-11-04 17:07 UTC (permalink / raw)
  To: Sean Devlin; +Cc: 58933-done, Dmitry Gutov

Sean Devlin <spd@toadstyle.org> writes:

> Hi folks,
>
>> On Nov 4, 2022, at 2:47 AM, Philip Kaludercic <philipk@posteo.net> wrote:
>> 
>> Dmitry Gutov <dgutov@yandex.ru <mailto:dgutov@yandex.ru>> writes:
>> 
>>> On 02.11.2022 16:17, Sean Devlin wrote:
>>>> Hi Dmitry,
>>>> 
>>>>> On Nov 1, 2022, at 7:38 PM, Dmitry Gutov<dgutov@yandex.ru>  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 :)





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#58933: 28.2; project-buffers should take an optional filter
  2022-11-04 17:07           ` Philip Kaludercic
@ 2022-11-04 17:11             ` Sean Devlin
  0 siblings, 0 replies; 8+ messages in thread
From: Sean Devlin @ 2022-11-04 17:11 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: 58933-done, Dmitry Gutov

[-- Attachment #1: Type: text/plain, Size: 3091 bytes --]



> On Nov 4, 2022, at 1:07 PM, Philip Kaludercic <philipk@posteo.net> wrote:
> 
> Sean Devlin <spd@toadstyle.org <mailto:spd@toadstyle.org>> writes:
> 
>> Hi folks,
>> 
>>> On Nov 4, 2022, at 2:47 AM, Philip Kaludercic <philipk@posteo.net <mailto:philipk@posteo.net>> wrote:
>>> 
>>> Dmitry Gutov <dgutov@yandex.ru <mailto:dgutov@yandex.ru> <mailto:dgutov@yandex.ru>> writes:
>>> 
>>>> On 02.11.2022 16:17, Sean Devlin wrote:
>>>>> Hi Dmitry,
>>>>> 
>>>>>> On Nov 1, 2022, at 7:38 PM, Dmitry Gutov<dgutov@yandex.ru>  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.

Right now, I’m using project--buffer-check, which does a very similar thing. Your suggestion might be better, so I don’t need to rely on a project.el-internal function. I’ll take a look. Thanks again!

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


[-- Attachment #2: Type: text/html, Size: 9808 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-11-04 17:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-31 22:04 bug#58933: 28.2; project-buffers should take an optional filter Sean Devlin
2022-11-01 23:38 ` Dmitry Gutov
2022-11-02 14:17   ` Sean Devlin
2022-11-04  1:22     ` Dmitry Gutov
2022-11-04  6:47       ` Philip Kaludercic
2022-11-04 16:40         ` Sean Devlin
2022-11-04 17:07           ` Philip Kaludercic
2022-11-04 17:11             ` Sean Devlin

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).