emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r100083: * minibuffer.el (tags-comple


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r100083: * minibuffer.el (tags-completion-at-point-function): New function.
Date: Thu, 29 Apr 2010 11:32:11 -0400
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 100083
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Thu 2010-04-29 11:32:11 -0400
message:
  * minibuffer.el (tags-completion-at-point-function): New function.
  (completion-at-point-functions): Use it.
  
  * cedet/semantic.el (semantic-completion-at-point-function): New function.
  (semantic-mode): Use semantic-completion-at-point-function for
  completion-at-point-functions instead.
  
  * progmodes/etags.el (complete-tag): Revert last change.
modified:
  lisp/ChangeLog
  lisp/cedet/semantic.el
  lisp/minibuffer.el
  lisp/progmodes/etags.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2010-04-29 14:48:32 +0000
+++ b/lisp/ChangeLog    2010-04-29 15:32:11 +0000
@@ -1,3 +1,14 @@
+2010-04-29  Chong Yidong  <address@hidden>
+
+       * minibuffer.el (tags-completion-at-point-function): New function.
+       (completion-at-point-functions): Use it.
+
+       * cedet/semantic.el (semantic-completion-at-point-function): New 
function.
+       (semantic-mode): Use semantic-completion-at-point-function for
+       completion-at-point-functions instead.
+
+       * progmodes/etags.el (complete-tag): Revert last change.
+
 2010-04-29  Alan Mackenzie  <address@hidden>
 
        * progmodes/cc-mode.el (c-extend-region-for-CPP): Fix an

=== modified file 'lisp/cedet/semantic.el'
--- a/lisp/cedet/semantic.el    2010-04-28 19:04:16 +0000
+++ b/lisp/cedet/semantic.el    2010-04-29 15:32:11 +0000
@@ -1083,7 +1083,8 @@
        ;; Add semantic-ia-complete-symbol to
        ;; completion-at-point-functions, so that it is run from
        ;; M-TAB.
-       (add-hook 'completion-at-point-functions 'semantic-ia-complete-symbol)
+       (add-hook 'completion-at-point-functions
+                 'semantic-completion-at-point-function)
        (if global-ede-mode
            (define-key cedet-menu-map [cedet-menu-separator] '("--")))
        (dolist (b (buffer-list))
@@ -1091,7 +1092,8 @@
            (semantic-new-buffer-fcn))))
     ;; Disable all Semantic features.
     (remove-hook 'mode-local-init-hook 'semantic-new-buffer-fcn)
-    (remove-hook 'completion-at-point-functions 'semantic-ia-complete-symbol)
+    (remove-hook 'completion-at-point-functions
+                'semantic-completion-at-point-function)
     (define-key cedet-menu-map [cedet-menu-separator] nil)
     (define-key cedet-menu-map [semantic-options-separator] nil)
     ;; FIXME: handle semanticdb-load-ebrowse-caches
@@ -1099,6 +1101,9 @@
       (if (and (boundp mode) (eval mode))
          (funcall mode -1)))))
 
+(defun semantic-completion-at-point-function ()
+  'semantic-ia-complete-symbol)
+
 ;;; Autoload some functions that are not in semantic/loaddefs
 
 (autoload 'global-semantic-idle-completions-mode "semantic/idle"

=== modified file 'lisp/minibuffer.el'
--- a/lisp/minibuffer.el        2010-04-28 19:04:16 +0000
+++ b/lisp/minibuffer.el        2010-04-29 15:32:11 +0000
@@ -1157,7 +1157,7 @@
           (call-interactively 'minibuffer-complete)
         (delete-overlay ol)))))
 
-(defvar completion-at-point-functions '(complete-tag)
+(defvar completion-at-point-functions '(tags-completion-at-point-function)
   "Special hook to find the completion table for the thing at point.
 It is called without any argument and should return either nil,
 or a function of no argument to perform completion (discouraged),
@@ -1169,14 +1169,9 @@
  `: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 complete-tag ()
-  "Perform tags completion on the text around point.
-If no tags table is loaded, do nothing and return nil.
-Otherwise, complete to the set of names listed in the tags table.
-The string to complete is chosen in the same way as the default
-for `find-tag'."
+(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)
@@ -1185,14 +1180,11 @@
                                    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)
+                               'find-tag-default))))
       (when pattern
-       (search-backward pattern)
-       (setq beg (point))
-       (forward-char (length pattern))
-       (completion-in-region beg (point) comp-table)))))
+       (tags-lazy-completion-table)))))
+
+(declare-function tags-lazy-completion-table "etags.el" ())
 
 (defun complete-symbol (&optional arg)
   "Perform completion on the text around point.

=== modified file 'lisp/progmodes/etags.el'
--- a/lisp/progmodes/etags.el   2010-04-28 19:04:16 +0000
+++ b/lisp/progmodes/etags.el   2010-04-29 15:32:11 +0000
@@ -2027,6 +2027,33 @@
   (interactive)
   (quit-window t (selected-window)))
 
+;;;###autoload
+(defun complete-tag ()
+  "Perform tags completion on the text around point.
+Completes to the set of names listed in the current tags table.
+The string to complete is chosen in the same way as the default
+for \\[find-tag] (which see)."
+  (interactive)
+  (or tags-table-list
+      tags-file-name
+      (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)))
+
 (dolist (x '("^No tags table in use; use .* to select one$"
             "^There is no default tag$"
             "^No previous tag locations$"


reply via email to

[Prev in Thread] Current Thread [Next in Thread]