summaryrefslogtreecommitdiff
path: root/lisp/progmodes/project.el
diff options
context:
space:
mode:
authorDmitry Gutov <dgutov@yandex.ru>2019-01-19 03:46:07 +0300
committerDmitry Gutov <dgutov@yandex.ru>2019-01-19 03:54:58 +0300
commitb6af090022a7a94202e2a6e86605e1466794c224 (patch)
treea0b7eda19821b0ea213e71168e98f02c6c0f0423 /lisp/progmodes/project.el
parent7717778e8b1a04c51e49a15481257ef0ae385d62 (diff)
downloademacs-b6af090022a7a94202e2a6e86605e1466794c224.tar.gz
Misc ignore-related project.el changes
* lisp/progmodes/project.el (project-ignores): Don't append the default ignores list, just use vc-directory-exclusion-list. (project--dir-ignores): Use the default ignores if the dir is outside of the current project. (project-files): Use project--dir-ignores to support external roots better.
Diffstat (limited to 'lisp/progmodes/project.el')
-rw-r--r--lisp/progmodes/project.el11
1 files changed, 8 insertions, 3 deletions
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index f795c36fa06..754659d6c99 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -184,7 +184,8 @@ to find the list of ignores for each directory."
(require 'xref)
(cl-mapcan
(lambda (dir)
- (project--files-in-directory dir (project-ignores project dir)))
+ (project--files-in-directory dir
+ (project--dir-ignores project dir)))
(or dirs (project-roots project))))
(defun project--files-in-directory (dir ignores &optional files)
@@ -283,7 +284,10 @@ backend implementation of `project-external-roots'.")
entry))
(vc-call-backend backend 'ignore-completion-table root)))
(project--value-in-dir 'project-vc-ignores root)
- (cl-call-next-method))))
+ (mapcar
+ (lambda (dir)
+ (concat dir "/"))
+ vc-directory-exclusion-list))))
(defun project-combine-directories (&rest lists-of-dirs)
"Return a sorted and culled list of directory names.
@@ -346,7 +350,8 @@ requires quoting, e.g. `\\[quoted-insert]<space>'."
(defun project--dir-ignores (project dir)
(let* ((roots (project-roots project))
(root (cl-find dir roots :test #'file-in-directory-p)))
- (when root
+ (if (not root)
+ (project-ignores nil nil) ;The defaults.
(let ((ignores (project-ignores project root)))
(if (file-equal-p root dir)
ignores