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にたいするすべての制約と条件が適用される。引数keywordsは対応する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)))))