[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#63785: 29.0.91; Clearing package list filters also clears flags
From: |
Eshel Yaron |
Subject: |
bug#63785: 29.0.91; Clearing package list filters also clears flags |
Date: |
Tue, 30 May 2023 11:43:51 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Robert Pluim <rpluim@gmail.com> writes:
>>>>>> On Mon, 29 May 2023 19:48:45 +0300, Eshel Yaron <me@eshelyaron.com> said:
>
> Eshel> Robert Pluim <rpluim@gmail.com> writes:
> >> M-x list-packages
> >> / n ack ;; navigate to the line for 'ack'
> >> i ;; 'ack' has the 'I' flag
> >> / / ;; 'ack' no longer has the I flag
> >>
> >> This makes it harder to do 'search for foo, mark,
> >> search for bar, mark, install', you have to remember to execute the
> >> action after each mark command.
> >>
>
> Eshel> That's an interesting issue, it can be a bit tricky because while
> Eshel> filtering for "bar", "foo" is no longer anywhere to be found in the
> Eshel> buffer. So AFAIU to solve this Emacs needs to maintain something
> like a
> Eshel> buffer-local association between list entry (package) ids and the
> tags
> Eshel> they were given.
>
> Eshel> This sounds like something that applies more broadly to other
> Eshel> `tabulated-list-mode` derivatives as well. The attached patch
> adds a
> Eshel> `tabulated-list-maintain-tags` variable and enables it in
> Eshel> `package-menu-mode`. With it I can search and mark foo, then
> search and
> Eshel> mark bar, and then install both, as you say. WDYT?
>
> Itʼs close. The following is still suprising
>
> / n helm
> i
> / /
> / n ack
> i
> x
>
> That only offer to installs ack, even though Iʼve marked helm. If I
> clear the filters then 'x' offers to install both. Although I could
> argue that Iʼm in a filtered state, so offering to install only
> visible packages is normal :-)
Yes, that's what I thought. Only installing visible packages when the
menu is filtered seems sensible to me. Although I guess
`package-menu-execute` could be extended with some option that says what
to do in these cases, maybe by default it could suggest clearing the
filter first?