font-lockとelispの正規表現を使用して、次のようなものを強調表示しようとしています。
class Foo implements A, B, C, D { }
問題は、。の後のコンマ区切りリストの長さが不明であるということですimplements
。リスト上のすべての単語を強調表示する正規表現をすでに実行しました(re-buiderを使用して、A、B、C、およびDが強調表示されます):
"implements\\s-+\\(?:\\(\\sw+\\)\\s-*,\\s-*\\)*\\(\\sw+\\)"
しかし、これをfont-lockと組み合わせることができません。
明らかに
'("implements\\s-+\\(?:\\(\\sw+\\)\\s-*,\\s-*\\)*\\(\\sw+\\)"
(1 font-lock-type-face) (2 font-lock-type-face))
*
最初の後方参照後の星()を無視して、最後の出現(CおよびD)のみを強調表示するため、機能しません。
一致したすべての単語のリストをキャプチャする方法、またはこの問題を解決するためのまったく異なる方法はありますか?