mirror of
https://github.com/neovim/neovim.git
synced 2025-09-14 15:28:17 +00:00
@@ -17580,17 +17580,16 @@ void ex_function(exarg_T *eap)
|
|||||||
|
|
||||||
/* Check for defining a function inside this function. */
|
/* Check for defining a function inside this function. */
|
||||||
if (checkforcmd(&p, "function", 2)) {
|
if (checkforcmd(&p, "function", 2)) {
|
||||||
if (*p == '!')
|
if (*p == '!') {
|
||||||
p = skipwhite(p + 1);
|
p = skipwhite(p + 1);
|
||||||
|
}
|
||||||
p += eval_fname_script(p);
|
p += eval_fname_script(p);
|
||||||
if (ASCII_ISALPHA(*p)) {
|
|
||||||
free(trans_function_name(&p, TRUE, 0, NULL));
|
free(trans_function_name(&p, TRUE, 0, NULL));
|
||||||
if (*skipwhite(p) == '(') {
|
if (*skipwhite(p) == '(') {
|
||||||
++nesting;
|
nesting++;
|
||||||
indent += 2;
|
indent += 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* Check for ":append" or ":insert". */
|
/* Check for ":append" or ":insert". */
|
||||||
p = skip_range(p, NULL);
|
p = skip_range(p, NULL);
|
||||||
|
@@ -189,7 +189,7 @@ static int included_patches[] = {
|
|||||||
//552,
|
//552,
|
||||||
//551,
|
//551,
|
||||||
//550,
|
//550,
|
||||||
//549,
|
549,
|
||||||
//548 NA
|
//548 NA
|
||||||
547,
|
547,
|
||||||
//546,
|
//546,
|
||||||
|
50
test/functional/legacy/nested_function_spec.lua
Normal file
50
test/functional/legacy/nested_function_spec.lua
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
-- Tests for nested function.
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect, source = helpers.execute, helpers.expect, helpers.source
|
||||||
|
|
||||||
|
describe('test_nested_function', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
insert([[
|
||||||
|
result:]])
|
||||||
|
|
||||||
|
source([[
|
||||||
|
:fu! NestedFunc()
|
||||||
|
: fu! Func1()
|
||||||
|
: $put ='Func1'
|
||||||
|
: endfunction
|
||||||
|
: call Func1()
|
||||||
|
: fu! s:func2()
|
||||||
|
: $put ='s:func2'
|
||||||
|
: endfunction
|
||||||
|
: call s:func2()
|
||||||
|
: fu! s:_func3()
|
||||||
|
: $put ='s:_func3'
|
||||||
|
: endfunction
|
||||||
|
: call s:_func3()
|
||||||
|
: let fn = 'Func4'
|
||||||
|
: fu! {fn}()
|
||||||
|
: $put ='Func4'
|
||||||
|
: endfunction
|
||||||
|
: call {fn}()
|
||||||
|
: let fn = 'func5'
|
||||||
|
: fu! s:{fn}()
|
||||||
|
: $put ='s:func5'
|
||||||
|
: endfunction
|
||||||
|
: call s:{fn}()
|
||||||
|
:endfunction]])
|
||||||
|
execute('call NestedFunc()')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
result:
|
||||||
|
Func1
|
||||||
|
s:func2
|
||||||
|
s:_func3
|
||||||
|
Func4
|
||||||
|
s:func5]])
|
||||||
|
end)
|
||||||
|
end)
|
Reference in New Issue
Block a user