robeでは robe-completing-read-funcという変数に任意の補完入力関数を
指定することができます. これはドキュメント表示等で使われます.
デフォルトは ido-completing-readで, 他に completing-readを指定する
ことができます. これを helmインタフェースにしたいと思い, helm-comp-readを
指定してみたのですが, うまくいきません. これは robeが想定している関数のシグネチャと
helm-comp-readのシグネチャが異なるため, 適切に関数を呼ぶことができない
ためです. また引数である選択候補のリストも helm的に望ましい形でないので,
そのままでは利用できません. それらを踏まえて robe-completing-read-funcに
指定できる helm-comp-readのラッパ関数を作成してみました.
設定
以下のような関数を追加し, robe-completing-read-funcに設定してください.
(custom-set-variables '(robe-completing-read-func 'helm-robe-completing-read)) (defun helm-robe-completing-read (prompt choices &optional predicate require-match) (let ((collection (mapcar (lambda (c) (if (listp c) (car c) c)) choices))) (helm-comp-read prompt collection :test predicate :must-match require-match)))