Julien Danjou writes: > Hi there, > > As promised yesterday, here's my patch! > > It adds `gnus-completion-styles' which set `completion-styles' when calling > `completing-read'. I like your idea, and your patch. Thank you. > It adds `gnus-use-ido' which makes `gnus-completing-read' use > `ido-completing-read' rather than `completing-read' I don't like that too much. How about something along the lines of --8<---------------cut here---------------start------------->8--- (defun pod-completing-read (prompt choices) "Use `completing-read' to do a completing read." (completing-read prompt choices)) (defun pod-icompleting-read (prompt choices) "Use iswitchb to do a completing read." (let ((iswitchb-make-buflist-hook (lambda () (setq iswitchb-temp-buflist choices)))) (unwind-protect (progn (when (not iswitchb-mode) (add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup)) (iswitchb-read-buffer prompt)) (when (not iswitchb-mode) (remove-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup))))) (defun pod-ido-completing-read (prompt choices) "Use ido to do a completing read." (ido-completing-read prompt choices)) (defcustom pod-completing-read-function #'pod-icompleting-read "Ask the user to select a single item from a list. Used by `pod-link-section', `pod-link-module', and `pod-link-module-section'." :group 'pod-mode :type '(radio (function-item :doc "Use Emacs' standard `completing-read' function." pod-completing-read) (function-item :doc "Use iswitchb's completing-read function." pod-icompleting-read) (function-item :doc "Use ido's completing-read function." pod-ido-completing-read) (function))) (defun pod-do-completing-read (&rest args) "Do a completing read with the configured `pod-completing-read-function'." (apply pod-completing-read-function args)) --8<---------------cut here---------------end--------------->8--- This is what I did a couple of months back for pod-mode.el. I believe it makes for nicer customisation. If you like this as well, I'd be happy to prepare an updated patch using the above, and extending it also support REQUIRE-MATCH, INITIAL-INPUT, HISTORY, etc.