Homepage: https://www.gnu.org/software/emacs
Author: Miles Bader
Functions for managing `face-remapping-alist'
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.