Subject: Re: bug#37774: 27.0.50; new :extend attribute broke visuals of all themes and other packages

From: Ergus <[email-masked]>
Date: Wed, 16 Oct 2019 22:37:40 +0200

On Wed, Oct 16, 2019 at 11:23:14PM +0300, Juri Linkov wrote:
>>> > I'm not sure I understand: the region face is defined to be extended
>>> > beyond EOL.  How does custom-set-faces enter this picture, and why did
>>> > you need to do anything about the customized faces?
>>>
>>> The region face customized long ago in the init file
>>> has no ':extend t' face attribute, e.g.
>>>
>>> (custom-set-faces
>>>  '(region ((((class color) (background light)) (:background "gray90"))))
>>
>> So maybe we should modify custom-set-faces to preserve the :extend
>> attribute?  Would that solve the problem?
>
>I don't know how feasible this is.  This looks like a hack.
>
Actually it will be a transition workaround than could be removed in
emacs 28 for those who don't want (or know) how to update manually
because they made it with the interface.

But will break the case when the user explicitly wants a non extensible
region face and set that in the custom-set-face section in his init.

>>> All diff faces and faces that have a distinct background color
>>> like 'comint-highlight-input' (should extend to window edge
>>> to help locating visually the command line in shell buffers),
>>> 'org-block' (because it highlights code blocks), 'xref-file-header'
>>> for the same reason as diff faces, i.e. faces that highlights blocks.
>>
>> I don't think I agree.  I'm not convinced by the reasons, and I find
>> the new appearance not worse (and sometimes better) than the old.
>
>I find the new appearance better too in most cases, but not
>for background colors.
>
90% of the application/usability of this is actually background color
and the ability to control that after eol. We cannot (and conceptually
shouldn't in my opinion) discriminate some face attributes from others.

>>> Because there is no distinctive rectangular header anymore,
>>> and no diff hunk blocks.
>>
>> Sorry, I don't think I follow: how do you mean there's no distinctive
>> header and no diff hunk blocks?  I see them quite clearly.
>
>I meant a rectangular header like in other applications.
>
>>> Extending to the fill-column could be an optional feature.
>>
>> But above you mention it as the default.  If it's an option, then it
>> cannot be a solution to the problems we are discussing.
>
>Extending to fill-column could be optional.  Extending to window edge
>could be default for faces with distinct background colors.  Extending to
>EOL could be default for all other faces.