]> git.eshelyaron.com Git - emacs.git/commitdiff
Drop the visited file modtime check for remote xref hits
authorDmitry Gutov <dgutov@yandex.ru>
Sat, 26 Feb 2022 00:18:34 +0000 (02:18 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Sat, 26 Feb 2022 00:27:30 +0000 (02:27 +0200)
* lisp/progmodes/xref.el (xref--hits-remote-id): New variable.
(xref--convert-hits, xref--collect-matches)
(xref--find-file-buffer): Use it (bug#54025).

lisp/progmodes/xref.el

index 96fb835d0ffaefdced44506b71e53005e2677592..5b27c83584869840c28e365f0ebad2dc49088d7c 100644 (file)
@@ -1923,21 +1923,22 @@ Such as the current syntax table and the applied syntax properties."
 
 (defvar xref--last-file-buffer nil)
 (defvar xref--temp-buffer-file-name nil)
+(defvar xref--hits-remote-id nil)
 
 (defun xref--convert-hits (hits regexp)
   (let (xref--last-file-buffer
         (tmp-buffer (generate-new-buffer " *xref-temp*"))
-        (remote-id (file-remote-p default-directory))
+        (xref--hits-remote-id (file-remote-p default-directory))
         (syntax-needed (xref--regexp-syntax-dependent-p regexp)))
     (unwind-protect
         (mapcan (lambda (hit)
-                  (xref--collect-matches hit regexp tmp-buffer remote-id syntax-needed))
+                  (xref--collect-matches hit regexp tmp-buffer syntax-needed))
                 hits)
       (kill-buffer tmp-buffer))))
 
-(defun xref--collect-matches (hit regexp tmp-buffer remote-id syntax-needed)
+(defun xref--collect-matches (hit regexp tmp-buffer syntax-needed)
   (pcase-let* ((`(,line ,file ,text) hit)
-               (file (and file (concat remote-id file)))
+               (file (and file (concat xref--hits-remote-id file)))
                (buf (xref--find-file-buffer file))
                (inhibit-modification-hooks t))
     (if buf
@@ -2016,7 +2017,8 @@ Such as the current syntax table and the applied syntax properties."
       (when (and buf
                  (or
                   (buffer-modified-p buf)
-                  (not (verify-visited-file-modtime (current-buffer)))))
+                  (unless xref--hits-remote-id
+                    (not (verify-visited-file-modtime (current-buffer))))))
         ;; We can't use buffers whose contents diverge from disk (bug#54025).
         (setq buf nil))
       (setq xref--last-file-buffer (cons file buf))))