Subject: Re: bug#41821: 28.0.50; read-directory-name in vc commands should provide defaults from projects

From: Juri Linkov <[email-masked]>
Date: Sun, 21 Jun 2020 02:51:56 +0300

>> Maybe something like:
>
> Not too bad.
>
> Though I'd rather not extend the public contract of project.el with
> a function that special-cases VC projects.
>
> So maybe something like this instead:
>
> +;; Or use project-try-vc after all. But this should be faster in the
> +;; event when there actually are non-VC based projects in the list.
> +(defun vc--known-vc-roots ()
> +  (require 'project)
> +  (defvar project--list)
> +  (project--ensure-read-project-list)

Calling internal project.el functions from vc.el?  Really?

> Personally, though, when I want behavior like this, I would probably just
> type 'C-x p v'.

'C-x p v' is not a replacement for 'C-x v L'.

> The directory name reading with completion performed by
> project-prompt-project-dir is more quick and handy (though I'll confess 
> to using Ivy as the completion UI for this and one other function; vertical
> completion fits these long string values best).

'M-n' works fine without Ivy to select a recent project dir.

> It also puts the selected project on the top of the list, which
> vc--known-vc-roots (or your function) don't do.

I don't understand what is the selected project.  The current project?
Then neither 'C-x p v', nor 'C-x v L' should ask for a project directory
when called from default-directory of the current project.