From 947bb9eada4ed8c57777dd7027d1d0b373b3b0db Mon Sep 17 00:00:00 2001 From: Bozhidar Batsov Date: Sun, 15 Feb 2026 18:22:17 +0200 Subject: Allow projectile-dired commands to prompt for a project Closes #1684 With a prefix argument, projectile-dired, projectile-dired-other-window, and projectile-dired-other-frame now prompt for a known project to open in dired, rather than always using the current project. --- projectile.el | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/projectile.el b/projectile.el index aedc66d..d70dffb 100644 --- a/projectile.el +++ b/projectile.el @@ -5124,22 +5124,37 @@ The buffers are killed according to the value of (message "[%s] Saved %d buffers" project-name (length modified-buffers))))) ;;;###autoload -(defun projectile-dired () - "Open `dired' at the root of the project." - (interactive) - (dired (projectile-acquire-root))) +(defun projectile-dired (&optional arg) + "Open `dired' at the root of the project. +With a prefix argument ARG, prompt for a known project to open in dired." + (interactive "P") + (dired (if arg + (projectile-completing-read + "Dired in project: " (projectile-relevant-known-projects) + :caller 'projectile-read-project) + (projectile-acquire-root)))) ;;;###autoload -(defun projectile-dired-other-window () - "Open `dired' at the root of the project in another window." - (interactive) - (dired-other-window (projectile-acquire-root))) +(defun projectile-dired-other-window (&optional arg) + "Open `dired' at the root of the project in another window. +With a prefix argument ARG, prompt for a known project to open in dired." + (interactive "P") + (dired-other-window (if arg + (projectile-completing-read + "Dired in project: " (projectile-relevant-known-projects) + :caller 'projectile-read-project) + (projectile-acquire-root)))) ;;;###autoload -(defun projectile-dired-other-frame () - "Open `dired' at the root of the project in another frame." - (interactive) - (dired-other-frame (projectile-acquire-root))) +(defun projectile-dired-other-frame (&optional arg) + "Open `dired' at the root of the project in another frame. +With a prefix argument ARG, prompt for a known project to open in dired." + (interactive "P") + (dired-other-frame (if arg + (projectile-completing-read + "Dired in project: " (projectile-relevant-known-projects) + :caller 'projectile-read-project) + (projectile-acquire-root)))) ;;;###autoload (defun projectile-vc (&optional project-root) -- cgit v1.0