runtime(vim): Update base-syntax, fix nested function folding (#14397)
Only match function folding start and end patterns at the start of a line, excluding heredocs and :append/:change/:insert commands. Fixes #14393 Signed-off-by: Christian Brabandt <cb@256bit.org> Signed-off-by: Doug Kearns <dougkearns@gmail.com>
This commit is contained in:
@ -108,3 +108,23 @@ def Foo()
|
||||
"useless string"
|
||||
enddef
|
||||
|
||||
|
||||
" fold-region ending
|
||||
|
||||
def Foo()
|
||||
# enddef
|
||||
enddef
|
||||
|
||||
def Foo()
|
||||
echo "enddef"
|
||||
enddef
|
||||
|
||||
def Foo()
|
||||
let x =<< END
|
||||
endfunction
|
||||
END
|
||||
enddef
|
||||
|
||||
:def Foo()
|
||||
:enddef
|
||||
|
||||
|
||||
20
runtime/syntax/testdir/input/vim_ex_def_nested.vim
Normal file
20
runtime/syntax/testdir/input/vim_ex_def_nested.vim
Normal file
@ -0,0 +1,20 @@
|
||||
vim9script
|
||||
# Vim9 :def command (nested)
|
||||
|
||||
class Test
|
||||
const name: string
|
||||
|
||||
def new()
|
||||
def Name(): string
|
||||
function GiveName()
|
||||
return "any"
|
||||
endfunction
|
||||
|
||||
return GiveName()
|
||||
enddef
|
||||
|
||||
this.name = Name()
|
||||
enddef
|
||||
endclass
|
||||
|
||||
echo Test.new()
|
||||
22
runtime/syntax/testdir/input/vim_ex_def_nested_fold.vim
Normal file
22
runtime/syntax/testdir/input/vim_ex_def_nested_fold.vim
Normal file
@ -0,0 +1,22 @@
|
||||
vim9script
|
||||
# Vim9 :def command (nested)
|
||||
# VIM_TEST_SETUP let g:vimsyn_folding = 'f'
|
||||
# VIM_TEST_SETUP setl fdc=2 fdm=syntax
|
||||
|
||||
class Test
|
||||
const name: string
|
||||
|
||||
def new()
|
||||
def Name(): string
|
||||
function GiveName()
|
||||
return "any"
|
||||
endfunction
|
||||
|
||||
return GiveName()
|
||||
enddef
|
||||
|
||||
this.name = Name()
|
||||
enddef
|
||||
endclass
|
||||
|
||||
echo Test.new()
|
||||
@ -181,3 +181,43 @@ delfunction foo.bar
|
||||
delfunction! Foo
|
||||
delfunction foo.bar
|
||||
|
||||
|
||||
" fold-region ending
|
||||
|
||||
function Foo()
|
||||
" endfunction
|
||||
endfunction
|
||||
|
||||
function Foo()
|
||||
echo "endfunction"
|
||||
endfunction
|
||||
|
||||
function Foo()
|
||||
let x =<< END
|
||||
endfunction
|
||||
END
|
||||
|
||||
endfunction
|
||||
|
||||
function Foo()
|
||||
append
|
||||
endfunction
|
||||
.
|
||||
endfunction
|
||||
|
||||
function Foo()
|
||||
change
|
||||
endfunction
|
||||
.
|
||||
|
||||
endfunction
|
||||
|
||||
function Foo()
|
||||
insert
|
||||
endfunction
|
||||
.
|
||||
endfunction
|
||||
|
||||
:function Foo()
|
||||
:endfunction
|
||||
|
||||
|
||||
38
runtime/syntax/testdir/input/vim_ex_function_nested.vim
Normal file
38
runtime/syntax/testdir/input/vim_ex_function_nested.vim
Normal file
@ -0,0 +1,38 @@
|
||||
" Vim :def and :function commands (nested)
|
||||
|
||||
def FunA(): string
|
||||
def DoFunA(): string
|
||||
return "."
|
||||
enddef
|
||||
|
||||
return DoFunA()
|
||||
enddef
|
||||
|
||||
def FunB(): string
|
||||
function DoFunB()
|
||||
return ".."
|
||||
endfunction
|
||||
|
||||
return DoFunB()
|
||||
enddef
|
||||
|
||||
function FunC()
|
||||
def DoFunC(): string
|
||||
return "..."
|
||||
enddef
|
||||
|
||||
return DoFunC()
|
||||
endfunction
|
||||
|
||||
function FunD()
|
||||
function DoFunD()
|
||||
return "...."
|
||||
endfunction
|
||||
|
||||
return DoFunD()
|
||||
endfunction
|
||||
|
||||
echo FunA()
|
||||
echo FunB()
|
||||
echo FunC()
|
||||
echo FunD()
|
||||
40
runtime/syntax/testdir/input/vim_ex_function_nested_fold.vim
Normal file
40
runtime/syntax/testdir/input/vim_ex_function_nested_fold.vim
Normal file
@ -0,0 +1,40 @@
|
||||
" Vim :def and :function commands (nested)
|
||||
" VIM_TEST_SETUP let g:vimsyn_folding = 'f'
|
||||
" VIM_TEST_SETUP setl fdc=2 fdm=syntax
|
||||
|
||||
def FunA(): string
|
||||
def DoFunA(): string
|
||||
return "."
|
||||
enddef
|
||||
|
||||
return DoFunA()
|
||||
enddef
|
||||
|
||||
def FunB(): string
|
||||
function DoFunB()
|
||||
return ".."
|
||||
endfunction
|
||||
|
||||
return DoFunB()
|
||||
enddef
|
||||
|
||||
function FunC()
|
||||
def DoFunC(): string
|
||||
return "..."
|
||||
enddef
|
||||
|
||||
return DoFunC()
|
||||
endfunction
|
||||
|
||||
function FunD()
|
||||
function DoFunD()
|
||||
return "...."
|
||||
endfunction
|
||||
|
||||
return DoFunD()
|
||||
endfunction
|
||||
|
||||
echo FunA()
|
||||
echo FunB()
|
||||
echo FunC()
|
||||
echo FunD()
|
||||
Reference in New Issue
Block a user