]> git.eshelyaron.com Git - emacs.git/commit
Optimize lisp/icomplete.el when default completion available
authorJoão Távora <joaotavora@gmail.com>
Sun, 27 Oct 2019 13:20:56 +0000 (13:20 +0000)
committerJoão Távora <joaotavora@gmail.com>
Sun, 27 Oct 2019 13:21:22 +0000 (13:21 +0000)
commit1b687e171e542165a260a9416d103a0af201e0c7
tree94dc79f1f374933e75230c91eaeda0575423a9fd
parentcbd439e785cd1e72c3eae39ed987fda357014bf8
Optimize lisp/icomplete.el when default completion available

Often, when using icomplete with icomplete-show-matches-on-no-input
and commands like C-h f, icomplete-exhibit will take a long time (like
several seconds) to show all the completions.

However, if there is a non-nil default value, like when the C-h f is
performed exactly on a function name, the minibuffer prompt will
reflect that immediately.  If the user immediately presses RE
(icomplete-force-complete-and-exit) we take that to mean "use the
default" and avoid the long wait.

As an extra performance tweak, this commit also removes an unneeded
call to icomplete-exhibit in icomplete-minibuffer-setup.

* lisp/icomplete.el (icomplete-force-complete-and-exit): Short-circuit
possibility of non-nil minibuffer-default.
(icomplete-minibuffer-setup): No need to explicitly icomplete-exhibit
here since icomplete-post-command-hook will call it unconditionally.
lisp/icomplete.el