]> git.eshelyaron.com Git - emacs.git/commitdiff
Support filename matches in etags xref backend
authorDmitry Gutov <dgutov@yandex.ru>
Tue, 30 Jul 2019 13:59:32 +0000 (16:59 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Tue, 30 Jul 2019 13:59:59 +0000 (16:59 +0300)
* lisp/progmodes/etags.el (etags--xref-find-definitions):
Support filename matches (bug#32510).

lisp/progmodes/etags.el

index 7bf575340ec62276e96428aa07232ee45fb5a613..a052ad2ce56b5df678e8674a7bc9128e2dd7f736 100644 (file)
@@ -2070,14 +2070,15 @@ for \\[find-tag] (which see)."
               (beginning-of-line)
               (pcase-let* ((tag-info (etags-snarf-tag))
                            (`(,hint ,line . _) tag-info))
-                (unless (eq hint t) ; hint==t if we are in a filename line
-                  (let* ((file (file-of-tag))
-                         (mark-key (cons file line)))
-                    (unless (gethash mark-key marks)
-                      (let ((loc (xref-make-etags-location
-                                  tag-info (expand-file-name file))))
-                        (push (xref-make hint loc) xrefs)
-                        (puthash mark-key t marks)))))))))))
+                (let* ((file (file-of-tag))
+                       (mark-key (cons file line)))
+                  (unless (gethash mark-key marks)
+                    (let ((loc (xref-make-etags-location
+                                tag-info (expand-file-name file))))
+                      (push (xref-make (if (eq hint t) "(filename match)" hint)
+                                       loc)
+                            xrefs)
+                      (puthash mark-key t marks))))))))))
     (nreverse xrefs)))
 
 (defclass xref-etags-location (xref-location)