diff options
| author | Francesco Potortì | 2002-06-20 11:27:01 +0000 |
|---|---|---|
| committer | Francesco Potortì | 2002-06-20 11:27:01 +0000 |
| commit | d30ffe0ed2861927b9db9dfc61f62eec7cbd38c7 (patch) | |
| tree | 47abe16477f757da8d659a751ee57e3d16d4174a | |
| parent | 1770ff00ed882755e21af824530e376a6493f271 (diff) | |
| download | emacs-d30ffe0ed2861927b9db9dfc61f62eec7cbd38c7.tar.gz emacs-d30ffe0ed2861927b9db9dfc61f62eec7cbd38c7.zip | |
(tag-implicit-name-match-p): New function.
(etags-recognize-tags-table): Use it for implicit tag names.
| -rw-r--r-- | lisp/progmodes/etags.el | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index a4aeaa2e3fe..ed9959a1c02 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el | |||
| @@ -1196,6 +1196,7 @@ where they were found." | |||
| 1196 | (find-tag-tag-order . (tag-exact-file-name-match-p | 1196 | (find-tag-tag-order . (tag-exact-file-name-match-p |
| 1197 | tag-file-name-match-p | 1197 | tag-file-name-match-p |
| 1198 | tag-exact-match-p | 1198 | tag-exact-match-p |
| 1199 | tag-implicit-name-match-p | ||
| 1199 | tag-symbol-match-p | 1200 | tag-symbol-match-p |
| 1200 | tag-word-match-p | 1201 | tag-word-match-p |
| 1201 | tag-partial-file-name-match-p | 1202 | tag-partial-file-name-match-p |
| @@ -1505,6 +1506,17 @@ where they were found." | |||
| 1505 | ;; We are not on the explicit tag name, but perhaps it follows. | 1506 | ;; We are not on the explicit tag name, but perhaps it follows. |
| 1506 | (looking-at (concat "[^\177\n]*\177" (regexp-quote tag) "\001")))) | 1507 | (looking-at (concat "[^\177\n]*\177" (regexp-quote tag) "\001")))) |
| 1507 | 1508 | ||
| 1509 | ;; t if point is at a tag line that has an implicit name. | ||
| 1510 | ;; point should be just after a string that matches TAG. | ||
| 1511 | (defun tag-implicit-name-match-p (tag) | ||
| 1512 | ;; Look at the comment of the make_tag function in lib-src/etags.c for | ||
| 1513 | ;; a textual description of the four rules. | ||
| 1514 | (and (string-match "^[^ \t()=,;]+$" tag) ;rule #1 | ||
| 1515 | (looking-at "[ \t()=,;]?\177") ;rules #2 and #4 | ||
| 1516 | (save-excursion | ||
| 1517 | (backward-char (1+ (length tag))) | ||
| 1518 | (looking-at "[\n \t()=,;]")))) ;rule #3 | ||
| 1519 | |||
| 1508 | ;; t if point is at a tag line that matches TAG as a symbol. | 1520 | ;; t if point is at a tag line that matches TAG as a symbol. |
| 1509 | ;; point should be just after a string that matches TAG. | 1521 | ;; point should be just after a string that matches TAG. |
| 1510 | (defun tag-symbol-match-p (tag) | 1522 | (defun tag-symbol-match-p (tag) |