bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#38563: 27.0.50; Company popup renders with newlines (?) inheriting t


From: Dmitry Gutov
Subject: bug#38563: 27.0.50; Company popup renders with newlines (?) inheriting the bg properties of the character at next line's bol
Date: Sat, 14 Dec 2019 01:10:13 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0

On 13.12.2019 17:32, Eli Zaretskii wrote:

It wouldn't have worked, because ':extend nil' means the face which
says this is ineligible for face merging when face extension is
considered.  IOW, ':extend nil' cannot countermand some other face
that's being merged which says ':extend t'.

Hmm, that's counter to my intuition how this should work (meaning,
:extend nil should be used during merging, like it's used during
inheritance), but maybe this way enables functionality that wouldn't be
possible otherwise.

':extend nil' is "used" during merging in the sense that such a face
is skipped when we want a face for extending past EOL.  How else could
we implement that?  Setting :extend to nil means that _none_ of the
other attributes of the face are to be taken into account for merging.

We are talking about "merging" a list of faces applied to a 'face' text property on a char, right? That kind of merging?

If so, I would expect seeing ':extend nil' would mean not using any of the face attributes on that char for extending past EOL. If it's the last character on the line, using the default face's attributes instead.

And if we see ':extend t', then we would use the background from the first face in the list that has the :background attribute set. Is that not how merging faces in a list value usually works?

Inheritance just makes the inheriting face implicitly behave as if its
:extend attribute is the same as of the parent face, when the
inheriting face doesn't itself specify :extend, i.e. has it set to
'unspecified'.

I think that's how inheritance for most attributes works, right?





reply via email to

[Prev in Thread] Current Thread [Next in Thread]