[mew-dist 29258] 補完での completions-first-difference の活用
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2010年 7月 6日 (火) 16:33:53 JST
白井です。
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 at example.com)
Mew-dist メーリングリストの案内