mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 11:28:22 +00:00
fix(mouse): handle folded lines with virt_lines attached to line above
This commit is contained in:
@@ -42,6 +42,7 @@ describe("folded lines", function()
|
||||
[10] = {background = Screen.colors.LightGrey, underline = true},
|
||||
[11] = {bold=true},
|
||||
[12] = {background = Screen.colors.Grey90},
|
||||
[16] = {background = Screen.colors.LightGrey},
|
||||
})
|
||||
end)
|
||||
|
||||
@@ -2010,6 +2011,17 @@ describe("folded lines", function()
|
||||
]])
|
||||
end
|
||||
|
||||
meths.input_mouse('left', 'press', '', multigrid and 2 or 0, 4, 0)
|
||||
eq({
|
||||
column = 1,
|
||||
line = 3,
|
||||
screencol = 1,
|
||||
screenrow = 5,
|
||||
wincol = 1,
|
||||
winid = 1000,
|
||||
winrow = 5,
|
||||
}, funcs.getmousepos())
|
||||
|
||||
meths.buf_set_extmark(0, ns, 1, 0, { virt_lines = {{{"more virt_line below line 2", ""}}} })
|
||||
feed('G<C-E>')
|
||||
if multigrid then
|
||||
@@ -2226,6 +2238,150 @@ describe("folded lines", function()
|
||||
|
|
||||
]])
|
||||
end
|
||||
|
||||
feed('3<C-Y>')
|
||||
if multigrid then
|
||||
screen:expect([[
|
||||
## grid 1
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[3:---------------------------------------------]|
|
||||
## grid 2
|
||||
virt_line below line 2 |
|
||||
more virt_line below line 2 |
|
||||
{5:+-- 2 lines: line 3·························}|
|
||||
^line 5 |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
## grid 3
|
||||
|
|
||||
]])
|
||||
else
|
||||
screen:expect([[
|
||||
virt_line below line 2 |
|
||||
more virt_line below line 2 |
|
||||
{5:+-- 2 lines: line 3·························}|
|
||||
^line 5 |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
|
|
||||
]])
|
||||
end
|
||||
|
||||
meths.input_mouse('left', 'press', '3', multigrid and 2 or 0, 3, 0)
|
||||
if multigrid then
|
||||
screen:expect([[
|
||||
## grid 1
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[3:---------------------------------------------]|
|
||||
## grid 2
|
||||
virt_line below line 2 |
|
||||
more virt_line below line 2 |
|
||||
{5:+-- 2 lines: line 3·························}|
|
||||
^l{16:ine 5} |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
## grid 3
|
||||
{11:-- VISUAL LINE --} |
|
||||
]])
|
||||
else
|
||||
screen:expect([[
|
||||
virt_line below line 2 |
|
||||
more virt_line below line 2 |
|
||||
{5:+-- 2 lines: line 3·························}|
|
||||
^l{16:ine 5} |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{11:-- VISUAL LINE --} |
|
||||
]])
|
||||
end
|
||||
|
||||
meths.input_mouse('left', 'drag', '3', multigrid and 2 or 0, 7, 0)
|
||||
if multigrid then
|
||||
screen:expect([[
|
||||
## grid 1
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[3:---------------------------------------------]|
|
||||
## grid 2
|
||||
more virt_line below line 2 |
|
||||
{5:+-- 2 lines: line 3·························}|
|
||||
^l{16:ine 5} |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
## grid 3
|
||||
{11:-- VISUAL LINE --} |
|
||||
]])
|
||||
else
|
||||
screen:expect([[
|
||||
more virt_line below line 2 |
|
||||
{5:+-- 2 lines: line 3·························}|
|
||||
^l{16:ine 5} |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{11:-- VISUAL LINE --} |
|
||||
]])
|
||||
end
|
||||
|
||||
meths.input_mouse('left', 'drag', '3', multigrid and 2 or 0, 7, 5)
|
||||
if multigrid then
|
||||
screen:expect([[
|
||||
## grid 1
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[3:---------------------------------------------]|
|
||||
## grid 2
|
||||
{5:+-- 2 lines: line 3·························}|
|
||||
{16:line }^5 |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
## grid 3
|
||||
{11:-- VISUAL LINE --} |
|
||||
]])
|
||||
else
|
||||
screen:expect([[
|
||||
{5:+-- 2 lines: line 3·························}|
|
||||
{16:line }^5 |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{11:-- VISUAL LINE --} |
|
||||
]])
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user