Указание только нового цвета фона для ключевого слова в font-lock-Keywords
Я хотел бы выделить некоторые части кода определенным цветом фона, но я бы хотел, чтобы оставшаяся часть подсветки кода оставалась на своем месте. Т.е. ключевые слова все равно должны быть выделены с помощью font-lock как ключевые слова, только их фон должен измениться.
На данный момент я делаю это с font-lock-add-Keywords, где регулярное выражение соответствует тому, что я хочу выделить, и к каждому соответствию добавляется грань, определенная так:
(:background "#d1eaff")
Но когда он добавляет это лицо, он не сохраняет предыдущие атрибуты, такие как цвет переднего плана, а просто использует лицо по умолчанию с этим цветом фона.
Есть ли способ заставить его использовать текущие грани и заменить только их фоновые цвета на новые? Как добавить новый атрибут к существующим лицам?
1 ответ
То, что вы ищете overlays
,
Следующий фрагмент кода добавит лицо compilation-error
на символах с 1 по 3 в текущем буфере:
(overlay-put (make-overlay 1 4)
'face 'compilation-error)
Вместо чисел вы можете поместить результаты поиска по регулярному выражению или что-либо, что вы использовали для определения границ вашего наложения.