mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-27 19:31:38 +00:00
* minibuffer.el (tags-completion-at-point-function): Move to etags.el.
* progmodes/etags.el (tags-completion-at-point-function): Remove left over interactive spec. Add autoloading stub. (complete-tag): Use tags-completion-at-point-function.
This commit is contained in:
parent
27601456d7
commit
8c0bf8b395
@ -1,3 +1,10 @@
|
||||
2010-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* minibuffer.el (tags-completion-at-point-function): Move to etags.el.
|
||||
* progmodes/etags.el (tags-completion-at-point-function):
|
||||
Remove left over interactive spec. Add autoloading stub.
|
||||
(complete-tag): Use tags-completion-at-point-function.
|
||||
|
||||
2010-04-30 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* minibuffer.el (tags-completion-at-point-function): Fix return
|
||||
|
@ -1169,27 +1169,6 @@ Currently supported properties are:
|
||||
`:predicate' a predicate that completion candidates need to satisfy.
|
||||
`:annotation-function' the value to use for `completion-annotate-function'.")
|
||||
|
||||
(declare-function tags-lazy-completion-table "etags.el" ())
|
||||
(defun tags-completion-at-point-function ()
|
||||
"Using tags, return a completion table for the text around point.
|
||||
If no tags table is loaded, do nothing and return nil."
|
||||
(interactive)
|
||||
(when (or tags-table-list tags-file-name)
|
||||
(require 'etags)
|
||||
(let ((completion-ignore-case (if (memq tags-case-fold-search '(t nil))
|
||||
tags-case-fold-search
|
||||
case-fold-search))
|
||||
(pattern (funcall (or find-tag-default-function
|
||||
(get major-mode 'find-tag-default-function)
|
||||
'find-tag-default)))
|
||||
beg)
|
||||
(when pattern
|
||||
(save-excursion
|
||||
(search-backward pattern)
|
||||
(setq beg (point))
|
||||
(forward-char (length pattern))
|
||||
(list beg (point) (tags-lazy-completion-table)))))))
|
||||
|
||||
(defun complete-symbol (&optional arg)
|
||||
"Perform completion on the text around point.
|
||||
The completion method is determined by `completion-at-point-functions'.
|
||||
|
@ -423,9 +423,9 @@ Returns non-nil if it is a valid table."
|
||||
(if (get-file-buffer file)
|
||||
;; The file is already in a buffer. Check for the visited file
|
||||
;; having changed since we last used it.
|
||||
(let (win)
|
||||
(progn
|
||||
(set-buffer (get-file-buffer file))
|
||||
(setq win (or verify-tags-table-function (tags-table-mode)))
|
||||
(or verify-tags-table-function (tags-table-mode))
|
||||
(if (or (verify-visited-file-modtime (current-buffer))
|
||||
;; Decide whether to revert the file.
|
||||
;; revert-without-query can say to revert
|
||||
@ -787,6 +787,30 @@ tags table and its (recursively) included tags tables."
|
||||
(let ((enable-recursive-minibuffers t))
|
||||
(visit-tags-table-buffer))
|
||||
(complete-with-action action (tags-completion-table) string pred))))))
|
||||
|
||||
;;;###autoload (defun tags-completion-at-point-function ()
|
||||
;;;###autoload (if (or tags-table-list tags-file-name)
|
||||
;;;###autoload (progn
|
||||
;;;###autoload (load "etags")
|
||||
;;;###autoload (tags-completion-at-point-function))))
|
||||
|
||||
(defun tags-completion-at-point-function ()
|
||||
"Using tags, return a completion table for the text around point.
|
||||
If no tags table is loaded, do nothing and return nil."
|
||||
(when (or tags-table-list tags-file-name)
|
||||
(let ((completion-ignore-case (if (memq tags-case-fold-search '(t nil))
|
||||
tags-case-fold-search
|
||||
case-fold-search))
|
||||
(pattern (funcall (or find-tag-default-function
|
||||
(get major-mode 'find-tag-default-function)
|
||||
'find-tag-default)))
|
||||
beg)
|
||||
(when pattern
|
||||
(save-excursion
|
||||
(search-backward pattern) ;FIXME: will fail if we're inside pattern.
|
||||
(setq beg (point))
|
||||
(forward-char (length pattern))
|
||||
(list beg (point) (tags-lazy-completion-table)))))))
|
||||
|
||||
(defun find-tag-tag (string)
|
||||
"Read a tag name, with defaulting and completion."
|
||||
@ -2039,20 +2063,10 @@ for \\[find-tag] (which see)."
|
||||
(error "%s"
|
||||
(substitute-command-keys
|
||||
"No tags table loaded; try \\[visit-tags-table]")))
|
||||
(let ((completion-ignore-case (if (memq tags-case-fold-search '(t nil))
|
||||
tags-case-fold-search
|
||||
case-fold-search))
|
||||
(pattern (funcall (or find-tag-default-function
|
||||
(get major-mode 'find-tag-default-function)
|
||||
'find-tag-default)))
|
||||
(comp-table (tags-lazy-completion-table))
|
||||
beg)
|
||||
(or pattern
|
||||
(error "Nothing to complete"))
|
||||
(search-backward pattern)
|
||||
(setq beg (point))
|
||||
(forward-char (length pattern))
|
||||
(completion-in-region beg (point) comp-table)))
|
||||
(let ((comp-data (tags-completion-at-point-function)))
|
||||
(if (null comp-data)
|
||||
(error "Nothing to complete")
|
||||
(apply 'completion-in-region comp-data))))
|
||||
|
||||
(dolist (x '("^No tags table in use; use .* to select one$"
|
||||
"^There is no default tag$"
|
||||
|
Loading…
Reference in New Issue
Block a user