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

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


From: Hideyuki SHIRAI (白井秀行) <shirai at example.com>
Message-Id: <20040210.003132.119890775.shirai at example.com>

> > ありゃ〜、全然違うんですね。
> 
> 実はこの Meadow が動いているのも TP X31 だったりするのですが、ど
> うしても Process 回りは UNIX と比べて遅いんですよね。。。

ええ〜〜??
それはかなり驚きですね。

> highlight-summary が組み込まれても local scan の mewl との通信に
> 従来の「垂れ流し」方式が選択できれば気にならないレベルなんですけ
> どねぇ、垂れ流しの復活はちょっと無理かなぁ。

垂れ流し方式って、ウェイトの取り方がまずいと表示が固まっちゃいますしね。

> > あと、scan は元々そんなに速い処理でもないし、非同期なので気にしない、
> > 問題は普段の体感的な重さ(ma とかでよくわかるんだっけ)、という話だった
> > 記憶があります。
> 
> ma などもそうですが、やっぱり、scan => all も気になりますよ。

s all って、そんなに頻繁にするものなんでしょうか。

> と、まぁ、今までの話で "速度" に関しての結論としては「ちょっと遅
> くなるけど、色づけしないならそんなに気にするほどでもないんじゃな
> い」ということでしょうかねぇ。色を付けると遅くなるけど、高機能の
> ためには仕方がない?

塗って遅くなるものはある程度は仕方がないでしょうね。嫌なら塗らない。
問題は、塗らないのに遅いのであれば困る、ということだと思います。

> 以下、機能の話ですが。(実はどうやっているのかまだよくわかっていない (_ _)

キモは mew-env.el, mew-syntax.el の追加部分と、mew-highlight.el の中の
mew-highlight-summary-fontify-line と、mew-scan.el の mew-scan-pstr-*
あたりでしょうか。

別便でもうちょっと詳しく書きます。

> 「特別な人」は 2000年 1月にリクエストがあり導入しています。

> > > mark じゃだめなのです。もしかして、特別な人を増やしたり/減らした
> > > りしたときにルールが変わるから scan しなおさないとだめでしょうか?

ここですね。Mew 本体の機能としてどうしても必要なものであれば、何とか実
装しちゃいますが、なんとなく「余計な機能」という気がするのです。

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

* を打つ機能だと、実際に N/P でサーチできるし、m系のコマンド等で処理で
きるので有用かなとは思うのですが。

あるいは、message mode でも、「特別な人のアドレス」をハイライトする機
能 (や、Subject: 中の ML タグを塗る機能) があれば、逆に統一が取れてい
るように見えるのかもしれません。

> > これが可能なのは font-lock によるその場解析方式しかないと思います。
> 
> うーむ。highlight-summary だと 
> 
> + (defcustom mew-highlight-summary-face-spec-ext
> +   '((invalid   . mew-face-summary-invalid)
> 
> の face の部分に関数を指定する、ってできないんですよね?それがで
> きれば、特別な人だろうが subject の一部の色をちょっと変えるだろ
> うがなんだろうが好きにできるんですが。。。

そもそも、scan 時に face(正確には face に付けた通し番号) を確定させて
るので、仮に関数で指定できるようになっても再scan が要ります。今のとこ
ろは、ですが。

> > evaporate は… highlight-mark で、下の文字が消えるパターンですか。
> > あー、d→x の時とかの問題?
> 
> です。overlay は消すのが面倒ですが、それを考えないですむのでとっ
> ても楽なのです。

よくわかっていないのですが、貼り付いているテキストがなくなったら、
overlay ははがされた状態になって、そのうち GC で処理される、というわけ
ではないのでしょうね。こういう属性があるということは。

# delete-overlay したとき(この後に move-overlay で再利用可能) とは違う?

evaporate=t した時に、下のテキストを消して、その後に move-overlay でき
るかどうかですが。実験してみよっと。

> > 一番きついのは、領域の先頭/末尾に挿入したときのマーカの動きですかね。
> > これは overlay に限らないんですけど、highlight-mark の overlay も、
> > front-advance = t で作ってます。
> 
> front-advance という引数知らなかった。。。今度試してみますね。

make-overlay の第4引数です。テキストプロパティの front-sticky 属性に対
応するもののようです。
_______________________________
田原 俊一   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 メーリングリストの案内