Mercurial > emacs
changeset 108179:8bcf1c901e9a
* 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.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Fri, 30 Apr 2010 21:08:43 -0400 |
parents | 0f3897ef1f44 |
children | b781593bacdc |
files | lisp/ChangeLog lisp/minibuffer.el lisp/progmodes/etags.el |
diffstat | 3 files changed, 37 insertions(+), 37 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Apr 30 19:13:22 2010 -0400 +++ b/lisp/ChangeLog Fri Apr 30 21:08:43 2010 -0400 @@ -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
--- a/lisp/minibuffer.el Fri Apr 30 19:13:22 2010 -0400 +++ b/lisp/minibuffer.el Fri Apr 30 21:08:43 2010 -0400 @@ -1169,27 +1169,6 @@ `: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'.
--- a/lisp/progmodes/etags.el Fri Apr 30 19:13:22 2010 -0400 +++ b/lisp/progmodes/etags.el Fri Apr 30 21:08:43 2010 -0400 @@ -423,9 +423,9 @@ (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 @@ (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 @@ (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$"