(lisp-complete-symbol): Regenerate the completion list, even after a partial

completion has been inserted in the current buffer.  If there are more than 1
completion, redisplay the *Completions* buffer; if the completion is unique,
delete the *Completions* window.
This commit is contained in:
Eli Zaretskii 2005-12-10 11:40:04 +00:00
parent eba9bb5f1a
commit 6d93e4aa38
2 changed files with 16 additions and 5 deletions

View file

@ -569,10 +569,11 @@ considered."
((null completion)
(message "Can't find completion for \"%s\"" pattern)
(ding))
((not (string= pattern completion))
(delete-region beg end)
(insert completion))
(t
(unless (string= completion pattern)
(delete-region beg end)
(insert completion)
(setq pattern completion))
(message "Making completion list...")
(let ((list (all-completions pattern obarray predicate)))
(setq list (sort list 'string<))
@ -585,8 +586,10 @@ considered."
new))
(setq list (cdr list)))
(setq list (nreverse new))))
(with-output-to-temp-buffer "*Completions*"
(display-completion-list list pattern)))
(if (> (length list) 1)
(with-output-to-temp-buffer "*Completions*"
(display-completion-list list pattern))
(delete-windows-on "*Completions*")))
(message "Making completion list...%s" "done")))))))
;;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e