From: Dmitry Gutov Date: Wed, 22 Jan 2020 11:46:34 +0000 (+0300) Subject: Render Ido suggestions using an overlay X-Git-Tag: emacs-27.0.90~114 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3b0938c042;p=emacs.git Render Ido suggestions using an overlay * lisp/ido.el (ido--overlay): New variable. (ido-exhibit): Render with 'after-string' on an overlay (bug#38457). --- diff --git a/lisp/ido.el b/lisp/ido.el index 83b88e4e81c..355be5eaa66 100644 --- a/lisp/ido.el +++ b/lisp/ido.el @@ -4492,6 +4492,8 @@ For details of keybindings, see `ido-find-file'." (ido-tidy)) (throw 'ido contents)))) +(defvar ido--overlay nil) + (defun ido-exhibit () "Post command hook for Ido." ;; Find matching files and display a list in the minibuffer. @@ -4726,7 +4728,13 @@ For details of keybindings, see `ido-find-file'." (let ((inf (ido-completions contents))) (setq ido-show-confirm-message nil) (ido-trace "inf" inf) - (insert inf)) + (when ido--overlay + (delete-overlay ido--overlay)) + (let ((o (make-overlay (point-max) (point-max) nil t t))) + (when (> (length inf) 0) + (put-text-property 0 1 'cursor t inf)) + (overlay-put o 'after-string inf) + (setq ido--overlay o))) )))) (defun ido-completions (name)