Mercurial > vim
diff runtime/syntax/testdir/input/vim_ex_function.vim @ 34611:1790ce961c7d
runtime(vim): Update base-syntax, improve function definition highlighting (#14203)
Commit: https://github.com/vim/vim/commit/35e6f4ca27c8115c606f265e4b09e11db01c970d
Author: dkearns <dougkearns@gmail.com>
Date: Fri Mar 22 06:41:10 2024 +1100
runtime(vim): Update base-syntax, improve function definition highlighting (https://github.com/vim/vim/issues/14203)
Improve function definition highlighting.
- Match bang and function modifiers - abort etc.
- Only match valid scope modifiers.
- Match listing commands.
- Don't match ex commands in function names.
- Split function syntax groups into :func and :def subgroups.
- Match Vim9-script parameter and return types.
- Limit legacy-script and Vim9-script comments to :func and :def
definitions, respectively.
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 21 Mar 2024 20:45:04 +0100 |
parents | |
children |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/runtime/syntax/testdir/input/vim_ex_function.vim @@ -0,0 +1,182 @@ +" Vim :function command + + +" list + +function +function Foo +function /Foo.* + +function | echo "Foo" +function " comment +function Foo | echo "Foo" +function Foo " comment + + +" definition + +" empty definition +function Foo() +endfunction + +" curly-brace names +function {"F"}oo() +endfunction + +function F{"o"}o() +endfunction + +function Fo{"o"}() +endfunction + +function {"F"}o{"o"}() +endfunction + +function {"F"}{"o"}{"o"}() +endfunction + +function Foo() + return 42 +endfunction + +" trailing whitespace +function Foo() + return 42 +endfunction + +function Foo() " comment + return 42 +endfunction + +function! Foo() + return 42 +endfunction + +function g:Foo() + return 42 +endfunction + +function s:Foo() + return 42 +endfunction + +function <SID>Foo() + return 42 +endfunction + +function foo#bar#Foo() + return 42 +endfunction + +" same name as an Ex command +function s:ls() +endfunction + + +" modifiers + +function Foo() range +endfunction + +function Foo() range " comment +endfunction + +function Foo() range + return 42 +endfunction + +function Foo() abort + return 42 +endfunction + +function Foo() dict + return 42 +endfunction + +function Foo() closure + return 42 +endfunction + +function Foo() range abort dict closure + return 42 +endfunction + +function! Foo() range + return 42 +endfunction + +function! Foo() abort + return 42 +endfunction + +function! Foo() dict + return 42 +endfunction + +function! Foo() closure + return 42 +endfunction + +function! Foo() range abort dict closure + return 42 +endfunction + + +" :endfunction trailing + +function Foo() + return 42 + " trailing whitespace +endfunction + +function Foo() + return 42 +endfunction | echo "Foo" + +function Foo() + return 42 +endfunction " comment + + +" parameters + +function Foo(x, y, z, ...) + return 42 +endfunction + +function Foo( + \ x, + \ y, + \ z, + \ ...) + return 42 +endfunction + +function Foo(x, y = 42, z = "zed") + return 42 +endfunction + +function Foo( + \ x, + \ y = 42, + \ z = "zed") + return 42 +endfunction + + +" comments + +function Foo() + " Legacy-script comment + # 42 " comment + return 42 +endfunction + + +" delete function + +delfunction Foo +delfunction foo.bar +delfunction! Foo +delfunction foo.bar +