Previous: 従来のFont Lock, Up: Font Lockモード [Contents][Index]
Emacsをtree-sitterライブラリーとともにビルドした場合には、フォント表示化に際してそのライブラリーがバッファーのテキストをパースした結果を使うことができます。tree-sitterライブラリーはサポートしているプログラミング言語やその他のフォーマットされたテキストにたいして本格的なパーサーを提供するので、通常は前のサブセクションで説明した“伝統的”な手法より高速かつ正確です。tree-sitterライブラリーを利用するメジャーモードにはfoo-ts-mode
という名前がつけられています(‘-ts-’の部分がそのライブラリーを使用することを示す)。このサブセクションでは、tree-sitterライブラリーにもとづくFont
Lockサポートについて説明します。
変数treesit-font-lock-level
をカスタマイズして、tree-sitterにもとづくメジャーモードのFont
Lockモードに適用するフォント表示化の量を制御できます。変数の値は1から4の数値です:
このレベルでは、通常はコメントおよび関数定義の関数名だけをフォント表示します。
このレベルではキーワード、文字列、データタイプへのフォント表示化が追加されます。
デフォルトのレベルです。割り当て、数値等のフォント表示化が追加されます。
このレベルでは演算子、区切り文字、カッコ、その他の句読点文字、関数呼び出し内の関数名、プロパティ参照、変数などフォント表示化が可能なすべてが追加されます。
上記で示した構文的カテゴリーそれぞれが正確には何によって構成するかはメジャーモード、およびそのメジャーモードの言語にたいしてtree-sitterが使用するパーサーグラマー(parser
grammar:
解析文法)に依存します。とはいうものの、このカテゴリーは一般的にはそのメジャーモードによってサポートされるプログラミング言語やファイルフォーマットの規約にしたがいます。変数treesit-font-lock-feature-list
のバッファーローカル値には、tree-sitterベースのメジャーモードがサポートしているフォント表示化機能が保持されています。このリストの要素は、その要素が対応するフォント表示化レベルが提供する機能を示すリストです(訳注:
GNU Emacsのソースに含まれるadmin/notes/tree-sitter/starter-guideに値の例があるので参考にしてください)。
M-x customize-variable (特定のアイテムのカスタマイズを参照)を通じてtreesit-font-lock-level
の値を変更すれば既存のすべてのバッファー、および同一セッションにおいて今後visitするすべてのファイルに即座に効果が表れます。