2010年7月 6日

[mew-dist 29258]補完での completions-first-difference の活用

白井です。

Emacs22 以降でコマンドとかの補完入力を動かすと、次に入力すると良
い文字が(デフォルトで)bold(*1) になりますが、Mew の補完は独自に
やっているので、face がつきません。

標準的な Emacs のインタフェースと合わせておいた方が良いと思って
調べたところ、


(defun mew-complete-window-show (all)
(unless (mew-ainfo-get-win-cfg)
(mew-ainfo-set-win-cfg (current-window-configuration)))
(if (and (get-buffer-window mew-buffer-completions)
(equal mew-complete-candidates all))
(let ((win (get-buffer-window mew-buffer-completions)))
(with-current-buffer mew-buffer-completions
(if (pos-visible-in-window-p (point-max) win)
(set-window-start win 1)
(scroll-other-window))))
(setq mew-complete-candidates all)
(with-output-to-temp-buffer mew-buffer-completions
(when mew-inherit-complete-folder
(make-local-variable 'choose-completion-string-functions)
(add-hook 'choose-completion-string-functions
'mew-complete-insert-folder-function))
(display-completion-list all (try-completion "" all)))))

の最後の行の変更だけで問題なく動作しました。ただし、Emacs21 の
display-completion-list() の引数は一つだけなので、

(condition-case nil
(display-completion-list all (try-completion "" all))
(error
(display-completion-list all)))

とかしないとだめかも、です。

(*1) completions-first-difference face というらしい

--
白井秀行 (mailto:shirai@xxxxx)


投稿者 xml-rpc : 2010年7月 6日 16:33
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/96890
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。