face-remap

Homepage: https://www.gnu.org/software/emacs

Author: Miles Bader

Summary

Functions for managing `face-remapping-alist'

Commentary

This file defines some simple operations that can be used for
maintaining the `face-remapping-alist' in a cooperative way.  This is
especially important for the `default' face.

Each face-remapping definition in `face-remapping-alist' added by
this code uses the form:

  (face RELATIVE_SPECS_1 RELATIVE_SPECS_2 ... BASE_SPECS)

The "specs" values are lists of face names or face attribute-value
pairs, and are merged together, with earlier values taking precedence.

The RELATIVE_SPECS_* values are added by `face-remap-add-relative'
(and removed by `face-remap-remove-relative', and are intended for
face "modifications" (such as increasing the size).  Typical users of
relative specs would be minor modes.

BASE_SPECS is the lowest-priority value, and by default is just the
face name, which causes the global definition of that face to be used.

A non-default value of BASE_SPECS may also be set using
`face-remap-set-base'.  Because this _overwrites_ the default
value inheriting from the global face definition, it is up to the
caller of face-remap-set-base to add such inheritance if it is
desired.  A typical use of face-remap-set-base would be a major
mode setting face remappings, e.g., of the default face.

All modifications cause face-remapping-alist to be made buffer-local.

Reverse dependencies