Subject: 24.3.50; Add a way to show pre-highlighted candidates in completions buffer

From: Dmitry Gutov <[email-masked]>
Date: Fri, 21 Dec 2012 23:42:19 +0400

When I return the list of candidates from the "completion table"
function, I'd like to be able the specify the base (not user-defined)
highlighting, so that the actual candidate text looks more visible (as
opposed to the annotations) and easy to scan. In my case, the candidates
are method names and the annotations are argument lists, so using
font-lock-function-name-face is natural.

But if I propertize the list with 'font-lock-face properties, both the
"common" part and the "first difference" are still colored black,
because the completion code uses the hardcoded faces for them, one of
which inherits from `default', another from `bold'. Screenshot attached.

Can we change this so that those faces override the face attributes only
if they've been explicitly customized (as opposed to inherited from
`default')?

Is it possible to do that in a backwards-compatible way? With overlays,
maybe?