Next: , Previous: , Up: フェイス   [Contents][Index]


41.12.7 フェイスの自動割り当て

以下のフックはバッファー内のテキストに自動的にフェイスを割り当てるために使用されます。これはJit-Lockモードの実装の一部でありFont-Lockにより使用されます。

Variable: fontification-functions

この変数は再表示を行う直前にEmacsの再表示により呼び出される関数のリストを保持する。これらはFont Lockが有効でないときでも呼び出される。Font Lockモードが有効なら、この変数は通常は単一の関数jit-lock-functionだけを保持する。

関数はバッファー位置posを単一の引数としてリストされた順に呼び出される。これらはカレントバッファー内のposで開始されるテキストにたいして集合的にフェイスの割り当てを試みること。

関数はfaceプロパティをセットすることにより割り当てるフェイスを記録すること。またフェイスを割り当てたすべてのテキストに非nilfontifiedプロパティも追加すること。このプロパティは再表示にたいして、そのテキストにたいしてそのフェイスがすでに割り当て済みであることを告げる。

posの後の文字がすでに非nilfontifiedプロパティをもつがフォント表示化を要さない場合には、何も行わない関数を追加するのがおそらくよいアイデアである。ある関数が前の関数による割り当てをオーバーライドする場合には、実際に問題となるのは最後の関数終了後のプロパティである。

効率化のために通常は各呼び出しにおいて400から600前後の文字にフェイスを割り当てるように、これらの関数を記述することを推奨する。

非常に長い行がバッファーに含まれていると、これらの関数はあたかもposの周辺部分にナローイングされてlong-line-optimizations-in-fontification-functionsのラベルが付されたバッファーにおいて(ナローイングを参照)、with-restrictionフォームの内部であるかのように呼び出されることに注意。