[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 メーリングリストの案内