mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04: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>
		
			
				
	
	
		
			291 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			291 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
 | |
| 
 |