neovim/test/functional
Björn Linse e598811e76 ui: disable clearing almost everywhere
Avoid clearing the screen in most situations. NOT_VALID should be
equivalent to CLEAR unless some external force messed up the terminal,
for these situations <c-l> and :mode will still clear the screen.

Also eliminate some obsolete code in screen.c, that dealt with that in
vim drawing window 1 can mess up window 2, but this never happens in
nvim.

But what about slow terminals? There is two common meanings in which
a terminal is said to be "slow":

Most commonly (and in the sense of vim:s nottyfast) it means low
bandwidth for sending bytes from nvim to the terminal. If the screen is
very similar before and after the update_screen(CLEAR) this change
should reduce bandwidth. If the screen is quite different, but there is
no new regions of contiguous whitespace, clearing doesn't reduce
bandwidth significantly. If the new screen contains a lot of whitespace,
it will depend of if vsplits are used or not: as long as there is no
vsplits, ce is used to cheaply clear the rest of the line, so
full-screen clear is not needed to reduce bandwith. However a left
vsplit currently needs to be padded with whitespace all the way to the
separator. It is possible ec (clear N chars) can be used to reduce
bandwidth here if this is a problem. (All of this assumes that one
doesn't set Normal guibg=... on a non-BCE terminal, if you do you are
doomed regardless of this change).

Slow can also mean that drawing pixels on the screen is slow. E-ink
screens is a recent example. Avoiding clearing and redrawing the
unchanged part of the screen will always improve performance in these
cases.
2018-10-22 11:59:02 +02:00
..
api api/ui: verify compatibility of UI events 2018-10-21 20:36:52 +02:00
autocmd job-control: children_kill_cb(): do not check elapsed time 2018-04-15 18:23:11 +02:00
clipboard msg: do not scroll entire screen (#8088) 2018-03-31 11:12:27 +02:00
cmdline cmdline: CTRL-R: Omit trailing <CR>. 2017-02-18 23:24:35 +01:00
core Fix crash if --embed is used more than once 2018-10-03 07:29:08 -04:00
eval ui: disable clearing almost everywhere 2018-10-22 11:59:02 +02:00
ex_cmds signs: Add "numhl" argument #9113 2018-10-13 19:39:56 +02:00
fixtures coverity/108274: tty-test.c: Insecure data handling (#8666) 2018-07-01 14:48:30 +02:00
insert insert-mode: interpret unmapped META as ESC 2018-04-04 03:23:15 +02:00
legacy test: Improve 008_autocommands_spec reliability (#9129) 2018-10-17 09:24:45 +02:00
lua API: return non-generic VimL errors 2018-05-09 23:18:38 +02:00
normal tests: improve robustness of immediate successes in screen tests 2018-10-15 20:13:11 +02:00
options tests: improve robustness of immediate successes in screen tests 2018-10-15 20:13:11 +02:00
plugin startup: always wait for UI with --embed, unless --headless also is supplied 2018-09-22 10:18:28 +02:00
provider test: give more time for nodejs 2018-06-04 19:42:28 -04:00
shada startup: always wait for UI with --embed, unless --headless also is supplied 2018-09-22 10:18:28 +02:00
spell test/rmdir(): Remove readonly attr on Windows. 2017-04-10 22:59:30 +02:00
terminal tests: improve robustness of immediate successes in screen tests 2018-10-15 20:13:11 +02:00
ui ui: disable clearing almost everywhere 2018-10-22 11:59:02 +02:00
viml tests: improve robustness of immediate successes in screen tests 2018-10-15 20:13:11 +02:00
helpers.lua startup: always wait for UI with --embed, unless --headless also is supplied 2018-09-22 10:18:28 +02:00
preload.lua functests: Check logs in lua code 2016-06-10 21:50:49 +03:00