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
がリターンする構文テーブル。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を参照)。