From eab577888330d0f5f12fac6942599292df03879a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felici=C3=A1n=20N=C3=A9meth?= Date: Sat, 2 Feb 2019 09:27:01 +0100 Subject: [PATCH] Make project-files work with remote files * lisp/progmodes/project.el (project--file-remote-names): New function. (project--files-in-directory): Use it to support remote files. --- lisp/progmodes/project.el | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 3603e751fe..4022b4dc23 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -186,12 +186,22 @@ project--find-in-directory (project--dir-ignores project dir))) (or dirs (project-roots project)))) +(defun project--file-remote-names (local-files) + "Return LOCAL-FILES as if they were on the system of `default-directory'." + (let ((remote-id (file-remote-p default-directory))) + (if (not remote-id) + local-files + (mapcar (lambda (file) + (concat remote-id file)) + local-files)))) + (defun project--files-in-directory (dir ignores &optional files) (require 'find-dired) (defvar find-name-arg) - (let ((command (format "%s %s %s -type f %s -print0" + (let ((default-directory dir) + (command (format "%s %s %s -type f %s -print0" find-program - dir + (file-local-name dir) (xref--find-ignores-arguments ignores (expand-file-name dir)) @@ -205,7 +215,8 @@ project--files-in-directory " " (shell-quote-argument ")"))"") ))) - (split-string (shell-command-to-string command) "\0" t))) + (project--file-remote-names + (split-string (shell-command-to-string command) "\0" t)))) (defgroup project-vc nil "Project implementation using the VC package." -- 2.11.0