Next: Other Font Lock Variables, Previous: Search-based Fontification, Up: Font Lock Mode [Contents][Index]
メジャーモードにたいして検索ベースフォント表示ルールを追加するためにfont-lock-add-keywords
、削除にはfont-lock-remove-keywords
を使用することができます。
この関数は、カレントバッファー、またはメジャーモードmodeにたいして、ハイライトするkeywordsを追加する。引数keywordsは、変数font-lock-keywords
と同じ形式のリストであること。
modeが、c-mode
のような、あるメジャーモードのコマンド名であるようなシンボルの場合には、そのmode内でFont
Lockモードを有効にすることにより、keywordsがfont-lock-keywords
に追加される効果がある。非nil
値のmodeによる呼び出しは、~/.emacsファイル内でのみ正しい。
modeがnil
の場合、この関数はカレントバッファーのfont-lock-keywords
にkeywordsを追加する。この方法でのfont-lock-add-keywords
呼び出しは、通常はモードフック関数内で使用される。
デフォルトでは、keywordsはfont-lock-keywords
の先頭に追加される。オプション引数howがset
の場合、それらはfont-lock-keywords
の値の置換に使用される。howがそれ以外の非nil
値の場合、これらはfont-lock-keywords
の最後に追加される。
追加のハイライトパターンの使用を可能にする、特別なサポートを提供するモードがいくつかある。それらの例については、変数c-font-lock-extra-types
、c++-font-lock-extra-types
、java-font-lock-extra-types
を参照のこと。
警告:
メジャーモードコマンドは、モードフックを除き、いかなる状況においても、直接間接を問わずfont-lock-add-keywords
を呼び出してはならない(これを行うと、いくつかのマイナーモードは不正な振る舞いを起こしかねない)。メジャーモードコマンドは、font-lock-keywords
をセットすることにより、検索ベースフォント表示のルールをセットアップすべきである。
この関数は、カレントバッファー、またはメジャーモードmodeにたいして、font-lock-keywords
からkeywordsを削除する。font-lock-add-keywords
の場合と同様、modeはメジャーモードコマンド名かnil
であること。font-lock-add-keywords
にたいするすべての制約と条件は、この関数にも適用される。
たとえば、以下はCモードに2つのフォント表示パターンを追加するコードの例である。フォント表示の1つは、たとえコメント内であろうとも単語‘FIXME’をフォント表示し、もう1つは‘and’、‘or’、‘not’をキーワードとしてフォント表示する。
(font-lock-add-keywords 'c-mode '(("\\<\\(FIXME\\):" 1 font-lock-warning-face prepend) ("\\<\\(and\\|or\\|not\\)\\>" . font-lock-keyword-face)))
この例は、正にCモードだけに効果がある。Cモード、およびその派生モードにたいして同じパターンを追加するには、かわりに以下を行う:
(add-hook 'c-mode-hook (lambda () (font-lock-add-keywords nil '(("\\<\\(FIXME\\):" 1 font-lock-warning-face prepend) ("\\<\\(and\\|or\\|not\\)\\>" . font-lock-keyword-face)))))