patch 9.1.0394: Cannot get a list of positions describing a region
Problem: Cannot get a list of positions describing a region
(Justin M. Keyes, after v9.1.0120)
Solution: Add the getregionpos() function
(Shougo Matsushita)
fixes: #14609
closes: #14617
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
Signed-off-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index 83153ad..7a83018 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -5181,10 +5181,26 @@
def Test_getregion()
assert_equal(['x'], getregion(getpos('.'), getpos('.'))->map((_, _) => 'x'))
+ assert_equal(['x'], getregionpos(getpos('.'), getpos('.'))->map((_, _) => 'x'))
- v9.CheckSourceDefAndScriptFailure(['getregion(10, getpos("."))'], ['E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1211: List required for argument 1'])
- assert_equal([''], getregion(getpos('.'), getpos('.')))
+ v9.CheckSourceDefAndScriptFailure(
+ ['getregion(10, getpos("."))'],
+ ['E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1211: List required for argument 1']
+ )
+ v9.CheckSourceDefAndScriptFailure(
+ ['getregionpos(10, getpos("."))'],
+ ['E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1211: List required for argument 1']
+ )
+ assert_equal(
+ [''],
+ getregion(getpos('.'), getpos('.'))
+ )
+ assert_equal(
+ [[[bufnr('%'), 1, 0, 0], [bufnr('%'), 1, 0, 0]]],
+ getregionpos(getpos('.'), getpos('.'))
+ )
v9.CheckSourceDefExecFailure(['getregion(getpos("a"), getpos("."))'], 'E1209:')
+ v9.CheckSourceDefExecFailure(['getregionpos(getpos("a"), getpos("."))'], 'E1209:')
enddef
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker