[mew-dist 24561] Re: highlight-summary patch

Shun-ichi TAHARA ( 田原 俊一 ) jado at example.com
2004年 2月 10日 (火) 13:42:46 JST


From: Shun-ichi TAHARA (田原 俊一) <jado at example.com>
Message-Id: <20040210.110850.291457549.z1980163 at example.com>

> > 以下、機能の話ですが。(実はどうやっているのかまだよくわかっていない (_ _)
> 
> キモは mew-env.el, mew-syntax.el の追加部分と、mew-highlight.el の中の
> mew-highlight-summary-fontify-line と、mew-scan.el の mew-scan-pstr-*
> あたりでしょうか。
> 
> 別便でもうちょっと詳しく書きます。

というわけで、こうやって動いています。

・mew-highlight-summary-face-spec[-ext] から、
    通し番号(key)→face
    face-spec の要素→key
  への対応表を作る

・scan 用の関数は、従来通り文字列を返すこともできるし、色情報を持たせ
  た文字列を返すこともできる
    ( key 文字列 … )
  の形で、
    ( key 文字列 ( key 文字列 … ) … )
  のようにネストしていてもOK
  mew-scan-make-pstr で作ってくれる

・scan 関数が生の文字列を返した場合は、face-spec から引いた key を用い
  て着色情報を付加する

・着色情報を抜き出してエンコードし、.mew-summary の後ろに埋める
  (mew-scan-make-line-and-props・mew-summary-props-encode)

・エンコードした着色情報を解析して塗る
  (mew-highlight-summary-fontify-line)

塗るタイミングは、scan 時と、mew-highlight-cook-region です。

個人的には、font-lock を使うと、ただでさえ狭いモードラインを消費しちゃ
うのが気になりますが、mew-highlight-summary-fontify-line を font-lock
に呼ばせる、という解法もアリだと思ってます。

> # 「再scan不要な実装」については、ちょっとだけアイデアは浮かんでます。

「特別な人ハイライト」を実現しようと思ったら、summary の後ろにメールア
ドレスも隠しておけばいいのか、と思いました。さらに、From: と To: の色
の key を特別な値にしておけば対応できます。

# 一度フォルダを消して再表示すれば反映されます。
# font-lock で塗るようにすれば、即座に反映される?
_______________________________
田原 俊一   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
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄



Mew-dist メーリングリストの案内