Currently writedelay shows the sequence of characters that are sent to
the UI/TUI module. Here nvim has already applied an optimization: when
attempting to put a char in a screen cell, if the same char already was
there with the same attributes, UI output is disabled. When debugging
redrawing it it sometimes more useful to inspect the redraw stream one
step earlier, what region of the screen nvim actually is recomputing
from buffer contents (win_line) and from evaluating statusline
expressions.
Take the popupmenu as an example. When closing the popupmenu (in the
TUI), currently 'writedelay' looks like vim only is redrawing the region
which the pum covered. This is not what happens internally: vim redraws
the entire screen, even if only outputs the changed region.
This commit allows negative values of 'writedelay', which causes a delay
for all redrawn characters, even if the character already was displayed
by the UI before.
Most fonts should have these by now. Both are a significant visual
improvement.
- Vertical connecting bar `│` is used by tmux, pstree, Windows 7 cmd.exe
and nvim-qt.exe.
- Middle dot `·` works on Windows 7 cmd.exe, nvim-qt.exe.
For reference: tmux uses these chars to draw lines: │ ├ ─
Problem: When a block is visually selected and put is used on the end of
the selection only one line is changed.
Solution: Check for the end properly. (Christian Brabandt, neovim issue
5781)
9957a10d0f
Note: code change was covered by c2a1821611
Problem: When a multi-byte character ends in a zero byte, putting blockwise
text puts it before the character instead of after it.
Solution: Use int instead of char for the character under the cursor.
(Luchr, closesvim/vim#1403) Add a test.
c81299684b
vim-patch:8.0.0214: leaking memory when syntax cluster id is unknown
Problem: Leaking memory when syntax cluster id is unknown. (Coverity)
Solution: Free the memory.
d7a96151e0
Problem: The buffer used to store a key name theoreticaly could be too
small. (Coverity)
Solution: Count all possible modifier characters. Add a check for the
length just in case.
423977d3ce
Problem: Splitting a 'winfixwidth' window vertically makes it one column
smaller. (Dominique Pelle)
Solution: Add one to the width for the separator.
38e3483637
Problem: Linebreak tests are old style.
Solution: Turn the tests into new style. Share utility functions. (Ozaki
Kiichi, closesvim/vim#1444)
544d3bc9f0
Problem: The ";" command does not work after characters with a lower byte
that is NUL.
Solution: Properly check for not having a previous character. (Hirohito
Higashi)
454709baff
Needed for later Vim patches.
Stub test_alot_latin.vim to avoid merge-conflict noise.
vim-patch:7.4.1700
vim-patch:7.4.1734
vim-patch:7.4.1740
vim-patch:7.4.2086
vim-patch:7.4.2223
vim-patch:8.0.0250
Problem: Some tests have a one or three second wait.
Solution: Reset the 'showmode' option. Use a test time of one to disable
sleep after an error or warning message.
e5f2a075e3
Problem: When one channel test fails others fail as well.
Solution: Stop the job after a failure. Also add a couple of tests to the
list of flaky tests.
24820691e6
Problem: The remote_peek() test fails on MS-Windows.
Solution: Check for pending messages. Also report errors in the first run if
a flaky test fails twice.
15e737f768