mirror of
https://github.com/neovim/neovim.git
synced 2025-10-03 00:18:33 +00:00
vim-patch:8.1.1911: more functions can be used as methods
Problem: More functions can be used as methods.
Solution: Make a few more functions usable as a method.
64b4d73524
Note that the old-style version of Test_byteidx() was already translated
to a Lua test in 069_multibyte_formatting_spec.lua. Keep both versions,
using Test_byteidx() to mainly test the method call syntax for byteidx()
and byteidxcomp().
This commit is contained in:
@@ -852,7 +852,7 @@ func Test_byte2line_line2byte()
|
||||
|
||||
set fileformat=mac
|
||||
call assert_equal([-1, -1, 1, 1, 2, 2, 2, 3, 3, -1],
|
||||
\ map(range(-1, 8), 'byte2line(v:val)'))
|
||||
\ map(range(-1, 8), 'v:val->byte2line()'))
|
||||
call assert_equal([-1, -1, 1, 3, 6, 8, -1],
|
||||
\ map(range(-1, 5), 'line2byte(v:val)'))
|
||||
|
||||
@@ -875,6 +875,34 @@ func Test_byte2line_line2byte()
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
func Test_byteidx()
|
||||
let a = '.é.' " one char of two bytes
|
||||
call assert_equal(0, byteidx(a, 0))
|
||||
call assert_equal(0, byteidxcomp(a, 0))
|
||||
call assert_equal(1, byteidx(a, 1))
|
||||
call assert_equal(1, byteidxcomp(a, 1))
|
||||
call assert_equal(3, byteidx(a, 2))
|
||||
call assert_equal(3, byteidxcomp(a, 2))
|
||||
call assert_equal(4, byteidx(a, 3))
|
||||
call assert_equal(4, byteidxcomp(a, 3))
|
||||
call assert_equal(-1, byteidx(a, 4))
|
||||
call assert_equal(-1, byteidxcomp(a, 4))
|
||||
|
||||
let b = '.é.' " normal e with composing char
|
||||
call assert_equal(0, b->byteidx(0))
|
||||
call assert_equal(1, b->byteidx(1))
|
||||
call assert_equal(4, b->byteidx(2))
|
||||
call assert_equal(5, b->byteidx(3))
|
||||
call assert_equal(-1, b->byteidx(4))
|
||||
|
||||
call assert_equal(0, b->byteidxcomp(0))
|
||||
call assert_equal(1, b->byteidxcomp(1))
|
||||
call assert_equal(2, b->byteidxcomp(2))
|
||||
call assert_equal(4, b->byteidxcomp(3))
|
||||
call assert_equal(5, b->byteidxcomp(4))
|
||||
call assert_equal(-1, b->byteidxcomp(5))
|
||||
endfunc
|
||||
|
||||
" Test for charidx()
|
||||
func Test_charidx()
|
||||
let a = 'xáb́y'
|
||||
@@ -1476,6 +1504,7 @@ endfunc
|
||||
|
||||
func Test_call()
|
||||
call assert_equal(3, call('len', [123]))
|
||||
call assert_equal(3, 'len'->call([123]))
|
||||
call assert_fails("call call('len', 123)", 'E714:')
|
||||
call assert_equal(0, call('', []))
|
||||
|
||||
@@ -1483,6 +1512,7 @@ func Test_call()
|
||||
return len(self.data)
|
||||
endfunction
|
||||
let mydict = {'data': [0, 1, 2, 3], 'len': function("Mylen")}
|
||||
eval mydict.len->call([], mydict)->assert_equal(4)
|
||||
call assert_fails("call call('Mylen', [], 0)", 'E715:')
|
||||
endfunc
|
||||
|
||||
|
Reference in New Issue
Block a user