| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Nvim doesn't expect a window-changing command on an created-window event.
autocmd WinNew * wincmd p
help help
- A snapshot for window 1000 is created.
- The window is split and the cursor changes to the new window 1001.
- The autocmd kicks in and switches back to 1000.
- The help buffer is opened.
- On closing the help window 1000, it tries to go back to the snapshotted window
which is... 1000.
- wp1000->w_buffer == NULL
- w_buffer is used by check_cursor()
- 🧨 -> 💥
Fixes https://github.com/neovim/neovim/issues/9773
|
|
|
|
|
| |
ONE_WINDOW considers all windows whereas one_window() ignores floating windows.
Fixes https://github.com/neovim/neovim/issues/9768
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Problem: "gf" does not always work when URL has a port number. (Jakob
Schöttl)
Solution: When a URL is recognized also accept ":". (closes vim/vim#4082)
https://github.com/vim/vim/commit/cbef8e1aa1f260ffde16491b1678eae53a36cf68
|
|
|
|
|
|
| |
Problem: Relative cursor position is not calculated correctly.
Solution: Always set topline, also when window is one line only.
(Robert Webb) Add more info to getwininfo() for testing.
https://github.com/vim/vim/commit/8fcb60f961bdd134599fb016c6537fd496e800f5
|
|
|
| |
fixes #9680
|
| |
|
|
|
|
| |
Co-Author: Dongdong Zhou <dzhou121@gmail.com>
|
|
|
|
|
| |
Problem: Farsi support is outdated and unused.
Solution: Delete the Farsi support.
https://github.com/vim/vim/commit/14184a3133b9a6ee5f711d493c04e41ba4fa7c2f
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
wp->w_height_inner now contains the "inner" size, regardless if the
window has been drawn yet or not. It should be used instead of
wp->w_grid.Rows, for stuff that is not directly related to accessing
the allocated grid memory, such like cursor movement and terminal size
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is various places where 'conceallevel' and 'concealcursor'
necessitates additional redraws. This tries to separate the different
cases and handle each accordingly:
- Share code with 'cursorline' for the common case: vertical move of
cursor within the same window (concealcursor not active)
- Improve the logic for managing 'concealcursor' and switching modes:
test for the case where the new mode behaves differently from the
last one.
- Clarify the special case for horizontal movement within a line when
'concealcursor' is active, now there is an if-statement only for this
and not hidden in larger check mostly for the first point.
- Keep the special case for moving between windows as is.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
update_single_line() was only used for 'concealcursor'. But 'cursorline'
has very similiar characteristics (redraw both lines on move cursor
between lines) and works without its own special entry point to the
redraw subsystem.
Later on 'concealcursor' and 'cursorline' could share more logic, but for
now make the former use standard redrawWinline(). Make sure it is called
before update_screen(), so that it is immediately visible.
Get rid of update_prepare() and update_finish(), and all issues from
them and their callsites not being in sync with changes to
update_screen()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Using "gt" sometimes does not redraw a tab. (Jason Franklin)
Solution: Always set must_redraw in redraw_all_later().
https://github.com/vim/vim/commit/04b4e1a42409f81d65ae4801ac867dc0bba3d7b8
ref https://github.com/vim/vim/commit/bf3250a8ad39797e3ccdac82d20c6f19533419e4#r31852304
> I fixed it in a more general way, in that if we don't find a window
> that doesn't have the redraw type set it, then it will not set
> must_redraw, even though that's clearly intended.
ref #9152
ref #9155
NA patches:
vim-patch:8.1.0698
vim-patch:8.1.0699
|
| |
|
| |
|
|
|
|
| |
Handle the rare case of full highlight table properly
|
| |
|
| |
|
| |
|
|
|
|
| |
Move grid specific functions from mbyte.c to screen.c
|
|
|
|
| |
Throttle win_position events
|
| |
|
| |
|
|
|
|
|
|
|
| |
redraw_all_later() isn't guaranteed to update must_redraw after
switching tab, we must do it ourselves.
fixes #9152
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Follow-up of vim-patch:8.0.1215
|
|
|
|
|
|
| |
Problem: Newer gcc warns for implicit fallthrough.
Solution: Consistently use a FALLTHROUGH comment. (Christian Brabandt)
https://github.com/vim/vim/commit/2f40d129bf45cd35976e4120336ae6d504f5a5dd
|
| |
|
|
|
|
| |
free_buf (param) and help_window (variable) are bool.
|
|
|
|
|
|
| |
Problem: Using freed memory in quickfix code. (Dominique Pelle)
Solution: Handle a help window differently. (Yegappan Lakshmanan)
https://github.com/vim/vim/commit/d28cc3f55d4a5a980f6ac6fa682382822a223720
|
|\ |
|
| |\ |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|/ / |
|
| |
| |
| |
| |
| |
| |
| | |
Problem: 'winfixwidth' is not always respected by :close.
Solution: Prefer a frame without 'winfixwidth' or 'winfixheight'. (Jason
Franklin)
https://github.com/vim/vim/commit/c136af29c0b1939076fbae7d36afd90dce740315
|