Subject: bug#46358: 28.0.50; [PATCH] Add vc-dir faces; also apply them to vc-git

From: Juri Linkov <[email-masked]>
Date: Tue, 09 Feb 2021 11:19:01 +0200

>>> Maybe better to display the empty Git stash header using the default
>>> colors, and then highlight it differently only when it's non-empty?
>>
>> Not with vc-dir-ignored, though (it is based on the 'shadow' face).
>
> Before this change, the empty stash looked the same as all other
> headers' values.

It could continue looking the same as all other headers' values.

> This meant that there was no distinction between empty and non-empty
> stashes, something that was noted as a "FIXME" in the source code.

Indeed, it could be better to have a distinction between empty and
non-empty stashes.  The FIXME proposed to use a different face
when nothing is stashed.

But it seems better to use a different face when something is stashed.
It's important to attract user attention to the fact that there are
stashes laying around.

> I think there is value in distinguishing between those two states,
> though I am fine with some other choice of fallback color/face.
> Currently the empty stash uses 'vc-dir-ignored' which inherits from
> 'shadow'.  Whereas others use 'vc-dir-header-value' which inherit from
> 'font-lock-variable-name-face'.

Could some of new vc-dir faces that you added recently
be used for non-empty stashes?

> If you feel this is a problem 'vc-dir-ignored' could also inherit from
> 'font-lock-variable-name-face'.

It's good that 'vc-dir-ignored' inherits from the 'shadow' face
when it's used on files with the "ignored" status.  Then it
could be renamed to 'vc-dir-status-ignored' as you already proposed.