From: Dmitry Gutov Date: Tue, 7 Jan 2020 13:30:25 +0000 (+0300) Subject: xref-matches-in-files: Big Tramp speed-up X-Git-Tag: emacs-27.0.90~202 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b46c75b16cb870584c0e00eb81c85715c5421d20;p=emacs.git 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). --- 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