Subject: bug#70996: project-find-file defaults

From: Dmitry Gutov <[email-masked]>
Date: Tue, 11 Jun 2024 03:02:01 +0300

On 09/06/2024 19:51, Juri Linkov wrote:
>>> But the problem is that in this case it drops the current file name
>>> as the default value that is also useful in many cases.
>>> Fortunately, the minibuffer supports a list of default values,
>>> like in the following patch:
>>
>> This seems like a good idea, except it reverses the priority: previously,
>> if file-at-point was present, it would be the default, not the current file
>> name.
> 
> I mentioned in the log message that this change was intentional.
> 
>> So how about this?
> 
> The reason of this change to make the first item of the M-n list
> more deterministic:

Okay, now I see that line, thanks.

> 1. when there is no thing-at-point, then the first item will be
>     buffer-file-name;
> 
> 2. and also when there is a thing-at-point, the first item
>     will remain buffer-file-name.
> 
> Otherwise, it was too unpredictable: after typing 'M-n RET'
> to use buffer-file-name, it often did a wrong thing
> when point happened to stay in a thing-at-point.

Okay, but I'm not sure predictability must be the overriding principle.

If 10 people use the thing-at-point default, for example, and only 2 use 
the buffer-file-name default (or, say, the number of users is the same, 
but the frequency is higher for the latter), we'd be forcing a lot of 
people to press C-n to jump over the default they don't use.

What's the main usage scenario for the buffer-file-name default? I 
recall Spencer describing his workflow, but that seems only useful when 
you have a lot of branches, checked out specifically into worktrees or 
similar, and switch between them often (while explicitly staying in the 
"same" file during a switch). Do you do something similar?