[mew-dist 26382] highlight-summary patch
Shun-ichi TAHARA ( 田原 俊一 )
jado at example.com
2005年 5月 30日 (月) 22:19:09 JST
三度目(?)の正直、ということで、highlight-summary patch です。
[mew-dist 26370] の後に当たります。
パッチは2つ添付します。1つめは -rub で取ったもので、変更点が見えやすい
です。2つめは -rc で取ったもので、パッチを当てる場合はこちらを使う必要
があります。
久しぶりですので、簡単に解説を。
1) 有効にするには
(setq mew-use-highlight-summary t) で、サマリバッファに色が着きます。
~/.mew-theme.el を持っている人は、mew-theme.el をコピーして再カスタマ
イズしてください。マークのフェイスは背景塗りがお勧めです。
既存のフォルダに対しては、一度 s all する必要があります。
2) 着色ルールを変えるには
mew-summary-form の要素に対してフェイスを束縛する場合は、
mew-highlight-summary-face-spec を定義します。
(setq mew-summary-form
'(type (5 date) "[" (14 from) "] " t (0 subj) "|" (0 body)))
の場合、
(setq mew-highlight-summary-face-spec
'((mark . mew-face-summary-mark)
(type . mew-face-summary-type)
(date . "Date:")
("[" . mew-face-summary-marginal)
(from . "From:")
("] " . mew-face-summary-marginal)
(t . mew-face-summary-marginal)
(subj . "Subject:")
("|" . mew-face-summary-marginal)
(body . mew-face-summary-marginal)))
のようにして色を指定していきます。色はフェイス名かヘッダ名 (Message バッ
ファの色付けルールを流用します) で指定できます。
Message バッファの色を流用するので、ここのルール自体はデフォルト値で問
題ない方が多いと思いますが、summary-form に文字列を指定している場合は、
このように face-spec をいじる必要があるかもしれません。
contrib/mew-fancy-summary.el と異なり、t (スレッドの段下げ) はこちらで
指定します。
mew-summary-form に指定されない特殊な要素があり、こちらは
mew-highlight-summary-face-spec-ext でフェイスとの束縛を定義します。
デフォルト値は以下のようになっています。
(defvar mew-highlight-summary-face-spec-ext
'((invalid . mew-face-summary-invalid) ; type の # マーク
(truncated . mew-face-summary-truncated) ; type の T マーク
(partial . mew-face-summary-partial) ; type の P マーク
(to . "To:") ; from に to が出た場合
(special . mew-face-summary-special) ; from が「特別な人」の場合
(tag . mew-face-summary-tag) ; subj の MLタグ部
(attach . mew-face-summary-marginal) ; 添付ファイル行
(separator . mew-face-summary-marginal))) ; スレッドセパレータ行
3) 特別な人
mew-highlight-summary-special-addrs を定義すると、その要素に一致するメー
ルアドレスから届いたメッセージの from 部が、上記の 'special' で定義し
た色で塗られます。
mew-highlight-summary-special-addrbook を nil 以外にすると、アドレス帳
に設定されたメールアドレスも同様に扱われます。
mew-highlight-summary-special-to を nil 以外にすると、自分から上記に合
致するアドレスに送られたメッセージの to (from) 部も同様に扱われます。
アドレス帳を編集したり、上記変数を変更したりした場合、Z で変更が反映さ
れ、バッファを再生成(C-cC-q → g、Emacs再起動でも可)することで色が変わ
ります。(s all しなおす必要はありません)
# Mew が持っている Summary の一覧が取得できれば、Z で直ちに反映させる
# ことも原理上は可能です。
4) MLタグの着色
デフォルトでは、Subject: に含まれる [xxx] の部分を別色で塗ります。
mew-highlight-summary-tag-regex でカスタマイズできます。
これを変更した場合は、さすがに s all しないと反映されません。
# s all 不要な実装も可能です。着色が少し遅くなるはずですが :-)
5) スキャン用関数の拡張
ユーザでスキャン用関数を拡張している場合、特殊な塗り方をするのでなけれ
ば、何ら変更は必要ありません。mew-highlight-summary-face-spec にエント
リを追加すれば、その色で塗られます。
6) 旧バージョンとの差異
今回のバージョンでは、着色ルールを変更しても、s all する必要はありませ
ん。バッファを作り直せば (C-cC-q → g、Emacs再起動でも可) 反映されます。
また、一度削除された「特別な人」や MLタグの塗り分けも再実装しました。
mew-use-highlight-summary == nil の場合でも、scan 時に着色情報を抽出し
て Summary の後ろに保存するようにしました。
mew-use-highlight-summary == t の場合のみ、マーク行の着色に overlay を
用います。Gnu Emacs では、かなりの速度低下になりますが、
mew-use-highlight-summary == nil では、従来と同じ処理なので遅くなりま
せん。
_______________________________
田原 俊一 jado at example.com, shunichi_tahara at example.com
http://flowernet.gr.jp/jado/
FingerPrint: 16 9E 70 3B 05 86 5D 08 B8 4C 47 3A E7 E9 8E D9
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: mew-current-highlight-summary-ub.patch.gz
型: application/octet-stream
サイズ: 9605 バイト
説明: diff -rub
URL: <http://www.mew.org/pipermail/mew-dist/attachments/20050530/5c35e51c/attachment.obj>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: mew-current-highlight-summary.patch.gz
型: application/octet-stream
サイズ: 10638 バイト
説明: diff -rc
URL: <http://www.mew.org/pipermail/mew-dist/attachments/20050530/5c35e51c/attachment-0001.obj>
Mew-dist メーリングリストの案内