Files
macvim-mirror/runtime/syntax/testdir/input/vim_function_calls.vim
Doug Kearns cced80dcbb runtime(vim): Cleanup syntax tests
Improve formatting and naming consistency of the syntax tests.

closes: #17850

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-07-25 20:00:46 +02:00

278 lines
3.7 KiB
VimL
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
" Vim function calls
" VIM_TEST_SETUP hi link vimUserFunc Todo
call abs(42)
" Command/function distinction
" append browse call chdir confirm copy delete eval execute filter function
" insert join map match mode sort split substitute swapname type
let append = append(42)
call append(42)
" command
append
.
" bad command
append(42)
append (42)
let browse = browse(42)
call browse(42)
" command
browse(42)
browse (42)
let call = call(42)
call call(42)
" command
call(42)
call (42)
let chdir = chdir(42)
call chdir(42)
" command
chdir(42)
chdir (42)
let confirm = confirm(42)
call confirm(42)
" command
confirm(42)
confirm (42)
let copy = copy(42)
call copy(42)
" command
copy(42)
copy (42)
let delete = delete(42)
call delete(42)
" command
delete(42)
delete (42)
let eval = eval(42)
call eval(42)
" command
eval(42)
eval (42)
let execute = execute(42)
call execute(42)
" command
execute(42)
execute (42)
let filter = filter(42)
call filter(42)
" command
filter(42)
filter (42)
let function = function(42)
call function(42)
" command
function(42)
function (42)
let insert = insert(42)
call insert(42)
" command
insert
.
" bad command
insert(42)
insert (42)
let join = join(42)
call join(42)
" command
join(42)
join (42)
let map = map(42)
call map(42)
" command
map(42)
map (42)
let match = match(42)
call match(42)
" command
match(42)
match (42)
let sort = sort(42)
call sort(42)
" command
sort(42)
sort (42)
let split = split(42)
call split(42)
" command
split(42)
split (42)
let substitute = substitute(42)
call substitute(42)
" command
substitute(42)
substitute (42)
let swapname = swapname(42)
call swapname(42)
" command
swapname(42)
swapname (42)
let type = type(42)
call type(42)
" Vim9 command
" type(42)
" type (42)
let uniq = uniq(42)
call uniq(42)
" command
uniq(42)
uniq (42)
" Errors
let foo = foo(42)
call foo(42)
let if = if(42)
call if(42)
" command
if(42) | .. | endif
if (42) | .. | endif
let echo = echo(42)
call echo(42)
" command
echo(42)
echo (42)
" Expressions
let foo = abs(42)
echo abs(42)
echo (abs(42))
echo abs(42) + foo
echo foo + abs(42)
echo Foo()
echo (Foo())
echo Foo() + bar
echo bar + Foo()
" Scope modifiers and qualified names
let foo = s:foo(42)
call s:foo(42)
let foo = g:foo(42)
call g:foo(42)
let foo = b:foo(42)
call b:foo(42)
let foo = w:foo(42)
call w:foo(42)
let foo = t:foo(42)
call t:foo(42)
let foo = l:foo(42)
call l:foo(42)
let foo = a:foo(42)
call a:foo(42)
let foo = v:foo(42)
call v:foo(42)
let foo = module.foo(42)
call module.foo(42)
let foo = s:module.foo(42)
call module.foo(42)
let foo = g:module.foo(42)
call g:module.foo(42)
let foo = b:module.foo(42)
call b:module.foo(42)
let foo = w:module.foo(42)
call w:module.foo(42)
let foo = t:module.foo(42)
call t:module.foo(42)
let foo = l:module.foo(42)
call l:module.foo(42)
let foo = a:module.foo(42)
call a:module.foo(42)
let foo = v:module.foo(42)
call v:module.foo(42)
let foo = module#foo(42)
call module#foo(42)
let foo = g:module#foo(42)
call g:module#foo(42)
" Not builtin functions
call s:substitute()
call g:substitute()
call b:substitute()
call w:substitute()
call t:substitute()
call l:substitute()
call a:substitute()
call v:substitute()
call <SID>substitute()
call s:substitute.substitute()
call g:substitute.substitute()
call b:substitute.substitute()
call w:substitute.substitute()
call t:substitute.substitute()
call l:substitute.substitute()
call a:substitute.substitute()
call v:substitute.substitute()
call substitute#substitute()
call g:substitute#substitute()
" Chained function calls
call module.foo().bar()
call module.foo().substitute()
" Issue #17766 (valid function call highlighted as error)
call module[0].foo()
call module[0].substitute()