On 07/04/2025 03:39, Elijah Gabe Pérez wrote:
> +(defcustom project-prune-zombie-projects nil
> + "Automatically remove from project list projects that were deleted.
> +If set to `all', remove projects when project list file
> +is being read or written.
> +If set to `list-read', only remove projects when project list file
> +is being read.
> +If set to `list-write', only remove projects when project list file is
> +being written.
That's a lot of alternatives. Do we have a picture of the users who
would use each of the values?
AFAIK, no, I would honestly prefer just a booelan, this can be confused.
And speaking of remote projects, maybe we should add a prefix argument
to project-forget-zombie-projects instead of an option.
The patch already provides this, should the option be removed?:
@@ -2117,12 +2148,17 @@ project-remember-projects-under
count) count))
count))
-(defun project-forget-zombie-projects ()
- "Forget all known projects that don't exist any more."
- (interactive)
+(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.
+If NO-MESSAGE is non-nil, don't display a message about projects removed."
+ (interactive "P")
(dolist (proj (project-known-project-roots))
- (unless (file-exists-p proj)
- (project-forget-project proj))))
+ (unless (or (and no-remote (file-exists-p proj) (not (file-remote-p proj)))
+ (and project-dont-prune-remote-zombie-projects
+ (file-exists-p proj) (not (file-remote-p proj)))
+ (file-exists-p proj))
+ (project-forget-project proj no-message))))