unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Adam Porter <adam@alphapapa.net>
To: emacs-devel@gnu.org
Subject: Re: Friendlier dired experience [CODE INCLUDED]
Date: Thu, 05 Nov 2020 10:18:51 -0600	[thread overview]
Message-ID: <87o8kbwzdg.fsf@alphapapa.net> (raw)
In-Reply-To: jwvy2jfkdzp.fsf-monnier+emacs@gnu.org

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>>> You'd still have the downside that the general bookmarks include all the
>>> other non-directory bookmarks, so maybe it's not a good idea anyway.
>>> [ I'm not using bookmarks very much, so my intuition here is poor.  ]
>> Why would that be a downside?
>
> That you can have name conflicts between the diredc and other bookmarks,
> and that when selecting a diredc bookmark you'd have to see all those
> other bookmarks which might make it more timeconsuming to find the
> bookmark you're after.
>
> For the first problem, I don't have a good solution.
> For the second, I think this actually hints at a need for the generic
> bookmark-selection functionality to offer a way to first select a *type*
> of bookmark and only then pick a name among the remaining candidates.
>
> [ And of course, in the absence of such generic support in bookmark.el,
>   diredc could do it on its own by offer a command which pre-filters
>   the list of bookmarks to only include those which refer to
>   directories.  ]

Some recent work I've done in Burly[0] touches on this.

Because Burly uses its own bookmark handler function, it was easy to
write a command that offers only bookmarks created with Burly by
filtering them on the bookmark records' handler value.[1]

However, when I tried to write a bookmark-listing command to display
only Burly's bookmarks, it wasn't as easy to re-use existing
functionality.  I tried to re-use the list-bookmarks command by binding
bookmarks-alist to a filtered alist, and that worked.

The problem is that re-displaying the bookmarks list (e.g. after
deleting a bookmark) shows the non-filtered bookmarks list.  I then
experimented with using buffer-local function advice in the
list-bookmarks buffer to cause it to use the filtered bookmarks list
when re-displaying, but it didn't seem to work.  And even if it had, it
would have been very hacky, so it didn't seem like a good solution.

An idea I had was for the list-bookmarks command to use an optional
filter function to filter the bookmarks-alist before displaying them, so
the filter could persist after using commands to manipulate
bookmarks.[2] (Note that the global value of bookmarks-alist would
remain unchanged so that saving the bookmarks to disk still saves all
bookmarks, not just the filtered ones.)

Frankly, I wonder if list-bookmarks ought to be rewritten to use,
e.g. tabulated-list-mode instead of its bespoke code.  (Although I'm
guessing that would break much of Drew's Bookmarks+ library...)

0: https://github.com/alphapapa/burly.el
1: https://github.com/alphapapa/burly.el/blob/e2ab1b2526ce84ad7dd17bf37c0079785619bc8e/burly.el#L156
2: https://github.com/alphapapa/burly.el/issues/14#issuecomment-719803053




  reply	other threads:[~2020-11-05 16:18 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-03 10:43 Friendlier dired experience [CODE INCLUDED] Boruch Baum
2020-11-03 10:54 ` Jean Louis
2020-11-03 11:15   ` Boruch Baum
2020-11-03 11:32     ` Joost Kremers
2020-11-03 12:22       ` Boruch Baum
2020-11-03 16:07     ` Jean Louis
2020-11-03 17:12       ` Boruch Baum
2020-11-03 19:31         ` Jean Louis
2020-11-03 21:13           ` Boruch Baum
2020-11-04  8:10             ` Jean Louis
2020-11-04  8:54               ` Boruch Baum
2020-11-04  9:57                 ` Jean Louis
2020-11-04 10:39                   ` Jean Louis
2020-11-04 13:17                     ` Boruch Baum
2020-11-04 15:32                       ` Joost Kremers
2020-11-04 15:58                         ` Stefan Monnier
2020-11-04 17:23                         ` Jean Louis
2020-11-04 17:15                       ` Jean Louis
2020-11-04 15:28                 ` Eli Zaretskii
2020-11-03 11:24   ` Boruch Baum
2020-11-03 15:10 ` Stefan Kangas
2020-11-03 16:10   ` Jean Louis
2020-11-03 17:16     ` Boruch Baum
2020-11-03 17:59       ` Michael Albinus
2020-11-03 19:10         ` Boruch Baum
2020-11-03 19:49           ` Jean Louis
2020-11-04  6:08             ` Pankaj Jangid
2020-11-04 19:57           ` Michael Albinus
2020-11-04 20:18             ` Yuri Khan
2020-11-04 20:29               ` Michael Albinus
2020-11-05  8:54             ` Boruch Baum
2020-11-05 10:11               ` Jean Louis
2020-11-05 13:31               ` Eli Zaretskii
2020-11-04 19:28       ` Stefan Kangas
2020-11-04 19:39         ` Boruch Baum
2020-11-05 15:00           ` Stefan Kangas
2020-11-06  9:34             ` Boruch Baum
2020-11-04 18:07 ` Stefan Monnier
2020-11-04 18:32   ` Boruch Baum
2020-11-04 18:55     ` Stefan Monnier
2020-11-05  8:05       ` Arthur Miller
2020-11-05  9:22         ` Boruch Baum
2020-11-05 12:54           ` Arthur Miller
2020-11-05 13:34             ` Jean Louis
2020-11-05 14:38             ` Boruch Baum
2020-11-05 15:05               ` Stefan Monnier
2020-11-05 15:34                 ` Arthur Miller
2020-11-05 15:45                   ` Stefan Monnier
2020-11-05 16:18                     ` Adam Porter [this message]
2020-11-05 17:02                       ` Stefan Monnier
2020-11-05 17:09                         ` Drew Adams
2020-11-05 17:08                       ` Drew Adams
2020-11-05 16:19                     ` Arthur Miller
2020-11-05 17:56                       ` Jean Louis
2020-11-05 17:08                     ` Drew Adams
2020-11-06  9:15                 ` Boruch Baum
2020-11-06 14:14                   ` Stefan Monnier
2020-11-06 16:28                   ` Drew Adams
2020-11-06 19:43                     ` Adam Porter
2020-11-06 20:24                       ` Drew Adams
2020-11-06 20:57                         ` Adam Porter
2020-11-07  0:30                           ` Daniel Martín
2020-11-08  9:36                     ` Boruch Baum
2020-11-08 12:09                       ` Arthur Miller
2020-11-08 12:40                         ` Boruch Baum
2020-11-08 13:37                           ` Jean Louis
2020-11-08 16:48                             ` Drew Adams
2020-11-08 18:26                               ` on hyperlinks (bookmarks) Jean Louis
2020-11-08 19:47                                 ` Drew Adams
2020-11-08 20:26                                   ` Jean Louis
2020-11-08 13:45                           ` Friendlier dired experience [CODE INCLUDED] Arthur Miller
2020-11-08 16:48                       ` Drew Adams
2020-11-08 17:37                         ` Boruch Baum
2020-11-08 19:24                           ` Drew Adams
2020-11-05 15:29               ` Arthur Miller
2020-11-05 16:25                 ` Adam Porter
2020-11-05 16:47                   ` Arthur Miller
2020-11-05 18:00                   ` Jean Louis
2020-11-05 18:56                     ` Adam Porter
2020-11-05 19:33                       ` Jean Louis
2020-11-06  4:55                     ` Arthur Miller
2020-11-06  9:49                 ` Boruch Baum
2020-11-06  9:42             ` Boruch Baum
2020-11-05 14:21           ` Stefan Monnier
2020-11-05  9:56         ` Jean Louis
2020-11-05 17:07         ` Drew Adams
2020-11-08 19:46         ` Juri Linkov
2020-11-08 19:50           ` Sv: " arthur miller
2020-11-09 22:45 ` Mathias Dahl
2020-11-09 23:20   ` Stefan Monnier
2020-11-10  0:05     ` Drew Adams
2020-11-10  2:31     ` T.V Raman
2020-11-10  6:47       ` Jean Louis
2020-11-11 19:23   ` Juri Linkov
  -- strict thread matches above, loose matches on Subject: below --
2020-11-04 17:28 Boruch Baum

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87o8kbwzdg.fsf@alphapapa.net \
    --to=adam@alphapapa.net \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).