mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-15 09:47:20 +00:00
Add a second argument to project-ignores
* lisp/progmodes/project.el (project-ignores): Add a second argument DIR. * lisp/progmodes/project.el (project-ignores): Only include the VC ignores if DIR is the VC root. * lisp/progmodes/xref.el (xref-find-regexp): Update accordingly.
This commit is contained in:
parent
08d65696c9
commit
543bb9bc20
@ -655,7 +655,6 @@ It can be quoted, or be inside a quoted form."
|
||||
|
||||
(declare-function project-search-path "project")
|
||||
(declare-function project-current "project")
|
||||
(declare-function project-prune-directories "project")
|
||||
|
||||
(defun elisp--xref-find-references (symbol)
|
||||
(cl-mapcan
|
||||
|
@ -78,10 +78,12 @@ It should include the current project root, as well as the roots
|
||||
of any other currently open projects, if they're meant to be
|
||||
edited together. The directory names should be absolute.")
|
||||
|
||||
(cl-defgeneric project-ignores (_project)
|
||||
"Return the list of glob patterns that match ignored files.
|
||||
(cl-defgeneric project-ignores (_project _dir)
|
||||
"Return the list of glob patterns to ignore inside DIR.
|
||||
Patterns can match both regular files and directories.
|
||||
To root an entry, start it with `./'. To match directories only,
|
||||
end it with `/'."
|
||||
end it with `/'. DIR must be either one of `project-roots', or
|
||||
an element of `project-search-path'."
|
||||
(require 'grep)
|
||||
(defvar grep-find-ignored-files)
|
||||
(nconc
|
||||
@ -100,16 +102,18 @@ end it with `/'."
|
||||
(cl-defmethod project-roots ((project (head vc)))
|
||||
(list (cdr project)))
|
||||
|
||||
(cl-defmethod project-ignores ((project (head vc)))
|
||||
(cl-defmethod project-ignores ((project (head vc)) dir)
|
||||
(nconc
|
||||
(let* ((dir (cdr project))
|
||||
(backend (vc-responsible-backend dir)))
|
||||
(mapcar
|
||||
(lambda (entry)
|
||||
(if (string-match "\\`/" entry)
|
||||
(replace-match "./" t t entry)
|
||||
entry))
|
||||
(vc-call-backend backend 'ignore-completion-table dir)))
|
||||
(let* ((root (cdr project))
|
||||
backend)
|
||||
(when (file-equal-p dir root)
|
||||
(setq backend (vc-responsible-backend root))
|
||||
(mapcar
|
||||
(lambda (entry)
|
||||
(if (string-match "\\`/" entry)
|
||||
(replace-match "./" t t entry)
|
||||
entry))
|
||||
(vc-call-backend backend 'ignore-completion-table root))))
|
||||
(cl-call-next-method)))
|
||||
|
||||
(defun project-ask-user (dir)
|
||||
|
@ -791,7 +791,8 @@ to search in, and the file name pattern to search for."
|
||||
(lambda (_kind regexp)
|
||||
(cl-mapcan
|
||||
(lambda (dir)
|
||||
(xref-collect-matches regexp files dir (project-ignores proj)))
|
||||
(xref-collect-matches regexp files dir
|
||||
(project-ignores proj dir)))
|
||||
dirs))))
|
||||
(xref--show-xrefs regexp 'matches regexp nil)))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user