[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Difference between child frame, popup frame and overlay
From: |
Tassilo Horn |
Subject: |
Re: Difference between child frame, popup frame and overlay |
Date: |
Tue, 17 May 2022 17:14:17 +0200 |
User-agent: |
mu4e 1.7.21; emacs 29.0.50 |
Alessandro Bertulli <alessandro.bertulli96@gmail.com> writes:
Hi Alessandro,
> Pretty much the title. I am exploring differences between packages like
> Ivy vs Vertico vs Selectrum, or Corfu vs Company, and sometimes this is
> taken into play. However, the documentation I found explains only child
> frames and overlays. So, to be more precise:
> - what is a popup frame?
I don't have a clue. Where did you encounter that term? I mean, both
overlays and child-frames can be used to create popups (for in-buffer
display/selection of possible completions like in corfu/company), so it
might be that this term is used as a general term for the concept
without hinting at a concrete implementation (of course, then having
"frame" in the term is misleading).
Possibly, popup-frame might also mean tooltips, e.g., the thing you get
at the mouse cursor position when evaluating (tooltip-show "Hello!").
> Moreover, do you have any reason about when you should use one instead
> of the other twos?
I can only say something about overlays vs. child-frames. Overlays
(used as multi-line menus) have visual issues (don't align) when those
lines use different faces and they cannot extend over the edges of the
current window. child-frames don't have these issues but creating them
is much slower. Oh, and child-frames won't work at all in terminal
frames! So it's pest vs. cholera, really. :-)
I think company uses overlays by default (and can also just print
completions in the echo area) whereas corfu uses only child-frames. I
don't use emacs in a terminal for programming, so I can live well with
that limitation of corfu.
Bye,
Tassilo