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

From: Ship Mints <[email-masked]>
Date: Sun, 6 Apr 2025 07:26:18 -0400

On Sat, Apr 5, 2025 at 9:39 PM Elijah Gabe Pérez <[email-masked]> wrote:

> Sending a better patch.

I think we need to call zombies something else and also consider that
remote files may need to be ignored by the zombie checker to reduce the
costs of checking project paths, to avoid tramp prompts for an internal
function, and to accommodate that not all tramp connections are available
all the time and those may not be reachable and should not be considered
zombies.

Setting aside the zombie name for now, hHow about calling
'project-auto-forget-zombie-projects' 'project-prune-zombie-projects' and
rather than boolean, accept symbols that could include something like
'list-read 'list-write nil so users can decide when pruning happens.  In
long-lived Emacs sessions just doing it at list read time seems
insufficient.

Could we rename report-message to no-message and change when to unless to
keep it uniform?  The word report suggests things other than merely
allowing messages.

++++
*** New user option 'project-auto-forget-zombie-projects'.
- This user option automatically remove projects from 'project-list-file'
+ This user option automatically removes projects from 'project-list-file'
- that have been deleted.
+ that cannot be accessed. [this language accommodates remote projects]

- "Automatically remove from project list projects that were deleted.
- If non-nil, remove automatically projects that doesn't exist anymore
- from the project list."
+ "Remove inaccessible project list entries.
+ If \\='list-read...etc.
+ If \\='list-write...etc.
+ [whatever other conditions seem reasonable]
+ If nil, no pruning is performed."

-Stephane