(if (and
;; FIXME: Invalidate the cache when the value
;; of this variable changes.
- (project--vc-merge-submodules-p root)
+ project-vc-merge-submodules
(project--submodule-p root))
(let* ((parent (file-name-directory
(directory-file-name root))))
(cl-defmethod project-files ((project (head vc)) &optional dirs)
(mapcan
(lambda (dir)
- (let ((ignores (project--value-in-dir 'project-vc-ignores dir))
+ (let ((ignores project-vc-ignores)
backend)
(if (and (file-equal-p dir (nth 2 project))
(setq backend (cadr project))
(split-string
(apply #'vc-git--run-command-string nil "ls-files" args)
"\0" t)))
- (when (project--vc-merge-submodules-p default-directory)
+ (when project-vc-merge-submodules
;; Unfortunately, 'ls-files --recurse-submodules' conflicts with '-o'.
(let* ((submodules (project--git-submodules))
(sub-files
(lambda (s) (concat default-directory s))
(split-string (buffer-string) "\0" t)))))))
-(defun project--vc-merge-submodules-p (dir)
- (project--value-in-dir
- 'project-vc-merge-submodules
- dir))
-
(defun project--git-submodules ()
;; 'git submodule foreach' is much slower.
(condition-case nil
(condition-case nil
(vc-call-backend backend 'ignore-completion-table root)
(vc-not-supported () nil)))))
- (project--value-in-dir 'project-vc-ignores root)
+ project-vc-ignores
(mapcar
(lambda (dir)
(concat dir "/"))
;; Sidestep the issue of expanded/abbreviated file names here.
(cl-set-difference files dirs :test #'file-in-directory-p))
-(defun project--value-in-dir (var dir)
- (with-temp-buffer
- (setq default-directory dir)
- (let ((enable-local-variables :all))
- (hack-dir-local-variables-non-file-buffer))
- (symbol-value var)))
-
(cl-defmethod project-buffers ((project (head vc)))
(let* ((root (expand-file-name (file-name-as-directory (project-root project))))
- (modules (unless (or (project--vc-merge-submodules-p root)
+ (modules (unless (or project-vc-merge-submodules
(project--submodule-p root))
(mapcar
(lambda (m) (format "%s%s/" root m))