Subject: Re: bug#59502: 29.0.50; [PATCH] Dedicated buffers per project

From: Juri Linkov <[email-masked]>
Date: Sat, 10 Dec 2022 19:34:20 +0200

>>>> (setopt project-buffer-name-function
>>>>     (lambda (project _command-symbol buffer-name)
>>>>       (format "%s<%s>" buffer-name (project-name project))))
>>> I think*prjname/Shell Command Output*  sounds nice enough.
>>>
>>> If it doesn't, we probably wouldn't choose*Shell Command Output*  as the
>>> name for non-project buffers of this type, would we?
>> For designing a naming scheme, I suggest to keep in mind that
>> the users might already have customized the behavior for
>> displaying these buffers by using display-buffer-alist
>> that often takes into account a uniquified suffix, e.g.:
>>    "\\`\\*\\(?:Shell Command Output\\|xref\\|vc-dir\\|compilation\\)
>>        \\*\\(?:<[^>]+>\\)?\\'"
>> So for compatibility it would be better to add the project name
>> in the suffix without changing the standard base buffer names, e.g.:
>>    "*Shell Command Output*<project-a>", "*xref*<project-b>"
>> But if you want to add the project name after the first asterisk,
>> this is easy to do as well with just:
>>    (setf (substring buffer-name 1 1) (project-name project))
>
> The naming scheme is often affected by the uniquify package, and different
> people use different ordering. Should we really go there?

It was an example of my customization preference.  So anyone can
customize project-buffer-name-function to comply with own
uniquification scheme.  My point was to ensure that
project-buffer-name-function should support any format.