mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	- Match variables after operators, including line continuations. - Match option variables without leading whitespace. - Explicitly match expression subscripts. - Match Vim9 variables in LHS of assignments and method calls. - Match option variables (&option) with a dedicated syntax group like environment variables. - Match list literals, fixes: #5830 - Match :{un}lockvar arguments. - Match registers and environment variables in :let unpack lists. - Match lambda expressions - Match Vim9 scope blocks - Match variables in :for subject - Highlight user variables with Normal - Improve this/super keyword matching, fixes: #15970 closes: #16476 Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
		
			
				
	
	
		
			198 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			198 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| vim9script
 | |
| 
 | |
| # Vim9 variable highlighting
 | |
| 
 | |
| # Declarations
 | |
| 
 | |
| var foo = expr
 | |
|  
 | |
| b:foo = expr
 | |
| g:foo = expr
 | |
| t:foo = expr
 | |
| w:foo = expr
 | |
| 
 | |
| v:foo = expr
 | |
| 
 | |
| $FOO = expr
 | |
|  
 | |
| var [foo, bar] = expr
 | |
| var [foo,
 | |
|       \ bar] = expr
 | |
| var [$foo, $bar] = expr
 | |
| var [$foo,
 | |
|       \ $bar] = expr
 | |
| 
 | |
| var [foo, bar; baz] = expr
 | |
| var [foo,
 | |
|       \ bar;
 | |
|       \ baz] = expr
 | |
| var [$foo, $bar; $baz] = expr
 | |
| var [$foo,
 | |
|       \ $bar;
 | |
|       \ $baz] = expr
 | |
| 
 | |
| var foo =<< END
 | |
| ...
 | |
| END
 | |
| var foo =<< trim END
 | |
| ...
 | |
| END
 | |
| var foo =<< eval END
 | |
| ...
 | |
| END
 | |
| var foo =<< trim eval END
 | |
| ...
 | |
| END
 | |
| var foo =<< eval trim END
 | |
| ...
 | |
| END
 | |
| 
 | |
| # Assignments
 | |
| 
 | |
| foo = expr
 | |
| 
 | |
| foo[0] = expr
 | |
| 
 | |
| foo[1:2] = expr
 | |
| foo[:2] = expr
 | |
| foo[1:] = expr
 | |
| foo[:] = expr
 | |
| 
 | |
| foo += expr
 | |
| foo -= expr
 | |
| foo *= expr
 | |
| foo /= expr
 | |
| foo %= expr
 | |
| foo ..= expr
 | |
| 
 | |
| b:foo = expr
 | |
| g:foo = expr
 | |
| t:foo = expr
 | |
| w:foo = expr
 | |
| 
 | |
| b:foo += expr
 | |
| g:foo += expr
 | |
| t:foo += expr
 | |
| w:foo += expr
 | |
| 
 | |
| b:foo -= expr
 | |
| g:foo -= expr
 | |
| t:foo -= expr
 | |
| w:foo -= expr
 | |
| 
 | |
| b:foo *= expr
 | |
| g:foo *= expr
 | |
| t:foo *= expr
 | |
| w:foo *= expr
 | |
| 
 | |
| b:foo /= expr
 | |
| g:foo /= expr
 | |
| t:foo /= expr
 | |
| w:foo /= expr
 | |
| 
 | |
| b:foo %= expr
 | |
| g:foo %= expr
 | |
| t:foo %= expr
 | |
| w:foo %= expr
 | |
| 
 | |
| b:foo ..= expr
 | |
| g:foo ..= expr
 | |
| t:foo ..= expr
 | |
| w:foo ..= expr
 | |
| 
 | |
| $FOO = expr
 | |
| $FOO ..= expr
 | |
|  
 | |
| @f = expr
 | |
| @f ..= expr
 | |
|  
 | |
| &foo = expr
 | |
|  
 | |
| &t_k1 = "\<Esc>[234;"
 | |
| 
 | |
| &foo ..= expr
 | |
| 
 | |
| &foo += expr
 | |
| &foo -= expr
 | |
| 
 | |
| &l:foo = expr
 | |
| 
 | |
| &l:foo ..= expr
 | |
| &l:foo += expr
 | |
| &l:foo -= expr
 | |
| 
 | |
| &g:foo = expr
 | |
| 
 | |
| &g:foo ..= expr
 | |
| &g:foo += expr
 | |
| &g:foo -= expr
 | |
|  
 | |
| [foo, bar] = expr
 | |
| [foo,
 | |
|       \ bar] = expr
 | |
| [v:foo, v:bar] = expr
 | |
| [v:foo,
 | |
|       \ v:bar] = expr
 | |
| [&foo, &bar] = expr
 | |
| [&foo,
 | |
|       \ &bar] = expr
 | |
| [$foo, $bar] = expr
 | |
| [$foo,
 | |
|       \  $bar] = expr
 | |
| [@a, @b] = expr
 | |
| [@a,
 | |
|       \  @a] = expr
 | |
| 
 | |
| [foo, bar] ..= expr
 | |
| [foo, bar] += expr
 | |
| [foo, bar] -= expr
 | |
| [foo, bar] *= expr
 | |
| [foo, bar] /= expr
 | |
| [foo, bar] %= expr
 | |
| 
 | |
| [foo, bar; baz] = expr
 | |
| [foo,
 | |
|       \ bar;
 | |
|       \ baz] = expr
 | |
| [v:foo, v:bar; v:baz] = expr
 | |
| [v:foo,
 | |
|       \ v:bar;
 | |
|       \ v:baz] = expr
 | |
| [$foo, $bar; $baz] = expr
 | |
| [$foo,
 | |
|       \ $bar;
 | |
|       \ $baz] = expr
 | |
| [&foo, &bar; &baz] = expr
 | |
| [&foo,
 | |
|       \ &bar;
 | |
|       \ &baz] = expr
 | |
| [@a, @b; @c] = expr
 | |
| [@a,
 | |
|       \ @b;
 | |
|       \ @c] = expr
 | |
| 
 | |
| foo =<< END
 | |
| ...
 | |
| END
 | |
| foo =<< trim END
 | |
| ...
 | |
| END
 | |
| foo =<< eval END
 | |
| ...
 | |
| END
 | |
| foo =<< trim eval END
 | |
| ...
 | |
| END
 | |
| foo =<< eval trim END
 | |
| ...
 | |
| END
 | |
| 
 | |
| # :for
 | |
| 
 | |
| for foo in expr
 | |
| endfor
 | |
| 
 | |
| for [foo, bar] in expr
 | |
| endfor
 | |
| 
 |