runtime(vim): Update base-syntax, fix function tail comments

Match Vim9-script comments after :def and :enddef and legacy-script
comments after :func and :endfunc, in any definition context.

Highlight incorrect comment types after these commands as errors.

fixes: #15062
closes: #15072

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Doug Kearns
2024-06-22 11:20:36 +02:00
committed by Christian Brabandt
parent f0e6914420
commit fc64ac0be2
25 changed files with 538 additions and 34 deletions

View File

@ -0,0 +1,44 @@
vim9script
# Vim9 :function and :def tail comment errors
# VIM_TEST_SETUP unlet! g:vimsyn_folding
fun Test1() abort # fun
return 1
endfun # endfun
def Test2(): number " def
return 2
enddef " enddef
fun Test3() abort # fun
fun s:DoTest3() abort # fun
return 3
endfun # endfun
return s:DoTest3()
endfun # endfun
def Test4(): number " def
def DoTest4(): number " def
return 4
enddef " enddef
return DoTest4()
enddef " enddef
def Test5(): number " def
fun DoTest5() abort # fun
return 5
endfun # endfun
return DoTest5()
enddef " enddef
fun Test6() abort # fun
def s:DoTest6(): number " def
return 6
enddef " enddef
return s:DoTest6()
endfun # endfun
for d in range(1, 6)
exec $'echo Test{d}()'
endfor

View File

@ -0,0 +1,44 @@
vim9script
# Vim9 :function and :def tail comments
# VIM_TEST_SETUP unlet! g:vimsyn_folding
fun Test1() abort " fun
return 1
endfun " endfun
def Test2(): number # def
return 2
enddef # enddef
fun Test3() abort " fun
fun s:DoTest3() abort " fun
return 3
endfun " endfun
return s:DoTest3()
endfun " endfun
def Test4(): number # def
def DoTest4(): number # def
return 4
enddef # enddef
return DoTest4()
enddef # enddef
def Test5(): number # def
fun DoTest5() abort " fun
return 5
endfun " endfun
return DoTest5()
enddef # enddef
fun Test6() abort " fun
def s:DoTest6(): number # def
return 6
enddef # enddef
return s:DoTest6()
endfun " endfun
for d in range(1, 6)
exec $'echo Test{d}()'
endfor

View File

@ -85,7 +85,7 @@ def Foo()
enddef | echo "Foo"
def Foo()
enddef " comment
enddef # comment
" parameters

View File

@ -86,7 +86,7 @@ def Foo()
enddef | echo "Foo"
def Foo()
enddef " comment
enddef # comment
" parameters

View File

@ -0,0 +1,43 @@
" Vim :function and :def tail comment errors
" VIM_TEST_SETUP unlet! g:vimsyn_folding
fun s:Test1() abort # fun
return 1
endfun # endfun
def s:Test2(): number " def
return 2
enddef " enddef
fun s:Test3() abort # fun
fun s:DoTest3() abort # fun
return 3
endfun # endfun
return s:DoTest3()
endfun # endfun
def s:Test4(): number " def
def DoTest4(): number " def
return 4
enddef " enddef
return DoTest4()
enddef " enddef
def s:Test5(): number " def
fun DoTest5() abort # fun
return 5
endfun # endfun
return DoTest5()
enddef " enddef
fun s:Test6() abort # fun
def s:DoTest6(): number " def
return 6
enddef " enddef
return s:DoTest6()
endfun # endfun
for d in range(1, 6)->reverse()
exec $'echo s:Test{d}()'
exec $'delfunction s:Test{d}'
endfor

View File

@ -0,0 +1,43 @@
" Vim :function and :def tail comments
" VIM_TEST_SETUP unlet! g:vimsyn_folding
fun s:Test1() abort " fun
return 1
endfun " endfun
def s:Test2(): number # def
return 2
enddef # enddef
fun s:Test3() abort " fun
fun s:DoTest3() abort " fun
return 3
endfun " endfun
return s:DoTest3()
endfun " endfun
def s:Test4(): number # def
def DoTest4(): number # def
return 4
enddef # enddef
return DoTest4()
enddef # enddef
def s:Test5(): number # def
fun DoTest5() abort " fun
return 5
endfun " endfun
return DoTest5()
enddef # enddef
fun s:Test6() abort " fun
def s:DoTest6(): number # def
return 6
enddef # enddef
return s:DoTest6()
endfun " endfun
for d in range(1, 6)->reverse()
exec $'echo s:Test{d}()'
exec $'delfunction s:Test{d}'
endfor