fix(lua): vim.region on linewise selection #25467

fixes #18155
This commit is contained in:
Aayush Ojha 2023-10-06 05:44:50 -07:00 committed by GitHub
parent 01374446af
commit 5db076c7cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 0 deletions

View File

@ -548,6 +548,9 @@ function vim.region(bufnr, pos1, pos2, regtype, inclusive)
else
c2 = #bufline + 1
end
elseif regtype == 'V' then -- linewise selection, always return whole line
c1 = 0
c2 = -1
else
c1 = (l == pos1[1]) and pos1[2] or 0
c2 = (l == pos2[1]) and (pos2[2] + (inclusive and 1 or 0)) or -1

View File

@ -2401,6 +2401,14 @@ describe('lua stdlib', function()
insert([[αα]])
eq({0,5}, exec_lua[[ return vim.region(0,{0,0},{0,4},'3',true)[0] ]])
end)
it('linewise', function()
insert(dedent( [[
text tααt tααt text
text tαxt txtα tex
text tαxt tαxt
]]))
eq({0,-1}, exec_lua[[ return vim.region(0,{1,5},{1,14},'V',true)[1] ]])
end)
it('getpos() input', function()
insert('getpos')
eq({0,6}, exec_lua[[ return vim.region(0,{0,0},'.','v',true)[0] ]])