Subject: bug#11095: [PATCH] Re: bug#11095: 24.0.94; hi-lock-face-buffer/unhighlight-regexp': Augment?

From: Jambunathan K <[email-masked]>
Date: Thu, 06 Dec 2012 03:45:54 +0530

Stefan Monnier <[email-masked]> writes:

>>> I think the real issue here is that hi-lock should have a customizable
>>> set of faces rather than a set of customizable faces.
>>> So if the user doesn't like hi-yellow (which should be called
>>> hi-lock-yellow, BTW) because she never highlights in yellow, she can
>>> replace it with her own face with the name she likes.
>> Ah, in that case you are really talking, I think, about having one or
>> more user options, which each has a face (or a set of faces) as value.
>
> Just one option `hi-lock-faces'.

1. I want the name to be opaque and semantic.

2. I also want a pre-defined set of faces for highlighting apart from
   the one "core" highlight face.  I think there are 9 hi-* faces and
   these numbers are good enough.

   Think of them as extra colors in my palette.

   Having a set of highlighting faces will help in theming.  For
   example, consider finding file in ido-mode.  When I do C-x C-f, I see
   various faces - the minibuffer prompt, ido-first-match, ido-subdir,
   ido-indicator all occurring /next/ to each other.  If there are
   hi-lock-N faces, chosen by a theme designed, one can simply have ido
   faces inherit from these themed faces.  It is much cleaner.

   Remember choosing faces that can co-exist in buffer without much
   trouble to eyes is challenging task - one needs to balance harmony
   and contrast.  A theme designer is likely to work with a palette and
   can go with color-picking techniques like triad, tetrad schemes.  See

        http://colorschemedesigner.com/
        http://www.w3.org/wiki/Colour_theory
        http://packages.debian.org/squeeze/agave

   Triad and tetrads apparently are colors that are 120 and 90 degrees
   apart in the color wheel.  So if there are N highlighting faces, they
   can be spaced 360/N degree apart in a color wheeel.

   Drew's reasoning that it is the N-th highlighting face in a sequence.

3. Configuring an yellow face in red is a bit ugly.  It is declaring a
   variable name FALSE that is assigned a variable value true.

>> Just why would you prefer a "customizable set of faces" over a "set of
>> customizable faces"?  And how does that relate to the names?
>
> Because the user can then choose the names that make sense to her.

While reading a face name from minibuffer, if the face name itself is
highlighted in that face - think rainbow mode - then the name of the
face shouldn't matter.

What you are asking for is a constant face whose properties don't change
at all.  One can have an elpa packages which provides constant faces,
that are immediately useful.