Hello Juri,
Daniel Mendler <mail@daniel-mendler.de> writes:
> Juri Linkov <juri@linkov.net> writes:
>>> Thanks. I think the code should be simplified - in fact it is
>>> problematic like this since it will leak memory, if the string changes,
>>> for example for a timer which counts up, where the same string will only
>>> needed for a short while. A hash table is not needed to memoize a single
>>> pair. It suffices to only store the current string to optimize
>>> redisplay. You could store the string in the car of a cons, and the
>>> width in the cdr.
>>
>> So you meant caching only the last string? This is implemented now as well.
>
> Yes, this is exactly what I meant. I will test it soon. Thanks again!
I have tested your patches and they work well. No flicker or jumping and
no negative performance impact due. Excellent work - also on the tab-bar
in general! I really appreciate the addition of this feature to Emacs.
It is particularly handy with EXWM where I can use it as system status
bar.
Since we are talking about the tab bar already I have another question -
sometimes (rarely) my tab bar gets too long and then it wraps around,
which I find undesirable. I would prefer if the content were truncated.
I suspect this is harder to address, e.g., via an option
tab-bar-truncate/tab-line-truncate? In any case, this is a rare edge
case in my usage.
What if, instead, each tab's content would shrink to fit? This is closer to how web browsers fit tabs. There are browser extensions that offer multiple lines or scroll left/right, but I find those more annoying since I can't see them all. One can always hover over each tab to see what its title is. In my configuration, my help text lists the buffers (and it's helpful to use the mouse-face support we added earlier in the year).