構文的フォント表示(syntactic
fontification)は、構文的に関連性のあるテキストを探してハイライトするために構文テーブル(syntax table: 構文テーブルを参照)を使用します。有効な場合には検索ベースのフォント表示に先立って実行されます。以下で説明する変数font-lock-syntactic-face-function
はどの構文的構造をハイライトするかを決定します。構文的フォント表示に影響を与える変数がいくつかあります。font-lock-defaults
のためにそれらをセットするべきです(Font Lockの基礎を参照)。
Font
Lockモードが一連のテキストにたいして構文的フォント表示を処理するときは、常にsyntax-propertize-function
で指定される関数を最初に呼び出します。メジャーモードは特別なケースではsyntax-table
テキストプロパティを適用してバッファーの構文テーブルをオーバーライドするために、これを使用することができます。構文プロパティを参照してください。
この変数の値が非nil
なら、Font
Lockは構文的フォント表示を行わずにfont-lock-keywords
にもとづく検索ベースのフォント表示だけを行う。これは通常はfont-lock-defaults
内のkeywords-only要素にもとづいてFont
Lockモードによりセットされる。値がnil
ならFont Lockはjit-lock-register
(Font Lockのその他の変数を参照)を呼び出して、変更行以降のバッファーテキストに変更による新たな構文コンテキストを反映するために、自動的な再フォント表示をセットアップする。
構文的なフォント表示だけを使用するにはこの変数に非nil
、そしてfont-lock-keywords
にnil
をセットする必要がある(Font Lockの基礎を参照)。
この変数はコメントと文字列のフォント表示に使用するための構文テーブルを保持する。これは通常はfont-lock-defaults
内のsyntax-alist要素にもとづいてFont
Lockモードによりセットされる。この値がnil
なら、構文的フォント表示はバッファーの構文テーブル(関数syntax-table
がリターンする構文テーブル。構文テーブルの関数を参照)を使用する。
この変数が非nil
なら、それは与えられた構文的要素(文字列かコメント)にどのフェイスを使用するかを決定する関数であること。
この関数は1つの引数で呼び出され、parse-partial-sexp
がリターンするポイントの状態をパースしてフェイスをリターンすること。リターンされるデフォルト値はコメントにたいしてはfont-lock-comment-face
、文字列にたいしてはfont-lock-string-face
(Font Lockのためのフェイスを参照)。
この変数は通常はfont-lock-defaults
内の“他”の要素を通じてセットされる:
(setq-local font-lock-defaults `(,python-font-lock-keywords nil nil nil nil (font-lock-syntactic-face-function . python-font-lock-syntactic-face-function)))