Subject: Re: bug#77566: [PATCH] Add option for automatically delete non-existent projects.

From: Dmitry Gutov <[email-masked]>
Date: Thu, 10 Apr 2025 02:54:27 +0300

On 09/04/2025 22:28, Elijah Gabe Pérez wrote:
> Dmitry Gutov <[email-masked]> writes:
> 
>> On 09/04/2025 07:23, Elijah Gabe Pérez wrote:
>>> Instead what about purge it once after emacs startup?
>>
>> I think a concern was voiced that during a long-running session directories can get removed at any time.
>>
>> +        (project-forget-zombie-projects nil t))))
>>
>> Are we sure that we want to suppress the messages about the removals in this case? Personally, I'd just print it in any case (if some were removed anyway).
> 
> It would display the message after `startup-echo-area-message'.
> I think it would be intrusive.

Do we read the project list at startup?

Even so, the message might only be there if there are projects to clean 
up. So it won't show up every time.

> I've changed it to `inhibit-message' instead, which will include
> the message into *Messages* buffer but will not be displayed.

That's fine too, although we probably do want to show it when called 
interactively.

>> +(defun project-forget-zombie-projects (&optional no-remote no-message)
>>> +  "Forget all known projects that don't exist any more.
>>> +If NO-REMOTE is non-nil, don't forget remote projects.
>>
>> Maybe NO-REMOTE should be called INCLUDE-REMOTE instead?
>>
>> Right now it sounds like the opposite of its actual meaning.
> 
> I think EXCLUDE-REMOTES would be a better name,
> the INCLUDE-REMOTE name would give the impression that it does not
> delete remote projects by default.  `project-forget-zombie-projects' by
> default includes remote and no remote projects.

Don't we want to avoid remote projects by default? It might take a long 
time. Does it here in my testing anyway.

Having the "fast" path to be the default and the "thorough" as the 
prefix command alternative seems to be a common approach.