Mercurial > emacs
changeset 34190:e624fa36b252
(tag-partial-file-name-match-p): New function.
(etags-recognize-tags-table, find-tag-in-order): New
functionality: interpret file names as tags.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Mon, 04 Dec 2000 21:20:57 +0000 |
parents | 772e00ca5861 |
children | 106595ce3db9 |
files | lisp/progmodes/etags.el |
diffstat | 1 files changed, 15 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/etags.el Mon Dec 04 20:43:27 2000 +0000 +++ b/lisp/progmodes/etags.el Mon Dec 04 21:20:57 2000 +0000 @@ -1098,7 +1098,14 @@ (setq tag-lines-already-matched (cons match-marker tag-lines-already-matched)) ;; Expand the filename, using the tags table buffer's default-directory. - (setq file (expand-file-name (file-of-tag)) + ;; We should be able to search for file-name backwards in file-of-tag: + ;; the beginning-of-line is ok except when positionned on a "file-name" tag. + (setq file (expand-file-name + (if (or (eq (car order) 'tag-exact-file-name-match-p) + (eq (car order) 'tag-partial-file-name-match-p)) + (save-excursion (next-line 1) + (file-of-tag)) + (file-of-tag))) tag-info (funcall snarf-tag-function)) ;; Get the local value in the tags table buffer before switching buffers. @@ -1136,6 +1143,7 @@ tag-exact-match-p tag-symbol-match-p tag-word-match-p + tag-partial-file-name-match-p tag-any-match-p)) (find-tag-next-line-after-failure-p . nil) (list-tags-function . etags-list-tags) @@ -1442,8 +1450,13 @@ (defun tag-exact-file-name-match-p (tag) (and (looking-at ",") - (save-excursion (backward-char (length tag)) + (save-excursion (backward-char (+ 2 (length tag))) (looking-at "\f\n")))) +(defun tag-partial-file-name-match-p (tag) + (and (looking-at ".*,") + (save-excursion (beginning-of-line) + (backward-char 2) + (looking-at "\f\n")))) ;; t if point is in a tag line with a tag containing TAG as a substring. (defun tag-any-match-p (tag)