Subject: Re: bug#43702: Emacs master: Incorrect highlighting in regexp isearch.

From: Juri Linkov <[email-masked]>
Date: Wed, 07 Oct 2020 11:09:09 +0300

>> > As I mentioned, it's simple to just repeat the use
>> > of the same 8 faces, for 9-16, 17-24, etc.
>>
>> This is a very good idea.  Now this is implemented in isearch.
>
> I don't think I understand the change, and the documentation doesn't
> seem to help.  It seems like now there are just two faces that are
> used alternately, i.e. one face for odd-numbered groups, the other for
> even-numbered groups?  If this is the case, why doesn't the
> documentation say so explicitly?  And if this is not the case, what
> did I miss?

Yes, by default isearch-group-1 is used for odd-numbered groups,
and isearch-group-2 for even-numbered groups.

But when a user or a theme author will define a new face
isearch-group-3, then isearch-group-3 will be used to highlight
groups 3, 6, 9, 12, ..., the isearch-group-2 face to highlight
groups 2, 5, 8, 11, ..., the isearch-group-1 face to highlight
groups 1, 4, 7, 10, ...

A user or a theme author can define more faces, e.g.
isearch-group-4, isearch-group-5, isearch-group-6,
and these faces will be recycled:

submatches:  1 2 3 4 5 6 7 8 9 10 11 12
group faces: 1 2 3 4 5 6 1 2 3  4  5  6

>> I suppose you agree that the previous color palette in isearch
>> with a color gradient is not suitable for highlighting of group matches
>> because while looking at highlighted matches it's quite impossible to
>> say which color corresponds to which group number.
>
> And with the current implementation on master it is possible?  If so,
> how?

With only 2 default group faces it's possible to see that one of them
isearch-group-1 is brighter than the default isearch face, and another
isearch-group-2 is darker than the default isearch face.