abo-abo / swiper

Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!
https://oremacs.com/swiper/
2.3k stars 338 forks source link

Swiper match face dot shown #1928

Closed Ergus closed 5 years ago

Ergus commented 5 years ago

Hi: This is a small issue, but any way I considered important to report it.

After the fixes of #1921 and #1923, now the match part of the candidate is not highlighted when the match was outside the screen (in the terminal). The line is highlighted properly, but the match part not. The candidates that are already on the screen have the match part highlighted right, and when they are selected the match remain highlighted properly and the one that was not, becomes right. This always happen when the candidate is outside the screen in the terminal.

abo-abo commented 5 years ago

I don't understand. Please add a small example to reproduce.

basil-conto commented 5 years ago
  1. make emacs='emacs -nw' plain
  2. C-xC-fivy.elRET
  3. C-sivy
  4. Repeat C-n until a candidate that was not originally visible in the window is selected.

    4-redisplay

    Note how ivy-read, ivy-next-line, and ivy-previous-line are fontified in the minibuffer but not in the original buffer.

abo-abo commented 5 years ago

Thanks, all. Please test.

basil-conto commented 5 years ago

Thanks, that's fixed the fontification issue for me. I was never able to reproduce the flashing that @Ergus reported (even with recenter-redisplay set to its default tty), though, so their testing is more important than mine.

Ergus commented 5 years ago

Yes, this also fixed it for me. Very thanks!! On the other hand @basil-conto the problem affects me because I use emacs in the terminal (xterm). I you don't have the problem in a terminal, please, tell me what emmulator do you use to try it.

basil-conto commented 5 years ago

the problem affects me because I use emacs in the terminal (xterm)

I know. I too was using Emacs under a text terminal for the purposes of this issue, both Emacs 26 and latest master.

tell me what emmulator do you use to try it

gnome-terminal

Ergus commented 5 years ago

I just tried gnome-terminal for this and the flash when recentering (C-l) is still there (I am in emacs 26.1 from arch linux). Except of course if I set recenter-redisplay to nil. This issue was in fact reported and fixed in bug#31325 so maybe the fixed will be not needed after emacs 27 will be released. In my huge ignorance I would like to understand why: 1) Redisplay flickers so notably for me. 2) Why recenter works perfectly without redisplay. 3) What specific situation makes that recenter comes with redisplay by default (or why). But I just started reading the emacs display engine code...

basil-conto commented 5 years ago

But I just started reading the emacs display engine code...

Good luck. ;)

Sorry, I'm sure neither why your terminal flickers, nor why mine stopped flickering many moons ago.