project--find-regexp-in-files: Support remote files
* lisp/progmodes/project.el (project--find-regexp-in-files): Support remote files (bug#34343).
This commit is contained in:
parent
21c3020fce
commit
be38e39fcc
1 changed files with 7 additions and 1 deletions
|
@ -450,6 +450,9 @@ pattern to search for."
|
|||
(status nil)
|
||||
(hits nil)
|
||||
(xrefs nil)
|
||||
;; Support for remote files.
|
||||
(dir (file-name-directory (car files)))
|
||||
(remote-id (file-remote-p dir))
|
||||
;; 'git ls-files' can output broken symlinks.
|
||||
(command (format "xargs -0 grep %s -snHE -e %s"
|
||||
(if (and case-fold-search
|
||||
|
@ -457,10 +460,13 @@ pattern to search for."
|
|||
"-i"
|
||||
"")
|
||||
(shell-quote-argument (xref--regexp-to-extended regexp)))))
|
||||
(when remote-id
|
||||
(setq files (mapcar #'file-local-name files)))
|
||||
(with-current-buffer output
|
||||
(erase-buffer)
|
||||
(with-temp-buffer
|
||||
(insert (mapconcat #'identity files "\0"))
|
||||
(setq default-directory dir)
|
||||
(setq status
|
||||
(project--process-file-region (point-min)
|
||||
(point-max)
|
||||
|
@ -478,7 +484,7 @@ pattern to search for."
|
|||
(buffer-substring (point-min) (line-end-position))))
|
||||
(while (re-search-forward grep-re nil t)
|
||||
(push (list (string-to-number (match-string line-group))
|
||||
(match-string file-group)
|
||||
(concat remote-id (match-string file-group))
|
||||
(buffer-substring-no-properties (point) (line-end-position)))
|
||||
hits)))
|
||||
(setq xrefs (xref--convert-hits (nreverse hits) regexp))
|
||||
|
|
Loading…
Add table
Reference in a new issue