mirror of
https://github.com/neovim/neovim.git
synced 2025-10-09 19:36:40 +00:00
vim-patch:8.0.0176
Problem: Using :change in between :function and :endfunction fails.
Solution: Recognize :change inside a function. (ichizok, closes vim/vim#1374)
70bcd7336f
This commit is contained in:
@@ -1064,6 +1064,77 @@ func Test_echo_and_string()
|
||||
|
||||
endfunc
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Test 95: lines of :append, :change, :insert {{{1
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
function! DefineFunction(name, body)
|
||||
let func = join(['function! ' . a:name . '()'] + a:body + ['endfunction'], "\n")
|
||||
exec func
|
||||
endfunction
|
||||
|
||||
func Test_script_lines()
|
||||
" :append
|
||||
try
|
||||
call DefineFunction('T_Append', [
|
||||
\ 'append',
|
||||
\ 'py <<EOS',
|
||||
\ '.',
|
||||
\ ])
|
||||
catch
|
||||
call assert_report("Can't define function")
|
||||
endtry
|
||||
try
|
||||
call DefineFunction('T_Append', [
|
||||
\ 'append',
|
||||
\ 'abc',
|
||||
\ ])
|
||||
call assert_report("Shouldn't be able to define function")
|
||||
catch
|
||||
call assert_exception('Vim(function):E126: Missing :endfunction')
|
||||
endtry
|
||||
|
||||
" :change
|
||||
try
|
||||
call DefineFunction('T_Change', [
|
||||
\ 'change',
|
||||
\ 'py <<EOS',
|
||||
\ '.',
|
||||
\ ])
|
||||
catch
|
||||
call assert_report("Can't define function")
|
||||
endtry
|
||||
try
|
||||
call DefineFunction('T_Change', [
|
||||
\ 'change',
|
||||
\ 'abc',
|
||||
\ ])
|
||||
call assert_report("Shouldn't be able to define function")
|
||||
catch
|
||||
call assert_exception('Vim(function):E126: Missing :endfunction')
|
||||
endtry
|
||||
|
||||
" :insert
|
||||
try
|
||||
call DefineFunction('T_Insert', [
|
||||
\ 'insert',
|
||||
\ 'py <<EOS',
|
||||
\ '.',
|
||||
\ ])
|
||||
catch
|
||||
call assert_report("Can't define function")
|
||||
endtry
|
||||
try
|
||||
call DefineFunction('T_Insert', [
|
||||
\ 'insert',
|
||||
\ 'abc',
|
||||
\ ])
|
||||
call assert_report("Shouldn't be able to define function")
|
||||
catch
|
||||
call assert_exception('Vim(function):E126: Missing :endfunction')
|
||||
endtry
|
||||
endfunc
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Modelines {{{1
|
||||
" vim: ts=8 sw=4 tw=80 fdm=marker
|
||||
|
Reference in New Issue
Block a user