]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix etags-xref-find for references
authorDmitry Gutov <dgutov@yandex.ru>
Sat, 2 May 2015 10:11:07 +0000 (13:11 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Sat, 2 May 2015 10:11:21 +0000 (13:11 +0300)
* lisp/progmodes/elisp-mode.el (elisp--xref-find-references): Use `cl-mapcan'.

* lisp/progmodes/etags.el (etags-xref-find): Ditto.  Prompt for
directory if no tags tables are loaded (bug#19468).

lisp/progmodes/elisp-mode.el
lisp/progmodes/etags.el

index ef477d64fcc5c1f07b9022f039d88bfd732460b5..2bb661a59c803d814ab05a271b2918839774a89c 100644 (file)
@@ -650,7 +650,7 @@ It can be quoted, or be inside a quoted form."
       (if (string-prefix-p (car ref) (cadr ref))
           (setcdr ref (cddr ref))
         (setq ref (cdr ref))))
-    (mapcan
+    (cl-mapcan
      (lambda (dir)
        (and (file-exists-p dir)
             (xref-collect-references symbol dir)))
index 9a57d8ad88601b47bf3fe65077fc93193a9cc4ac..4e923aac1976163650661af94c6e34a7669850c4 100644 (file)
@@ -2082,10 +2082,15 @@ for \\[find-tag] (which see)."
 (defun etags-xref-find (action id)
   (pcase action
     (`definitions (etags--xref-find-definitions id))
-    (`references (mapcan
-                  (lambda (file)
-                    (xref-collect-references id (file-name-directory file)))
-                  tags-table-list))
+    (`references
+     (let ((dirs (if tags-table-list
+                     (mapcar #'file-name-directory tags-table-list)
+                   ;; If no tags files are loaded, prompt for the dir.
+                   (list (read-directory-name "In directory: " nil nil t)))))
+       (cl-mapcan
+        (lambda (dir)
+          (xref-collect-references id dir))
+        dirs)))
     (`apropos (etags--xref-find-definitions id t))))
 
 (defun etags--xref-find-definitions (pattern &optional regexp?)