Function: projectile-forget-projects-under
projectile-forget-projects-under is an autoloaded, interactive and
byte-compiled function defined in projectile.el.
Signature
(projectile-forget-projects-under DIRECTORY &optional RECURSIVE)
Documentation
Remove known projects located under DIRECTORY.
Interactively, prompt for DIRECTORY. With optional argument RECURSIVE non-nil (interactively, the prefix argument), remove projects nested at any depth under DIRECTORY; otherwise only remove projects that are immediate children of DIRECTORY.
Matching is lexical (after file-truename expansion for local paths,
which is skipped for remote ones to avoid a round-trip), so projects
are removed even when DIRECTORY has already been deleted. Mirrors
project.el's project-forget-projects-under. Return the number of
projects removed.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/projectile-20260820.1509/projectile.el
;;;###autoload
(defun projectile-forget-projects-under (directory &optional recursive)
"Remove known projects located under DIRECTORY.
Interactively, prompt for DIRECTORY. With optional argument
RECURSIVE non-nil (interactively, the prefix argument), remove
projects nested at any depth under DIRECTORY; otherwise only remove
projects that are immediate children of DIRECTORY.
Matching is lexical (after `file-truename' expansion for local paths,
which is skipped for remote ones to avoid a round-trip), so projects
are removed even when DIRECTORY has already been deleted. Mirrors
project.el's `project-forget-projects-under'. Return the number of
projects removed."
(interactive "DForget projects under directory: \nP")
(let* ((expand (lambda (path)
(file-name-as-directory
(if (file-remote-p path) path (file-truename path)))))
(directory (funcall expand directory))
(projects-removed
(seq-filter
(lambda (project)
(let ((project (funcall expand project)))
(if recursive
(string-prefix-p directory project)
(string= (file-name-directory (directory-file-name project))
directory))))
projectile-known-projects)))
(setq projectile-known-projects
(seq-difference projectile-known-projects projects-removed))
(projectile-merge-known-projects)
(if projects-removed
(message "Projects removed: %s"
(mapconcat #'identity projects-removed ", "))
(message "No projects found under %s." (abbreviate-file-name directory)))
(length projects-removed)))