The IDO has received an excellent bunch of various helper functions that are light enough to refine the components used. The following snippet of the function is surprisingly quick, but not fully integrated with existing completion methods:
(defun buffer-completion () "Use IDO to pick completion matches from current buffer." (interactive) (let ((words (split-string (buffer-string)))) (insert (ido-completing-read "Word completion:" words)))
To further smooth out the use of our completion, we could use a thing-at-point or equivalent function to skip the distracting hints of the minibuffer.
progo source share