popup.elはauto-complete.elでも使われているように素晴しいelispです。
とはいえ、中には候補選択インターフェースとして
helm(カテゴリ)ido(カテゴリ) の方が好きな人もいるでしょう。

popup.elのポップアップメニューのエントリポイントは popup-menu* 関数です。
リストを取り、その中のたった1つの候補を返します。

それならばhelmやidoの同種の関数に置き換えることは
nadvice.elによるoverrideアドバイス を使えば簡単です。

popup-menu*関数は 先日紹介した dump-jump.el でも使われています。

helm化する

(defun popup-menu*--helm (selection &rest ignore)
  (helm-comp-read "Popup menu: " selection :must-match t))
(advice-add 'popup-menu* :override 'popup-menu*--helm)

ido化する

(defun popup-menu*--ido (selection &rest ignore)
  (ido-completing-read "Popup menu: " selection nil t))
(advice-add 'popup-menu* :override 'popup-menu*--ido)

本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。