1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-16 16:20:40 -08:00

* progmodes/meta-mode.el (meta-complete-symbol):

* progmodes/etags.el (complete-tag): Use completion-in-region.
This commit is contained in:
Stefan Monnier 2009-11-25 06:08:42 +00:00
parent e2d4ea5aba
commit d6b8d4e75e
3 changed files with 10 additions and 40 deletions

View file

@ -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.

View file

@ -2047,28 +2047,13 @@ for \\[find-tag] (which see)."
(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$"

View file

@ -487,29 +487,12 @@ If the list was changed, sort the list and remove duplicates first."
(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)))))