GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Syntactic-Font-Lock.html ・ emacs-doc.conao3.com

24.7.8 構文用Font Lock

構文ベースのフォント化では、構文テーブル(構文テーブルを参照)を使用して、構文的に関連のあるテキストを特定し、ハイライトします。有効になっている場合は、検索ベースのフォント化よりも前に実行されます。以下で説明する変数 font-lock-syntactic-face-function は、どの構文構造をハイライトするかを決定します。構文ベースのフォント化に影響を与える変数がいくつかあり、これらは font-lock-defaults を用いて設定する必要があります(Font Lock の基本を参照)。

Font Lockモードがテキストの一部分に構文的なフォント化を行う際は、まずsyntax-propertize-functionで指定された関数を呼び出します。メジャーモードはこれを利用して、特殊なケースにおいてバッファの構文テーブルを上書きするsyntax-tableテキストプロパティを適用できます。構文プロパティを参照してください。

変数: font-lock-keywords-only

この変数の値が nil 以外の場合、Font Lock は構文ベースのフォント化を行わず、font-lock-keywords に基づく検索ベースのフォント化のみを行います。これにより、通常はコメントや文字列がフォント化されないことになります。この変数は通常、Font Lock モードによって font-lock-defaults 内の keywords-only 要素に基づいて設定されます。値が nil の場合、Font Lock は jit-lock-register(その他の Font Lock 変数 を参照)を呼び出し、変更によって生じた新しい構文コンテキストを反映させるため、変更された行に続くバッファテキストの自動再フォント化の設定を行います。

構文的なフォント化のみを使用する場合は、この変数と font-lock-keywords の両方を nil に設定してください(Font Lock の基本 を参照)。

変数: font-lock-syntax-table

この変数には、コメントや文字列のフォント化に使用する構文テーブルが格納されます。通常、Font Lockモードによって font-lock-defaults 内の syntax-alist 要素に基づいて設定されます。この値が nil の場合、構文フォント化にはバッファの構文テーブル(関数 syntax-table が返す値。構文テーブル関数 を参照)が使用されます。

変数: font-lock-syntactic-face-function

この変数が nil 以外の場合、指定された構文要素(文字列またはコメント)に対してどの面を使用するかを決定する関数である必要があります。

この関数は、parse-partial-sexp が返す位置におけるパース状態を1つの引数として受け取り、フェイスを返す必要があります。デフォルト値では、コメントに対しては font-lock-comment-face を、文字列に対しては font-lock-string-face を返します(Faces for Font Lock を参照)。

この変数は通常、font-lock-defaults内の「other」要素を通じて設定されます:

(setq-local font-lock-defaults
            `(,python-font-lock-keywords
              nil nil nil
              (font-lock-syntactic-face-function
               . python-font-lock-syntactic-face-function)))