Previous: , Up: Multiline Font Lock   [Contents][Index]


23.6.9.2 バッファー変更後のリージョンのフォント化

バッファーが変更されたときFont Lockが再フォント表示するリージョンは、デフォルトではその変更に関連する最小の行全体からなるシーケンスです。これはほとんどの場合は良好に機能しますが、うまく機能しないとき(たとえば変更がそれより前の行のテキストの構文的な意味を変更してしまうとき)もあります。

以下の変数をセットすることにより、再フォント表示するリージョンを拡張(または縮小さえ)することができます:

Variable: font-lock-extend-after-change-region-function

このバッファーローカル変数はnil、またはFont Lockモードにたいしてスキャンしてフォント表示すべきリージョンを決定するために呼び出される関数である。

この関数には標準的なbegend、およびafter-change-functionsold-len (Change Hooksを参照)という3つのパラメーターが渡される。この関数はフォント表示するリージョンのバッファー位置の開始と終了(この順)からなるコンスセル、またはnil (標準的な方法でリージョンを選択することを意味する)のいずれかをリターンすること。この関数はポイント位置、match-data、カレントのナローイングを保つ必要がある。これがリターンするリージョンは、行の途中で開始や終了するかもしれない。

この関数はバッファーを変更するたびに呼び出されるので有意に高速であること。