summaryrefslogtreecommitdiff
path: root/lisp/vc/vc-hooks.el
diff options
context:
space:
mode:
authorJuri Linkov <juri@linkov.net>2020-06-24 02:59:31 +0300
committerJuri Linkov <juri@linkov.net>2020-06-24 02:59:31 +0300
commitbfd96e995dae796fd3f68301fcc4921fb4c42745 (patch)
tree54e6b155fcf79fdc9158440344ea3f9164f2bcea /lisp/vc/vc-hooks.el
parent4e04ca847fc04ad0b2845143e0788485de0ed997 (diff)
downloademacs-bfd96e995dae796fd3f68301fcc4921fb4c42745.tar.gz
emacs-bfd96e995dae796fd3f68301fcc4921fb4c42745.tar.bz2
emacs-bfd96e995dae796fd3f68301fcc4921fb4c42745.zip
M-n in read-directory-name of vc commands gets project dirs (bug#41821)
* lisp/progmodes/project.el (project-known-roots): New autoloaded function. * lisp/vc/vc-hooks.el (vc-known-roots): New function. * lisp/vc/vc.el (vc-root-diff, vc-print-root-log): * lisp/vc/vc-dir.el (vc-dir): Use 'vc-known-roots' for default values for read-directory-name.
Diffstat (limited to 'lisp/vc/vc-hooks.el')
-rw-r--r--lisp/vc/vc-hooks.el5
1 files changed, 5 insertions, 0 deletions
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
index ce72a49b955..9675c364bb7 100644
--- a/lisp/vc/vc-hooks.el
+++ b/lisp/vc/vc-hooks.el
@@ -299,6 +299,11 @@ non-nil if FILE exists and its contents were successfully inserted."
(set-buffer-modified-p nil)
t))
+(declare-function project-try-vc "project")
+(defun vc-known-roots ()
+ "Return a list of known vc roots."
+ (seq-filter #'project-try-vc (mapcar #'car (project-known-roots))))
+
(defun vc-find-root (file witness)
"Find the root of a checked out project.
The function walks up the directory tree from FILE looking for WITNESS.