| Commit message (Collapse) | Author | Age |
| | |
|
| |
|
|
|
|
|
|
| |
Problem: Segfault when pattern with \z() is very slow.
Solution: Check for NULL regprog. Add "nfa_fail" to test_override() to be
able to test this. Fix that 'searchhl' resets called_emsg.
https://github.com/vim/vim/commit/bcf9442307075bac40d44328c8bf7ea21857b138
closes #8788
|
| | |
|
| |
|
|
| |
ref #6380
|
| | |
|
| |
|
|
|
|
| |
Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution: Initialize the variable.
https://github.com/vim/vim/commit/c787539747f6bb2510a56aa14dbf6808aff5681a
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- TUI: _never_ rely on BCE for implicit clearing, only explicit commands.
- TUI: use unibi_erase_chars when possible.
- TUI: use end-exclusive ranges for invalid and cleared areas
- screen: scrolling leaves scrolled in aree undefined. This is a
conservative change, a client assuming the old semantics will still
behave correctly.
- screen: factor out vsep handling from line drawing. This is needed
anyway for the multigrid refactor.
- screen: simplifications of win_do_lines
|
| | |
|
| |
|
|
|
| |
- virtual text disappeared when 'cursorline' was set
- virtual text was shifted when emtpy line was visually selected.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
According to clang scan-build, `fromcol` could be uninitialized at line
2645.
Found by clang scan-build 5.0
|
| | |
|
| |
|
|
|
| |
close #9113
ref #9040
|
| |
|
|
|
|
|
|
| |
The statusline may incorporate b:term_title, so redraw it when that
title changes.
Introduce a new function status_redraw_buf to redraw windows associated
with the current buffer.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Problem: Moving the cursor is slow when 'relativenumber' is set.
Solution: Only redraw the number column, not all lines.
https://github.com/vim/vim/commit/bd9a53c06c8869ad811cb3dd01a309c9be7d7a63
|
| | |
|
| |
|
|
|
| |
Problem: Screen updating slow when 'cursorline' is set.
Solution: Only redraw the old and new cursor line, not all lines.
https://github.com/vim/vim/commit/90a997987dbbe43af3c15118a35f658f0f037d1d
|
| |
|
|
|
|
| |
Vim :! may "mess up the screen" because of e.g. switching between cooked
mode, but Nvim just uses pipes. So maybe we can avoid these
redraw_later_clear() CYA calls.
|
| |
|
|
|
|
| |
Problem: Various typos.
Solution: Correct the mistakes, change "cursur" to "cursor". (closes vim/vim#2887)
https://github.com/vim/vim/commit/b9464821901623f983528acaed9e4dc2cea7387b
|
| |\
| |
| | |
mbyte: remove mb_char2bytes
|
| | | |
|
| | | |
|
| | | |
|
| |\ \
| |/
|/| |
Fix terminal line wrapping detection in the TUI.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, when neovim would wrap a line across multiple lines,
terminal emulators could not detect that the lines represent a single
wrapped line as opposed to several separate lines. As a result, many
terminals' selection/copying functionality would treat a wrapped line as
several newline-delimited lines.
Fix this by reenabling a "special trick" from Vim. When a line is
wrapped, write the last character of that line followed by the first
character of the next line to the terminal. This hints to the terminal
that the next line is a continuation of the current line.
Extends the raw_line event with a "wrap" parameter which controls when
to do wrap hinting.
|
| |\ \
| |/
|/| |
|
| |/
|
|
|
|
|
| |
Problem: 'hlsearch' highlighting has a gap after /$.
Solution: Remove suspicious code. (Ricky Zhou, closes vim/vim#3400)
https://github.com/vim/vim/commit/7ee3f15b21042cb8148980ea486137eaf1b55bcd
|
| | |
|
| | |
|
| |
|
|
| |
Remove occurences of these macros.
|
| |\ |
|
| | | |
|
| | | |
|
| |\ \ |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Problem: Invalid memory access in GUI test.
Solution: Check that the row is not outside of the screen.
https://github.com/vim/vim/commit/0e19fc07e73214f94441cb3a495504a1de21eb07
|
| |/ /
| |
| |
| |
| |
| |
| | |
Problem: Accessing freed memory when EXITFREE is set and there is more than
one tab and window. (Dominique Pelle)
Solution: Free options later. Skip redraw when exiting.
https://github.com/vim/vim/commit/4f1982800f0aff28df6875e718a786f6c4b11ad9
|
| | | |
|
| |/
|
|
|
|
|
| |
Problem: Bogus characters appear when indenting kicks in while doing a
visual-block append.
Solution: Recompute when indenting is done. (Christian Brabandt)
https://github.com/vim/vim/commit/e2e69e48134cbfdedea7802810932f8592705024
|
| |\ |
|
| | | |
|
| | | |
|
| | | |
|
| |\ \
| | |
| | | |
pass highlight attrs per value and thread-safely to TUI thread
|
| | |/ |
|
| |/
|
|
|
|
|
| |
Problem: Popup menu displayed wrong when using autocmd.
Solution: Use aucmd_prepbuf(). Force updating status line if the popup menu
is going to be redrawn anyway. (Christian Brabandt, closes vim/vim#3009)
https://github.com/vim/vim/commit/6ba3ec1bace67513a352326864cebc16b3c5bc56
|
| |
|
|
|
|
|
|
| |
Problem: When making a vertical split the mode message isn't always
updated, "VISUAL" remains. (Alexei Averchenko)
Solution: Only reset clear_cmdline when filling all columns of the last
screen line. (Tom M. closes vim/vim#2611)
https://github.com/vim/vim/commit/5bab555c2f1b3b86d57e4adeb86d908eff477fc9
|
| |
|
|
|
|
| |
Problem: Highlignting one char too many with 'list' and 'cul'.
Solution: Check for 'list' being active. (Ozaki Kiichi, closes vim/vim#2177)
https://github.com/vim/vim/commit/5ece3e359c4b96d0f9bf1ce690223545f40f34b8
|
| |
|
|
|
|
|
|
|
| |
'cursorline'
Problem: wrong highlighting with combination of match and 'cursorline'.
Solution: Use "line_attr" when appropriate. (Ozaki Kiichi, closes vim/vim#2111)
But don't highlight more than one character.
https://github.com/vim/vim/commit/0aa398f55a327282c70f56e0bac2dcb9521da378
|