mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-28 10:56:36 +00:00
(tags-completion-table): Do completion from all the tables in the
current list, as documented in the manual.
This commit is contained in:
parent
957e399601
commit
f37de644fd
@ -746,27 +746,25 @@ Assumes the tags table is the current buffer."
|
||||
;; their tags included in the completion table.
|
||||
(defun tags-completion-table ()
|
||||
(or tags-completion-table
|
||||
;; No cached value for this buffer.
|
||||
(condition-case ()
|
||||
(prog2
|
||||
(message "Making tags completion table for %s..." buffer-file-name)
|
||||
(let ((included (tags-included-tables))
|
||||
(table (funcall tags-completion-table-function)))
|
||||
(save-excursion
|
||||
;; Iterate over the list of included tables, and combine each
|
||||
;; included table's completion obarray to the parent obarray.
|
||||
(while included
|
||||
;; Visit the buffer.
|
||||
(let ((tags-file-name (car included)))
|
||||
(visit-tags-table-buffer 'same))
|
||||
;; Recurse in that buffer to compute its completion table.
|
||||
(if (tags-completion-table)
|
||||
;; Combine the tables.
|
||||
(mapatoms (lambda (sym) (intern (symbol-name sym) table))
|
||||
tags-completion-table))
|
||||
(setq included (cdr included))))
|
||||
(setq tags-completion-table table))
|
||||
(message "Making tags completion table for %s...done"
|
||||
buffer-file-name))
|
||||
(let (current-table combined-table)
|
||||
(message "Making tags completion table for %s..." buffer-file-name)
|
||||
(save-excursion
|
||||
;; Iterate over the current list of tags tables.
|
||||
(while (visit-tags-table-buffer (and combined-table t))
|
||||
;; Find possible completions in this table.
|
||||
(setq current-table (funcall tags-completion-table-function))
|
||||
;; Merge this buffer's completions into the combined table.
|
||||
(if combined-table
|
||||
(mapatoms
|
||||
(lambda (sym) (intern (symbol-name sym) combined-table))
|
||||
current-table)
|
||||
(setq combined-table current-table))))
|
||||
(message "Making tags completion table for %s...done"
|
||||
buffer-file-name)
|
||||
;; Cache the result a buffer-local variable.
|
||||
(setq tags-completion-table combined-table))
|
||||
(quit (message "Tags completion table construction aborted.")
|
||||
(setq tags-completion-table nil)))))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user