0
0
mirror of https://github.com/vim/vim.git synced 2025-10-03 05:14:07 -04:00

patch 8.2.1047: Vim9: script cannot use line continuation like :def function

Problem:    Vim9: script cannot use line continuation like in a :def function.
Solution:   Pass the getline function pointer to the eval() functions.  Use it
            for addition and multiplication operators.
This commit is contained in:
Bram Moolenaar
2020-06-24 18:37:35 +02:00
parent b7e2483655
commit 5409f5d8c9
15 changed files with 300 additions and 111 deletions

View File

@@ -570,6 +570,26 @@ def Test_expr5()
assert_equal(0z01ab01ab, g:ablob + g:ablob)
enddef
def Test_expr5_vim9script()
" only checks line continuation
let lines =<< trim END
vim9script
let var = 11
+ 77
- 22
assert_equal(66, var)
END
CheckScriptSuccess(lines)
lines =<< trim END
vim9script
let var = 'one'
.. 'two'
assert_equal('onetwo', var)
END
CheckScriptSuccess(lines)
enddef
def Test_expr5_float()
if !has('float')
MissingFeature 'float'
@@ -661,6 +681,26 @@ def Test_expr6()
call CheckDefFailure(["let x = 6 * xxx"], 'E1001')
enddef
def Test_expr6_vim9script()
" only checks line continuation
let lines =<< trim END
vim9script
let var = 11
* 22
/ 3
assert_equal(80, var)
END
CheckScriptSuccess(lines)
lines =<< trim END
vim9script
let var = 25
% 10
assert_equal(5, var)
END
CheckScriptSuccess(lines)
enddef
def Test_expr6_float()
if !has('float')
MissingFeature 'float'