changeset 106236:4436585c0829

* progmodes/meta-mode.el (meta-complete-symbol): * progmodes/etags.el (complete-tag): Use completion-in-region.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 25 Nov 2009 06:08:42 +0000
parents 4e5a706e62fa
children 7ddab4671153
files lisp/ChangeLog lisp/progmodes/etags.el lisp/progmodes/meta-mode.el
diffstat 3 files changed, 10 insertions(+), 40 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Nov 25 06:02:01 2009 +0000
+++ b/lisp/ChangeLog	Wed Nov 25 06:08:42 2009 +0000
@@ -1,5 +1,7 @@
 2009-11-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* progmodes/meta-mode.el (meta-complete-symbol):
+	* progmodes/etags.el (complete-tag):
 	* mail/mailabbrev.el (mail-abbrev-complete-alias):
 	Use completion-in-region.
 
--- a/lisp/progmodes/etags.el	Wed Nov 25 06:02:01 2009 +0000
+++ b/lisp/progmodes/etags.el	Wed Nov 25 06:08:42 2009 +0000
@@ -2047,28 +2047,13 @@
 			      (get major-mode 'find-tag-default-function)
 			      'find-tag-default)))
         (comp-table (tags-lazy-completion-table))
-	beg
-	completion)
+	beg)
     (or pattern
 	(error "Nothing to complete"))
     (search-backward pattern)
     (setq beg (point))
     (forward-char (length pattern))
-    (setq completion (try-completion pattern comp-table))
-    (cond ((eq completion t))
-	  ((null completion)
-	   (message "Can't find completion for \"%s\"" pattern)
-	   (ding))
-	  ((not (string= pattern completion))
-	   (delete-region beg (point))
-	   (insert completion))
-	  (t
-	   (message "Making completion list...")
-	   (with-output-to-temp-buffer "*Completions*"
-	     (display-completion-list
-	      (all-completions pattern comp-table nil)
-	      pattern))
-	   (message "Making completion list...%s" "done")))))
+    (completion-in-region beg (point) comp-table)))
 
 (dolist (x '("^No tags table in use; use .* to select one$"
 	     "^There is no default tag$"
--- a/lisp/progmodes/meta-mode.el	Wed Nov 25 06:02:01 2009 +0000
+++ b/lisp/progmodes/meta-mode.el	Wed Nov 25 06:08:42 2009 +0000
@@ -487,29 +487,12 @@
                (close (nth 3 entry))
                (begin (match-beginning sub))
                (end (match-end sub))
-               (pattern (meta-match-buffer 0))
-               (symbol (buffer-substring begin end))
-               (list (funcall (nth 2 entry)))
-               (completion (try-completion symbol list)))
-          (cond ((eq completion t)
-                 (and close
-                      (not (looking-at (regexp-quote close)))
-                      (insert close)))
-                ((null completion)
-                 (error "Can't find completion for \"%s\"" pattern))
-                ((not (string-equal symbol completion))
-                 (delete-region begin end)
-                 (insert completion)
-                 (and close
-                      (eq (try-completion completion list) t)
-                      (not (looking-at (regexp-quote close)))
-                      (insert close)))
-                (t
-                 (message "Making completion list...")
-                 (let ((list (all-completions symbol list nil)))
-                   (with-output-to-temp-buffer "*Completions*"
-                     (display-completion-list list symbol)))
-                 (message "Making completion list... done"))))
+               (list (funcall (nth 2 entry))))
+          (completion-in-region
+           begin end
+           (if (zerop (length close)) list
+             (apply-partially 'completion-table-with-terminator
+                              close list))))
       (funcall (nth 1 entry)))))