GNU bug report logs - #62621
29.0.60; uniquify can't make buffers unique based on things other than filename

Previous Next

Package: emacs;

Reported by: Spencer Baugh <sbaugh <at> janestreet.com>

Date: Sun, 2 Apr 2023 17:38:02 UTC

Severity: normal

Found in version 29.0.60

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: sbaugh <at> catern.com
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: sbaugh <at> janestreet.com, 62621 <at> debbugs.gnu.org
Subject: bug#62621: 29.0.60; uniquify can't make buffers unique based on things other than filename
Date: Fri, 14 Jul 2023 11:28:13 +0000 (UTC)
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Cc: 62621 <at> debbugs.gnu.org
>> From: sbaugh <at> catern.com
>> Date: Thu, 13 Jul 2023 22:51:53 +0000 (UTC)
>> 
>> I've thought quite a bit about how to make this configurable, and I
>> think just letting people write their own arbitrary transformation
>> functions, as I do in this patch, is what we should provide.  Making
>> things any more modular is fairly difficult.  Packages can come along
>> and provide other fancy functions if they like.
>
> If there are a couple of simpler alternatives which could be offered
> via simple symbolic values, we should not force everyone to write
> functions, IMNSHO.  IOW, we should NOT immediately generalize to
> functions only because such generalization could make sense in some
> use cases.  Repeat after me: Use options whose values are functions
> are hard on our users, because they require them to be Lisp
> programmers.

I agree, and I'm happy to change it to use a simple symbolic value
'project instead for the transform I wrote, but I'm not sure how best to
handle the dependencies: uniquify.el is in loadup.el, is it OK for it to
rely on project-uniquify-dirname-transform being autoloaded?

>> +(defcustom uniquify-dirname-transform #'identity
>> +  "A function to transform the dirname used to uniquify a buffer.
>
> "Function to transform buffer's `default-directory' for uniquifying its name."

Unfortunately, this isn't quite right.  uniquify never uses
default-directory, counterintuitively - by default, it uses the
directory of buffer-file-name, which can differ from default-directory.

>> +It takes a single argument: the directory of the buffer.  It
>> +should return a string filename (which does not need to actually
>> +exist in the filesystem) to use for uniquifying the buffer name."
>> +  :type '(choice (function-item :tag "Don't change the dirname" identity)
>> +                 function)
>> +  :group 'uniquify)
>
> The :version tag is missing.
>
> Also, the doc string should state that the default is to use the
> buffer's default-directory without any transformations.  It should
> also include a link to uniquify-buffer-file-name, so that users could
> consult the uniquify facilities if they need to.

Will include that in the next version.




This bug report was last modified 2 years and 19 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.