| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The removes the previous restriction that nvim_buf_set_extmark()
could not be used to highlight arbitrary multi-line regions
The problem can be summarized as follows: let's assume an extmark with a
hl_group is placed covering the region (5,0) to (50,0) Now, consider
what happens if nvim needs to redraw a window covering the lines 20-30.
It needs to be able to ask the marktree what extmarks cover this region,
even if they don't begin or end here.
Therefore the marktree needs to be augmented with the information covers
a point, not just what marks begin or end there. To do this, we augment
each node with a field "intersect" which is a set the ids of the
marks which overlap this node, but only if it is not part of the set of
any parent. This ensures the number of nodes that need to be explicitly
marked grows only logarithmically with the total number of explicitly
nodes (and thus the number of of overlapping marks).
Thus we can quickly iterate all marks which overlaps any query position
by looking up what leaf node contains that position. Then we only need
to consider all "start" marks within that leaf node, and the "intersect"
set of that node and all its parents.
Now, and the major source of complexity is that the tree restructuring
operations (to ensure that each node has T-1 <= size <= 2*T-1) also need
to update these sets. If a full inner node is split in two, one of the
new parents might start to completely overlap some ranges and its ids
will need to be moved from its children's sets to its own set.
Similarly, if two undersized nodes gets joined into one, it might no
longer completely overlap some ranges, and now the children which do
needs to have the have the ids in its set instead. And then there are
the pivots! Yes the pivot operations when a child gets moved from one
parent to another.
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: use-after-free in do_ecmd
Solution: Verify oldwin pointer after reset_VIsual()
https://github.com/vim/vim/commit/e1dc9a627536304bc4f738c21e909ad9fcf3974c
N/A patches for version.c:
vim-patch:9.0.1841: style: trailing whitespace in ex_cmds.c
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: wrong cursor position with 'showbreak' and lcs-eol
Solution: Add size of 'showbreak' before when 'listchars' "eol" is used.
Also fix wrong cursor position with wrapping virtual text on
empty line and 'showbreak'.
closes: vim/vim#12891
https://github.com/vim/vim/commit/1193951bebcff50d88403ce17dec5d3be14f131d
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Cursor is adjusted in window that did not change in size by
'splitkeep'.
Solution: Only check that cursor position is valid in a window that
has changed in size.
closes: vim/vim#12509
https://github.com/vim/vim/commit/16af913eeefb288ce968fb87e09a597413861900
Co-authored-by: Luuk van Baal <luukvbaal@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
screen line (#24806)
Problem: Visual highlight not working with cursor at end of screen line
and 'showbreak'.
Solution: Only update "vcol_prev" when drawing buffer text.
closes: vim/vim#12865
https://github.com/vim/vim/commit/8fc6a1dae07aa63faa6bfe6ed93888635745830c
|
|
|
|
|
|
|
|
| |
Problem: incsearch test not sufficient (after 9.0.1691)
Solution: add an additional test
https://github.com/vim/vim/commit/73b8209266f0cd5c6d4df77b3700172d9c26df31
Co-authored-by: Christ van Willegen <cvwillegen@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
(#24667)
Problem: wrong viewport restored for incsearch and smoothscroll
Solution: Save and restore skipcol as well
closes: vim/vim#12713
https://github.com/vim/vim/commit/7b7b4cb6f274e7bace127107b0d2752133c4020b
|
| |
|
| |
|
|
|
| |
Follow-up to #24195.
|
|
|
|
|
|
|
|
| |
Problem: Regression test doesn't fail when fix is reverted.
Solution: Add "n" to 'cpoptions' instead of using :winsize. (closes vim/vim#12587,
issue vim/vim#12528)
https://github.com/vim/vim/commit/e42989374144a63d986b878618aeac328e35ac3b
|
|
|
|
|
|
|
|
|
| |
Problem: Divide by zero when scrolling with 'smoothscroll' set.
Solution: Avoid using a negative width. (closes vim/vim#12540, closes vim/vim#12528)
https://github.com/vim/vim/commit/8154e642aa476e1a5d3de66c34e8289845b2b797
Co-authored-by: fullwaywang <fullwaywang@tencent.com>
|
|
|
|
|
|
|
|
|
| |
Problem: Error message is cleared when removing mode message.
Solution: Also reset flags when the message is further down.
https://github.com/vim/vim/commit/da51ad51bf4fbd66619786d0e6a83fb3ca09930b
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
| |
Problem: Message is cleared when removing mode message (Gary Johnson).
Solution: Do not clear the command line after displaying a message.
https://github.com/vim/vim/commit/800cdbb7caeb5dd4379c6cb071bb12391f20bcf3
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
conversion
Problem: Tests failing because there is no error for float to string
conversion.
Solution: Change the check for failure to check for correct result. Make
some conversions strict in Vim9 script.
https://github.com/vim/vim/commit/3cfa5b16b06bcc034f6de77070fa779d698ab5e9
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
|
| |
Problem: Visual area not shown when using 'showbreak' and start of line is
not visible. (Jaehwang Jung)
Solution: Adjust "fromcol" for the space taken by 'showbreak'.
(closes vim/vim#12514)
https://github.com/vim/vim/commit/f578ca2c8f36b61ac3301fe8b59a8473c964cdc2
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
|
| |
(#23928)
Problem: "skipcol" not reset when using multi-byte characters.
Solution: Compare with w_virtcol instead of w_cursor.col. (closes vim/vim#12457)
https://github.com/vim/vim/commit/15d4747ffd197ffa5b5a41a852a1fe93b6cc35fd
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
| |
Problem: Display is wrong when 'smoothscroll' is set and scrolling multiple
lines.
Solution: Redraw with UPD_NOT_VALID when "skipcol" is or was set.
(closes vim/vim#12490, closes vim/vim#12468)
https://github.com/vim/vim/commit/d9a92dc70b20c76cef9ca186676583c92c14311c
|
|
|
|
|
|
|
|
|
|
| |
'smoothscroll'
Problem: Display wrong when scrolling multiple lines with 'smoothscroll'
set.
Solution: Redraw when w_skipcol changed. (closes vim/vim#12477, closes vim/vim#12468)
https://github.com/vim/vim/commit/3c802277604a6b21110e41bedfe4c937ba7c2b7d
|
|
|
|
|
|
|
|
|
|
| |
char (#23897)
Problem: Stray character is visible if 'smoothscroll' marker is displayed
on top of a double-wide character.
Solution: When overwriting a double-width character with the 'smoothscroll'
marker clear the second half. (closes vim/vim#12469)
https://github.com/vim/vim/commit/ecb87dd7d3f7b9291092a7dd8fae1e59b9903252
|
|
|
|
|
|
|
|
|
| |
Problem: Cursor ends up below the window after a put.
Solution: Mark w_crow and w_botline invalid when changing the cursor line.
(closes vim/vim#12465)
https://github.com/vim/vim/commit/8509014adda188ee8bdf6a2e123fbf15a91b29d2
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
| |
`nvim_(get|set)_option_value` pick the current buffer / window by default for buffer-local/window-local (but not global-local) options. So specifying `buf = 0` or `win = 0` in opts is unnecessary for those options. This PR removes those to reduce code clutter.
|
|
|
|
|
| |
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: famiu <famiuhaque@protonmail.com>
|
|
|
|
|
|
|
|
| |
Problem: With 'smoothscroll' cursor may move below botline.
Solution: Call redraw_later() if needed, Compute cursor row with adjusted
condition. (Luuk van Baal, closes vim/vim#12415)
https://github.com/vim/vim/commit/d49f646bf56b29d44bbb16e79bc877b59aab38ac
|
|
|
|
|
|
|
|
|
|
| |
'smoothscroll'
Problem: Display moves up and down with 'incsearch' and 'smoothscroll'.
Solution: Do not check if w_skipcol changed. (Luuk van Baal, closes vim/vim#12410,
closes vim/vim#12409)
https://github.com/vim/vim/commit/0222c2d103ad9298bec4dc8864cd80b4e7559db1
|
|
|
|
|
|
|
|
|
|
| |
(#23644)
Problem: Display wrong when moving cursor to above the top line and
'smoothscroll' is set.
Solution: Call adjust_skipcol() in more places and make it work better.
(Luuk van Baal, closes vim/vim#12395)
https://github.com/vim/vim/commit/798fa76dbf737f855e47b10bf326453866b429ab
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: Display errors when making topline shorter and 'smoothscroll' is
set.
Solution: Reset w_skipcol when the topline becomes shorter than its current
value. (Luuk van Baal, closes vim/vim#12367)
https://github.com/vim/vim/commit/5d01f86d99bc3a3fd92d4f4e9338a9e78e9ebe16
|
|
|
|
|
|
|
|
| |
Problem: Line not fully displayed if it doesn't fit in the screen.
Solution: Do not reset s_skipcol if not needed. (Luuk van Baal,
closes vim/vim#12376)
https://github.com/vim/vim/commit/6c018680be0ec25d42614a93be1ea08df29a9e2a
|
|
|
|
|
|
|
|
| |
Problem: Test for 'smoothscroll' is ineffective.
Solution: Change the order of testing "zb" and "zt". (Luuk van Baal,
closes vim/vim#12366)
https://github.com/vim/vim/commit/6f37e530d3e2d58ff055723047bf91d91af2632c
|
|
|
|
|
|
|
|
|
| |
Problem: Cursor moves to wrong line when 'foldmethod' is "diff". (Rick
Howe)
Solution: Adjust logic for scrolling. (Luuk van Baal, closes vim/vim#12364,
closes vim/vim#12218)
https://github.com/vim/vim/commit/aa6ba308a1498dc8da04d1d30ec0470018bf782a
|
|
|
|
|
|
|
| |
Problem: 'smoothscroll' does not always work properly.
Solution: Do not reset w_skipcol after it was intentionally set. (Luuk van
Baal, closes vim/vim#12360, closes vim/vim#12199, closes vim/vim#12323)
https://github.com/vim/vim/commit/3ce8c389155fc1257082cdb0cef7801b49f6aaf9
|
|
|
|
|
|
|
|
|
|
|
| |
(#23517)
Problem: Search stats not always visible when searching backwards.
Solution: Do not display the top/bot message on top of the search stats.
(Christian Brabandt, closes vim/vim#12322, closes vim/vim#12222)
https://github.com/vim/vim/commit/34a6a3617b5b6ce11372439f14762caddc4b0cea
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|
|
|
|
|
|
|
| |
Problem: Text scrolls unnecessarily when splitting and 'splitkeep' is not
"cursor".
Solution: Avoid resetting w_skipcol. (Luuk van Baal, closes vim/vim#12334)
https://github.com/vim/vim/commit/b926bf47d61360a4ec5e4867714a08d70fd49965
|
|
|
|
|
|
|
|
| |
Problem: Inserting lines when scrolling with 'smoothscroll' set.
Solution: Adjust line height computation for w_skipcol. (Luuk van Baal,
closes vim/vim#12350)
https://github.com/vim/vim/commit/c8502f9b880b6d23baa4f9d28b60e1ceb442e35f
|
|
|
|
|
|
|
|
|
| |
Problem: Slightly inconsistent error messages.
Solution: Make it "Using a Float". (closes vim/vim#10959)
https://github.com/vim/vim/commit/dde77a7c4d72622284dc5fb72557bde42c314fa6
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
| |
Problem: Inconsistent capitalization in error messages.
Solution: Make capitalization consistent. (Doug Kearns)
https://github.com/vim/vim/commit/cf030578b26460643dca4a40e7f2e3bc19c749aa
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
| |
Problem: Vim9: builtin function arguments not checked at compile time.
Solution: Add more type checks. (Yegappan Lakshmanan, closes vim/vim#8539)
https://github.com/vim/vim/commit/5b73992d8f82be7ac4b6f46c17f53ffb9640e5fa
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
|
|
|
|
|
|
|
|
|
|
| |
Problem: Concealed characters do not work correctly.
Solution: Subtract boguscols instead of adding them. (closes vim/vim#11273)
https://github.com/vim/vim/commit/75008661821eee6989476908feaf64a9dea03e05
Code change is N/A as Nvim has a draw_col variable instead.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
| |
Problem: Line number not displayed when using 'smoothscroll'.
Solution: Adjust condition for showing the line number. (closes vim/vim#12333)
https://github.com/vim/vim/commit/88bb3e0a48f160134bdea98cd2b8bd3af86f9d6f
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: No test for deleting the end of a long wrapped line.
Solution: Add a test to check the right text is displayed. (Luuk van Baal,
closes vim/vim#12318)
https://github.com/vim/vim/commit/5b10a140983c16140d69a214494c4b8af8b34763
Co-authored-by: Luuk van Baal <luukvbaal@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: Divide by zero with 'smoothscroll' set and a narrow window.
Solution: Bail out when the window is too narrow.
https://github.com/vim/vim/commit/870219c58c0804bdc55419b2e455c06ac715a835
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Cursor positioning and display problems with 'smoothscroll' and
using "zt", "zb" or "zz".
Solution: Adjust computations and conditions. (Yee Cheng Chin,
closes vim/vim#11764)
https://github.com/vim/vim/commit/db4d88c2adfe8f8122341ac9d6cae27ef78451c8
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
| |
Problem: With 'smoothscroll' skipcol may be reset unnecessarily.
Solution: Check the line does actually fit in the window.
https://github.com/vim/vim/commit/b21b8e9ed081a6ef6b6745fe65d219b3ac046c3b
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
|
| |
Problem: With 'smoothscroll' cursor may end up in wrong position.
Solution: Correct the computation of screen lines. (Yee Cheng Chin,
closes vim/vim#11502)
https://github.com/vim/vim/commit/361895d2a15b4b0bbbb4c009261eab5b3d69ebf1
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Problem: Cursor moves too far with 'smoothscroll'.
Solution: Only move as far as really needed. (Yee Cheng Chin, closes vim/vim#11504)
https://github.com/vim/vim/commit/81ba26e9de24ca6b1c05b6ec03e53b21793f1a4b
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: With 'smoothscroll' cursor is one screen line too far down. (Ernie
Rael)
Solution: Add a test that currently has the wrong result so that a fix can
be made. (issue vim/vim#11436)
https://github.com/vim/vim/commit/75ac25b4967cdcdfdf2d6c086a6e2308868c280a
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|