aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/screen.c
Commit message (Collapse)AuthorAge
* screen: add missing status redraw when redraw_later(CLEAR) was usedBjörn Linse2018-12-05
|
* vim-patch:8.1.0098: segfault when pattern with \z() is very slow (#9283)Justin M. Keyes2018-11-29
| | | | | | | | 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
* diff/highlight: Show underline for low-priority CursorLineJustin M. Keyes2018-11-27
|
* diff/highlight: do not overlay low-priority CursorLineJustin M. Keyes2018-11-27
| | | | ref #6380
* lintJan Edmund Lazo2018-11-18
|
* vim-patch:8.1.0376: compiler warning for uninitialized variableJan Edmund Lazo2018-11-18
| | | | | | Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) Solution: Initialize the variable. https://github.com/vim/vim/commit/c787539747f6bb2510a56aa14dbf6808aff5681a
* UI/TUI: improvements and cleanups for scrolling and clearingBjörn Linse2018-11-11
| | | | | | | | | | | | - 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
* screen.c: remove redundant wp->w_hl_attr_normalBjörn Linse2018-10-25
|
* screen: fix glitches with nvim_buf_set_virtual_textBjörn Linse2018-10-25
| | | | | - virtual text disappeared when 'cursorline' was set - virtual text was shifted when emtpy line was visually selected.
* ui: disable clearing almost everywhereBjörn Linse2018-10-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* fix warning: garbage/uninitialized valueJustin M. Keyes2018-10-21
| | | | | | | According to clang scan-build, `fromcol` could be uninitialized at line 2645. Found by clang scan-build 5.0
* screen.c: Fix PVS/V560: condition is always falseJustin M. Keyes2018-10-20
|
* signs: Add "numhl" argument #9113Reto Schnyder2018-10-13
| | | | | close #9113 ref #9040
* terminal: Redraw statusline on title change #8973Josh Triplett2018-09-25
| | | | | | | | 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.
* buffer: add support for virtual text annotationsBjörn Linse2018-09-17
|
* style: indent, then lintJustin M. Keyes2018-09-13
|
* vim-patch:8.1.0374: moving the cursor is slow when 'relativenumber' is setJustin M. Keyes2018-09-13
| | | | | | 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
* vim-patch:8.0.1161rpigott2018-09-13
|
* vim-patch:8.1.0372: screen updating slow when 'cursorline' is set (#8986)Justin M. Keyes2018-09-12
| | | | | 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
* UI/cleanup: Remove most redraw_later_clear() callsJustin M. Keyes2018-09-12
| | | | | | 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.
* vim-patch:8.0.1809: various typosJan Edmund Lazo2018-09-11
| | | | | | Problem: Various typos. Solution: Correct the mistakes, change "cursur" to "cursor". (closes vim/vim#2887) https://github.com/vim/vim/commit/b9464821901623f983528acaed9e4dc2cea7387b
* Merge pull request #8945 from ZviRackover/fix-7401-step5Björn Linse2018-09-11
|\ | | | | mbyte: remove mb_char2bytes
| * lint: clean-up after parent commitsZviRackover2018-09-09
| |
| * Remove has_mbytes local to lines changed in parent commitZviRackover2018-09-09
| |
| * Refactor: Remove occurences of mb_char2bytesZviRackover2018-09-09
| |
* | Merge pull request #8915 from rickyz/line_wrappingBjörn Linse2018-09-09
|\ \ | |/ |/| Fix terminal line wrapping detection in the TUI.
| * tui: Hint wrapped lines to terminals.Ricky Zhou2018-09-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge #8921 'highlight: Fix after-EOL matches at cursor'Justin M. Keyes2018-09-04
|\ \ | |/ |/|
| * vim-patch:8.1.0344: 'hlsearch' highlighting has a gap after /$Ricky Zhou2018-09-03
|/ | | | | | | Problem: 'hlsearch' highlighting has a gap after /$. Solution: Remove suspicious code. (Ricky Zhou, closes vim/vim#3400) https://github.com/vim/vim/commit/7ee3f15b21042cb8148980ea486137eaf1b55bcd
* lint: clean-up after parent commitsZviRackover2018-08-31
|
* Remove has_mbytes from lines local to parent commitZviRackover2018-08-31
|
* Refactor: remove mb_ptr2len_len, mb_ptr2cells and mb_ptr2cells_lenZviRackover2018-08-31
| | | | Remove occurences of these macros.
* Merge #8863 'refactor: Remove mb_head_off() 'Justin M. Keyes2018-08-28
|\
| * Remove has_mbyte from lines near changes in parent commitZviRackover2018-08-16
| |
| * Remove occurences of mb_head_offZviRackover2018-08-15
| |
* | Merge #8903 from janlazo/vim-8.0.0883Justin M. Keyes2018-08-26
|\ \
| * | vim-patch:8.0.1228: invalid memory access in GUI testJan Edmund Lazo2018-08-24
| | | | | | | | | | | | | | | | | | 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
* | | vim-patch:8.0.1214: accessing freed memory when EXITFREE is setJan Edmund Lazo2018-08-25
|/ / | | | | | | | | | | | | 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
* | lintJan Edmund Lazo2018-08-23
| |
* | vim-patch:8.0.1041: bogus characters when indenting during visual-block appendJan Edmund Lazo2018-08-23
|/ | | | | | | 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
* Merge #8829 from ZviRackover/fix-7401-step2Justin M. Keyes2018-08-15
|\
| * lint: clean up after parent commitZviRackover2018-08-14
| |
| * Remove occurrences of 'has_mbyte' near lines changes by parent commitZviRackover2018-08-13
| |
| * Remove all occurrences of mb_off2cellsZviRackover2018-08-13
| |
* | Merge pull request #8790 from bfredl/hlattrBjörn Linse2018-08-14
|\ \ | | | | | | pass highlight attrs per value and thread-safely to TUI thread
| * | highlight: HlAttrs is a value type; treat it like suchBjörn Linse2018-08-13
| |/
* / vim-patch:8.1.0057: popup menu displayed wrong when using autocmdJason Felice2018-08-09
|/ | | | | | | 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
* vim-patch:8.0.1705: when making a vertical split the mode message isn't updatedJan Edmund Lazo2018-08-06
| | | | | | | | 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
* vim-patch:8.0.1169: highlignting one char too many with 'list' and 'cul'Jan Edmund Lazo2018-08-06
| | | | | | 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
* vim-patch:8.0.1168: wrong highlighting with combination of match and ↵Jan Edmund Lazo2018-08-06
| | | | | | | | | '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