From b46c75b16cb870584c0e00eb81c85715c5421d20 Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Tue, 7 Jan 2020 16:30:25 +0300 Subject: [PATCH] xref-matches-in-files: Big Tramp speed-up * lisp/progmodes/xref.el (xref-matches-in-files): Greatly improve performance with remote files using Tramp (bug#34343). --- lisp/progmodes/xref.el | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index a8ca6f8fbec..4fbcd08506b 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -1218,6 +1218,9 @@ IGNORES is a list of glob patterns for files to ignore." #'xref-matches-in-directory "27.1") +(declare-function tramp-tramp-file-p "tramp") +(declare-function tramp-file-local-name "tramp") + ;;;###autoload (defun xref-matches-in-files (regexp files) "Find all matches for REGEXP in FILES. @@ -1240,7 +1243,12 @@ FILES must be a list of absolute file names." "") (shell-quote-argument (xref--regexp-to-extended regexp))))) (when remote-id - (setq files (mapcar #'file-local-name files))) + (require 'tramp) + (setq files (mapcar + (if (tramp-tramp-file-p dir) + #'tramp-file-local-name + #'file-local-name) + files))) (with-current-buffer output (erase-buffer) (with-temp-buffer -- 2.39.2