Subject: bug#77157: [PATCH] 'uniquify' user option setters and automatic buffer refresh

From: Ship Mints <[email-masked]>
Date: Sat, 22 Mar 2025 07:04:08 -0400

On Sat, Mar 22, 2025 at 6:44 AM Ship Mints <[email-masked]> wrote:

> On Sat, Mar 22, 2025 at 2:50 AM Eli Zaretskii <[email-masked]> wrote:
>
>> > From: Ship Mints <[email-masked]>
>> > Date: Fri, 21 Mar 2025 16:02:34 -0400
>> > Cc: [email-masked]
>> >
>> >  Please tell in the doc string that changing the style in the middle of
>> >  an Emacs session must be done via Customize or by using setopt, but
>> >  not by setting the variable directly (unless uniquify--set-option is
>> >  then invoked).
>> >
>> > Eli, how is this wording which I'll put in each docstring?
>> >
>> > "To reflect a change to this option's value in your live buffer names,
>> > use `customize' interactively, or use `setopt' in Elisp, both of which
>> > call `uniquify--set-option' (setq will not do that for you)."
>>
>> We usually use the following style for such variables:
>>
>>   Setting this variable directly will not usually take effect;
>>   use either \\[customize] or `setopt', or call `uniquify--set-option'
>>   or restart `uniquify-mode' after setting the variable directly.
>>
>
> I'll adapt this language.  Uniquify isn't implemented as a mode.  It's a
> rename buffer hook in buffer.c and depends on 'uniquify-buffer-name-style'
> to have a defined style.
>
> Even the function 'uniquify-unload-function' doesn't attempt to remove the
> hook (it probably should set 'uniquify-buffer-name-style' to nil as part of
> its business).  It's not even clear if unload ever gets called by anyone.
> Perhaps a candidate to obsolete.
>

The following seems more precise.  Okay with you?

Setting this variable directly will not usually take effect; use either
\\[customize] or `setopt', or call `uniquify--set-option'; otherwise
reload your buffers, or restart Emacs.