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:
parent
e2d4ea5aba
commit
d6b8d4e75e
3 changed files with 10 additions and 40 deletions
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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$"
|
||||
|
|
|
|||
|
|
@ -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)))))
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue