Ключевые слова блокировки шрифта: выделение нескольких подвыражение

При установке ключевых слов блокировки шрифта для режима GNU/Emacs действительно ли возможно выделить несколько подвыражений регулярного выражения с единственным matcher? То, что я хотел бы сделать, является чем-то вроде:

("\\(foo\\)-\\(bar\\)" '(1 foo-face) '(2 bar-face))

Каков был бы правильный синтаксис для чего-то как этот - или я должен разделить его на два отличных matchers?

5
задан Thomas 10 February 2010 в 13:53
поделиться

1 ответ

Попробуйте что-то вроде этого :

("\\(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 , например.

5
ответ дан 14 December 2019 в 19:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: