summaryrefslogtreecommitdiff
path: root/lisp/progmodes/etags.el
diff options
context:
space:
mode:
authorStefan Kangas <stefan@marxist.se>2020-12-09 08:29:03 +0100
committerStefan Kangas <stefan@marxist.se>2020-12-09 08:29:03 +0100
commit7ebd7ba174800f26170c2e01209f849b90073fd8 (patch)
tree8b973a8a23dbf35f1f6bae4926bf3e613b19ad44 /lisp/progmodes/etags.el
parentdc0295c563069ffacfbe01b87baa7701887999c3 (diff)
downloademacs-7ebd7ba174800f26170c2e01209f849b90073fd8.tar.gz
Prefer setq-local in etags.el
* lisp/progmodes/etags.el (initialize-new-tags-table) (etags-recognize-tags-table, tags-recognize-empty-tags-table): Prefer setq-local.
Diffstat (limited to 'lisp/progmodes/etags.el')
-rw-r--r--lisp/progmodes/etags.el77
1 files changed, 36 insertions, 41 deletions
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index 104d889b8be..aadfb8150cf 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -258,9 +258,9 @@ One argument, the tag info returned by `snarf-tag-function'.")
Return non-nil if it is a valid tags table, and
in that case, also make the tags table state variables
buffer-local and set them to nil."
- (set (make-local-variable 'tags-table-files) nil)
- (set (make-local-variable 'tags-completion-table) nil)
- (set (make-local-variable 'tags-included-tables) nil)
+ (setq-local tags-table-files nil)
+ (setq-local tags-completion-table nil)
+ (setq-local tags-included-tables nil)
;; We used to initialize find-tag-marker-ring and tags-location-ring
;; here, to new empty rings. But that is wrong, because those
;; are global.
@@ -1234,34 +1234,29 @@ error message."
"If `etags-verify-tags-table', make buffer-local format variables.
If current buffer is a valid etags TAGS file, then give it
buffer-local values of tags table format variables."
- (and (etags-verify-tags-table)
- ;; It is annoying to flash messages on the screen briefly,
- ;; and this message is not useful. -- rms
- ;; (message "%s is an `etags' TAGS file" buffer-file-name)
- (mapc (lambda (elt) (set (make-local-variable (car elt)) (cdr elt)))
- '((file-of-tag-function . etags-file-of-tag)
- (tags-table-files-function . etags-tags-table-files)
- (tags-completion-table-function . etags-tags-completion-table)
- (snarf-tag-function . etags-snarf-tag)
- (goto-tag-location-function . etags-goto-tag-location)
- (find-tag-regexp-search-function . re-search-forward)
- (find-tag-regexp-tag-order . (tag-re-match-p))
- (find-tag-regexp-next-line-after-failure-p . t)
- (find-tag-search-function . search-forward)
- (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
- tag-any-match-p))
- (find-tag-next-line-after-failure-p . nil)
- (list-tags-function . etags-list-tags)
- (tags-apropos-function . etags-tags-apropos)
- (tags-included-tables-function . etags-tags-included-tables)
- (verify-tags-table-function . etags-verify-tags-table)
- ))))
+ (when (etags-verify-tags-table)
+ (setq-local file-of-tag-function 'etags-file-of-tag)
+ (setq-local tags-table-files-function 'etags-tags-table-files)
+ (setq-local tags-completion-table-function 'etags-tags-completion-table)
+ (setq-local snarf-tag-function 'etags-snarf-tag)
+ (setq-local goto-tag-location-function 'etags-goto-tag-location)
+ (setq-local find-tag-regexp-search-function 're-search-forward)
+ (setq-local find-tag-regexp-tag-order '(tag-re-match-p))
+ (setq-local find-tag-regexp-next-line-after-failure-p t)
+ (setq-local find-tag-search-function 'search-forward)
+ (setq-local 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
+ tag-any-match-p))
+ (setq-local find-tag-next-line-after-failure-p nil)
+ (setq-local list-tags-function 'etags-list-tags)
+ (setq-local tags-apropos-function 'etags-tags-apropos)
+ (setq-local tags-included-tables-function 'etags-tags-included-tables)
+ (setq-local verify-tags-table-function 'etags-verify-tags-table)))
(defun etags-verify-tags-table ()
"Return non-nil if the current buffer is a valid etags TAGS file."
@@ -1593,16 +1588,16 @@ hits the start of file."
"Return non-nil if current buffer is empty.
If empty, make buffer-local values of the tags table format variables
that do nothing."
- (and (zerop (buffer-size))
- (mapc (lambda (sym) (set (make-local-variable sym) 'ignore))
- '(tags-table-files-function
- tags-completion-table-function
- find-tag-regexp-search-function
- find-tag-search-function
- tags-apropos-function
- tags-included-tables-function))
- (set (make-local-variable 'verify-tags-table-function)
- (lambda () (zerop (buffer-size))))))
+ (when (zerop (buffer-size))
+ (setq-local tags-table-files-function #'ignore)
+ (setq-local tags-completion-table-function #'ignore)
+ (setq-local find-tag-regexp-search-function #'ignore)
+ (setq-local find-tag-search-function #'ignore)
+ (setq-local tags-apropos-function #'ignore)
+ (setq-local tags-included-tables-function #'ignore)
+ (setq-local verify-tags-table-function
+ (lambda () (zerop (buffer-size))))))
+
;; Match qualifier functions for tagnames.
;; These functions assume the etags file format defined in etc/ETAGS.EBNF.