diff options
author | Francesco Potortì <[email protected]> | 2002-06-20 11:27:01 +0000 |
---|---|---|
committer | Francesco Potortì <[email protected]> | 2002-06-20 11:27:01 +0000 |
commit | d30ffe0ed2861927b9db9dfc61f62eec7cbd38c7 (patch) | |
tree | 47abe16477f757da8d659a751ee57e3d16d4174a /lisp | |
parent | 1770ff00ed882755e21af824530e376a6493f271 (diff) |
(tag-implicit-name-match-p): New function.
(etags-recognize-tags-table): Use it for implicit tag names.
Diffstat (limited to 'lisp')
-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 a4aeaa2e3f..ed9959a1c0 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -1196,6 +1196,7 @@ where they were found." (find-tag-tag-order . (tag-exact-file-name-match-p tag-file-name-match-p tag-exact-match-p + tag-implicit-name-match-p tag-symbol-match-p tag-word-match-p tag-partial-file-name-match-p @@ -1505,6 +1506,17 @@ where they were found." ;; We are not on the explicit tag name, but perhaps it follows. (looking-at (concat "[^\177\n]*\177" (regexp-quote tag) "\001")))) +;; t if point is at a tag line that has an implicit name. +;; point should be just after a string that matches TAG. +(defun tag-implicit-name-match-p (tag) + ;; Look at the comment of the make_tag function in lib-src/etags.c for + ;; a textual description of the four rules. + (and (string-match "^[^ \t()=,;]+$" tag) ;rule #1 + (looking-at "[ \t()=,;]?\177") ;rules #2 and #4 + (save-excursion + (backward-char (1+ (length tag))) + (looking-at "[\n \t()=,;]")))) ;rule #3 + ;; t if point is at a tag line that matches TAG as a symbol. ;; point should be just after a string that matches TAG. (defun tag-symbol-match-p (tag) |