GNU / Emacsモードのfont-lock-keywordsを設定するとき、単一のマッチャーで正規表現の複数のサブ式を強調表示することは可能ですか?私がやりたいのは、次のようなことです。
("\\(foo\\)-\\(bar\\)" '(1 foo-face) '(2 bar-face))
そのようなものの正しい構文は何でしょうか?それとも、2つの異なるマッチャーに分割する必要がありますか?
GNU / Emacsモードのfont-lock-keywordsを設定するとき、単一のマッチャーで正規表現の複数のサブ式を強調表示することは可能ですか?私がやりたいのは、次のようなことです。
("\\(foo\\)-\\(bar\\)" '(1 foo-face) '(2 bar-face))
そのようなものの正しい構文は何でしょうか?それとも、2つの異なるマッチャーに分割する必要がありますか?
次のようなものを試してください。
("\\(foo\\)-\\(bar\\)" (1 foo-face) (2 bar-face))
(つまり、あなたと同じですが、余分な引用符はありません)。
これは、カスタムのfont-lock-keywords定義にこのようなさまざまなビットがあるためです。それらのいくつかはnil t
、次のように、2番目のものの終わりにあります:
("\\(foo\\)-\\(bar\\)" (1 foo-face) (2 bar-face nil t))
OVERRIDE
これはおよびオプションのフラグに対応し、LAXMATCH
正確な状況によっては必要になる場合があります。
のドキュメントでは、これについてある程度詳しく説明していますが、従うのが常に最も簡単であるとは限りません。たとえば、font-lock-keywords
の既存の値のように、他の人の作業設定をコピーする方が簡単だと思います。c-font-lock-keywords-3