Next: Multiline Font Lock, Previous: Faces for Font Lock, Up: Font Lock Mode [Contents][Index]
構文的フォント表示(syntactic
fontification)は、構文的に関連性のあるテキストを探してハイライトするために、構文テーブル(syntax table:
Syntax Tablesを参照)を使用します。有効な場合は、検索ベースフォント表示に先立ち実行されます。以下で説明する変数font-lock-syntactic-face-function,は、どの構文的構造をハイライトするかを決定します。構文的フォント表示に影響を与える変数が、いくつかあります。font-lock-defaultsのために、それらをセットするべきです(Font Lock Basicsを参照)。
Font
Lockモードが一連のテキストにたいして構文的フォント表示を処理するときは、常にsyntax-propertize-functionで指定される関数を最初に呼び出します。メジャーモードは、特別なケースではsyntax-tableテキストプロパティを適用してバッファーの構文テーブルをオーバーライドするために、これを使用することができます。Syntax Propertiesを参照してください。
この変数の値が非nilの場合、Font
Lockは構文的フォント表示を行わず、font-lock-keywordsにもとづく検索ベースフォント表示だけを行う。これは通常、font-lock-defaults内のkeywords-only要素にもとづき、Font
Lockモードによりセットされる。
この変数は、コメントと文字列のフォント表示に使用するための構文テーブルを保持する。これは通常、font-lock-defaults内のsyntax-alist要素にもとづき、Font
Lockモードによりセットされる。この値がnilの場合、構文的フォント表示は、バッファーの構文テーブル(関数syntax-tableがリターンする構文テーブル。see Syntax Table Functionsを参照)を使用する。
この変数が非nilの場合、それは構文的に“トップレベル”で、かつ文字列やコメントの外部であるような位置に戻すようにポイントを移動する関数であること。この値は通常、font-lock-defaults内のother-vars要素を通じてセットされる。これがnilの場合、Font
Lockはコメント、文字列、sexpの外部に戻って移動するためにsyntax-begin-functionを使用する(Position Parseを参照)。
この変数は、半ば時代遅れであり、通常はかわりにsyntax-begin-functionをセットすることを推奨する。これの用途の1つは、たとえば異なる種類の文字列やコメントを異なるようにハイライトする等、構文的フォント表示の振る舞いの調整する場合である。
指定された関数は、引数なしで呼び出される。この関数は、周囲の構文的ブロックの先頭にポイントを残すべきである。典型的な値はbeginning-of-line(行頭が構文的ブロック外部であることが既知の場合に使用)、プログラミングのモードにたいしてはbeginning-of-defun、テキストを扱うモードにたいしてはbackward-paragraphが使用される。
この変数が非nilの場合、それは与えられた構文的要素にどのフェイスを使用するかを決定する関数であること。この値は通常、font-lock-defaults内のother-vars要素を通じてセットされる。
この関数は1つの引数で呼び出され、parse-partial-sexpがリターンするポイントの状態をパースして、フェイスをリターンすべきである。コメントにたいしてはfont-lock-comment-face、文字列にたいしてはfont-lock-string-faceが、リターンされるデフォルト値である(Faces for Font Lockを参照)。