При установке ключевых слов блокировки шрифта для режима GNU/Emacs действительно ли возможно выделить несколько подвыражений регулярного выражения с единственным matcher? То, что я хотел бы сделать, является чем-то вроде:
("\\(foo\\)-\\(bar\\)" '(1 foo-face) '(2 bar-face))
Каков был бы правильный синтаксис для чего-то как этот - или я должен разделить его на два отличных matchers?
Попробуйте что-то вроде этого :
("\\(foo\\)-\\(bar\\)" (1 foo-face) (2 bar-face))
( т.е. то же самое, что и ваш, но без лишних кавычек).
Я говорю это, потому что у меня есть различные биты, подобные этой, в моих определениях ключевых слов для блокировки шрифтов. Некоторые из них имеют nil t
на конце второго, например:
("\\(foo\\)-\\(bar\\)" (1 foo-face) (2 bar-face nil t))
, которые соответствуют необязательным флагам OVERRIDE
и LAXMATCH
и могут быть необходимо в зависимости от ваших конкретных обстоятельств.
В документации для font-lock-keywords
это обсуждается довольно подробно, хотя это не всегда простая процедура - мне легче просто скопировать чужую рабочую настройку, например, существующее значение c-font-lock-keywords-3
, например.