diff options
| author | Dmitry Gutov | 2015-05-02 13:11:07 +0300 |
|---|---|---|
| committer | Dmitry Gutov | 2015-05-02 13:11:21 +0300 |
| commit | 3bfb6a0f12f020ed869400c6bcae90fec2c448da (patch) | |
| tree | a7df5da74b30efe9a6b401e9956b15d463f66fc1 | |
| parent | 3874b33a32ccc481a12a7b9259b7c3963a786a6f (diff) | |
| download | emacs-3bfb6a0f12f020ed869400c6bcae90fec2c448da.tar.gz emacs-3bfb6a0f12f020ed869400c6bcae90fec2c448da.zip | |
Fix etags-xref-find for references
* 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).
| -rw-r--r-- | lisp/progmodes/elisp-mode.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/etags.el | 13 |
2 files changed, 10 insertions, 5 deletions
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index ef477d64fcc..2bb661a59c8 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el | |||
| @@ -650,7 +650,7 @@ It can be quoted, or be inside a quoted form." | |||
| 650 | (if (string-prefix-p (car ref) (cadr ref)) | 650 | (if (string-prefix-p (car ref) (cadr ref)) |
| 651 | (setcdr ref (cddr ref)) | 651 | (setcdr ref (cddr ref)) |
| 652 | (setq ref (cdr ref)))) | 652 | (setq ref (cdr ref)))) |
| 653 | (mapcan | 653 | (cl-mapcan |
| 654 | (lambda (dir) | 654 | (lambda (dir) |
| 655 | (and (file-exists-p dir) | 655 | (and (file-exists-p dir) |
| 656 | (xref-collect-references symbol dir))) | 656 | (xref-collect-references symbol dir))) |
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 9a57d8ad886..4e923aac197 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el | |||
| @@ -2082,10 +2082,15 @@ for \\[find-tag] (which see)." | |||
| 2082 | (defun etags-xref-find (action id) | 2082 | (defun etags-xref-find (action id) |
| 2083 | (pcase action | 2083 | (pcase action |
| 2084 | (`definitions (etags--xref-find-definitions id)) | 2084 | (`definitions (etags--xref-find-definitions id)) |
| 2085 | (`references (mapcan | 2085 | (`references |
| 2086 | (lambda (file) | 2086 | (let ((dirs (if tags-table-list |
| 2087 | (xref-collect-references id (file-name-directory file))) | 2087 | (mapcar #'file-name-directory tags-table-list) |
| 2088 | tags-table-list)) | 2088 | ;; If no tags files are loaded, prompt for the dir. |
| 2089 | (list (read-directory-name "In directory: " nil nil t))))) | ||
| 2090 | (cl-mapcan | ||
| 2091 | (lambda (dir) | ||
| 2092 | (xref-collect-references id dir)) | ||
| 2093 | dirs))) | ||
| 2089 | (`apropos (etags--xref-find-definitions id t)))) | 2094 | (`apropos (etags--xref-find-definitions id t)))) |
| 2090 | 2095 | ||
| 2091 | (defun etags--xref-find-definitions (pattern &optional regexp?) | 2096 | (defun etags--xref-find-definitions (pattern &optional regexp?) |