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: Fri, 13 Dec 2019 00:13:37 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0

On 12.12.2019 13:32, Eli Zaretskii wrote:
The "character at next bol" sounds strange, since the display engine
has no look-ahead -- it never examines characters on the next line
while displaying the current line.  But it all starts making sense
when you recall that Company mode puts its overlay on that next line.
So the "inherited" face is not on the next line, it is at the position
where the Company overlay is set.  IOW, it's the "underlying face" for
the overlay string.

Yeah, OK. Now that you mentioned the 'default' face, I remembered: it's used there exactly so that we don't inherit the background from the "underlying face".

Should be fixed now, please test.

It looks fixed in the whitespace-mode example, but not in the other one.

Just call M-x company-complete-common on the "Author:" line in a LogEdit buffer to reproduce. (I've tested common d7efe98951).

By the way, I kind of wonder why the fix added more lines than it deleted. Before, this feature just worked. Was that simply by accident? Or were the changes brought in by :extend major enough?

Btw, the bug is triggered because Company mode uses a weird '(default)
face, a list, instead of just 'default.  This is valid, but it wastes
a slot in the frame's face cache, so perhaps there's a good reason to
avoid that and simplify '(default) to 'default when you propertize the
tooltip text.

Ultimately, the reason it's there like that is because font-lock-append-text-property coerces all values to lists. We could change that and maybe save some memory in the process. It would be an (minor) incompatible change, however.





reply via email to

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