2006-07-22 [長年日記]

[Q3] colors.xmlの拡張 (2)

背景色と太字が指定できるようになったcolors.xmlですが、もうちょっと拡張して、複数のマッチするエントリでの各指定をマージするようにしました。たとえば、

  • 未読なら太字
  • マークされていたら文字色を赤

というように設定しておくと、未読でマークされたメッセージは太字で赤くなります。以前は最初にマッチしたエントリだけが有効だったので、この例では未読でマークされたメッセージは太字になるだけでした。

初めに作ったときには、このようにしてしまうと文字色しか指定しないような今までの使い方をしている場合に遅くなってしまう*1と思い、最初にマッチしたエントリで打ち切っていました。しかし、あるエントリのマクロにマッチして文字色が決定したら、それ以降の文字色しか指定していないエントリのマクロは評価しないようにして、背景色や太字の指定がしてあるエントリのマクロだけを評価すれば、ほとんどパフォーマンスに影響を与えずに済むのでそのようにしてみました。

*1  背景色や太字をチェックするために最後までエントリのマクロを評価することになるため

[]