mirror of
https://github.com/vim/vim
synced 2025-05-02 22:37:47 +02:00
- Only match valid predefined and option variables. - Match scope dictionaries. - Highlight scope prefixed variables as a scope dictionary accessor. The vimVarScope syntax group can be linked to vimVar to disable this. - Include support for Neovim-only predefined and option variables. Temporary collateral damage - scope dictionaries match instead of keys in dictionary literals. closes: #16727 Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
290 lines
3.3 KiB
VimL
290 lines
3.3 KiB
VimL
" Vim :function command
|
|
" VIM_TEST_SETUP let g:vimsyn_folding = "f"
|
|
" VIM_TEST_SETUP setl fdc=2 fdl=999 fdm=syntax
|
|
|
|
|
|
" 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
|
|
|
|
|
|
" arguments
|
|
|
|
function Foo(a, b, c)
|
|
echo a:a a:b a:c
|
|
endfunction
|
|
|
|
function Foo(...)
|
|
echo a:000
|
|
echo a:0
|
|
echo a:1 a:2 a:3 a:4 a:5 a:6 a:7 a:8 a:9 a:10 a:11 a:12 a:13 a:14 a:15 a:16 a:17 a:18 a:19 a:20
|
|
endfunction
|
|
|
|
|
|
" comments
|
|
|
|
function Foo()
|
|
" Legacy-script comment
|
|
# 42 " comment
|
|
return 42
|
|
endfunction
|
|
|
|
|
|
" command modifiers
|
|
|
|
silent! function Foo()
|
|
endfunction
|
|
|
|
|
|
" leading command separator
|
|
|
|
echo "Foo" | function Foo()
|
|
endfunction
|
|
|
|
|
|
" delete function
|
|
|
|
delfunction Foo
|
|
delfunction foo.bar
|
|
delfunction! Foo
|
|
delfunction foo.bar
|
|
|
|
|
|
" fold-region ending
|
|
|
|
function Foo()
|
|
" endfunction
|
|
endfunction
|
|
|
|
function Foo()
|
|
echo "endfunction"
|
|
endfunction
|
|
|
|
function Foo()
|
|
let x =<< trim END
|
|
endfunction
|
|
END
|
|
endfunction
|
|
|
|
function Foo()
|
|
append
|
|
endfunction
|
|
.
|
|
endfunction
|
|
|
|
function Foo()
|
|
change
|
|
endfunction
|
|
.
|
|
|
|
endfunction
|
|
|
|
function Foo()
|
|
insert
|
|
endfunction
|
|
.
|
|
endfunction
|
|
|
|
:function Foo()
|
|
:endfunction
|
|
|
|
|
|
" Issue #15671
|
|
" No recognition of :fun or :def bodies commencing with empty lines if
|
|
" g:vimsyn_folding contains "f"
|
|
|
|
fun FA1()
|
|
|
|
|
|
return
|
|
endfun
|
|
|
|
fun FA2()
|
|
return
|
|
endfun
|
|
|
|
fun FB1() abort
|
|
|
|
return
|
|
endfun
|
|
|
|
fun FB2() abort
|
|
return
|
|
endfun
|
|
|
|
fun FC1(_)
|
|
|
|
return
|
|
endfun
|
|
|
|
fun FC2(_)
|
|
return
|
|
endfun
|
|
|
|
fun FD1(_) abort
|
|
|
|
return
|
|
endfun
|
|
|
|
fun FD2(_) abort
|
|
return
|
|
endfun
|
|
|