| 
									
										
										
										
											2024-01-28 18:57:23 +01:00
										 |  |  | " String | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo 'It''s a string' | 
					
						
							|  |  |  | echo 'tab: \t, new line: \n, backslash: \\' | 
					
						
							|  |  |  | echo "tab: \t, new line: \n, backslash: \\" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-02 07:44:26 +11:00
										 |  |  | " String escape sequences | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "\316 - \31 - \3 - \x1f - \xf - \X1F - \XF - \u02a4 - \U000002a4 - \b - \e - \f - \n - \r - \t - \\ - \" - \<C-W>" | 
					
						
							|  |  |  | echo '\316 \31 \3 \x1f \xf \X1F \XF \u02a4 \U000002a4 \b \e \f \n \r \t \\ \" \<C-W>' | 
					
						
							|  |  |  | echo "\3160 - \x1f0 - \X1F0 - \u02a40 - \U000002a40" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $"\316 - \31 - \3 - \x1f - \xf - \X1F - \XF - \u02a4 - \U000002a4 - \b - \e - \f - \n - \r - \t - \\ - \" - \<C-W>" | 
					
						
							|  |  |  | echo $'\316 \31 \3 \x1f \xf \X1F \XF \u02a4 \U000002a4 \b \e \f \n \r \t \\ \" \<C-W>' | 
					
						
							|  |  |  | echo $"\3160 - \x1f0 - \X1F0 - \u02a40 - \U000002a40" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "\<C-a>" | 
					
						
							|  |  |  | echo "\<*C-a>" | 
					
						
							|  |  |  | echo "\<C->>" | 
					
						
							|  |  |  | echo "\<*C->>" | 
					
						
							|  |  |  | echo "\<C->>>" | 
					
						
							|  |  |  | echo "\<*C->>>" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-10 20:02:17 +01:00
										 |  |  | echo '''' | 
					
						
							|  |  |  | echo '''foo' | 
					
						
							|  |  |  | echo 'foo''' | 
					
						
							|  |  |  | echo 'foo''bar' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Unreported issue (incorrectly matches as vimString vimMark vimOper NONE) | 
					
						
							|  |  |  | " https://github.com/tpope/vim-unimpaired/blob/6d44a6dc2ec34607c41ec78acf81657248580bf1/plugin/unimpaired.vim#L232 | 
					
						
							|  |  |  | let cmd = 'put!=repeat(nr2char(10), v:count1)|silent '']+' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-28 18:57:23 +01:00
										 |  |  | " String interpolation | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo 'Don''t highlight interpolation: {{ {1 + 2} }}' | 
					
						
							|  |  |  | echo "Don't highlight interpolation: {{ {1 + 2} }}" | 
					
						
							|  |  |  | echo $'Highlight interpolation:\t{{ { string({'foo': 'bar'}) } }}' | 
					
						
							|  |  |  | echo $'Highlight interpolation:\t{{ { $'nested: {{ {1 + 2} }}' } }}' | 
					
						
							|  |  |  | echo $"Highlight interpolation:\t{{ { string({"foo": "bar"}) } }}" | 
					
						
							|  |  |  | echo $"Highlight interpolation:\t{{ { $"nested: {{ {1 + 2} }}" } }}" | 
					
						
							| 
									
										
										
										
											2024-03-12 07:40:58 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-10 20:02:17 +01:00
										 |  |  | echo $'''' | 
					
						
							|  |  |  | echo $'''foo' | 
					
						
							|  |  |  | echo $'foo''' | 
					
						
							|  |  |  | echo $'foo''bar' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-12 07:40:58 +11:00
										 |  |  | " Number | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Hexadecimal | 
					
						
							|  |  |  | echo  0xFF | 
					
						
							|  |  |  | echo  0XFF | 
					
						
							|  |  |  | echo -0xFF | 
					
						
							|  |  |  | echo -0XFF | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Decimal | 
					
						
							|  |  |  | echo  255 | 
					
						
							|  |  |  | echo -255 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Octal | 
					
						
							|  |  |  | echo  0377 | 
					
						
							|  |  |  | echo  0o377 | 
					
						
							|  |  |  | echo  0O377 | 
					
						
							|  |  |  | echo -0377 | 
					
						
							|  |  |  | echo -0o377 | 
					
						
							|  |  |  | echo -0O377 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Binary | 
					
						
							|  |  |  | echo  0b11111111 | 
					
						
							|  |  |  | echo  0B11111111 | 
					
						
							|  |  |  | echo -0b11111111 | 
					
						
							|  |  |  | echo -0B11111111 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Float | 
					
						
							| 
									
										
										
										
											2024-03-28 20:06:03 +11:00
										 |  |  | echo 123.456 | 
					
						
							|  |  |  | echo +0.0001 | 
					
						
							|  |  |  | echo 55.0 | 
					
						
							|  |  |  | echo -0.123 | 
					
						
							|  |  |  | echo 1.234e03 | 
					
						
							|  |  |  | echo 1.0E-6 | 
					
						
							|  |  |  | echo -3.1416e+88 | 
					
						
							| 
									
										
										
										
											2024-03-12 07:40:58 +11:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Blob | 
					
						
							| 
									
										
										
										
											2024-03-28 20:06:03 +11:00
										 |  |  | echo 0z | 
					
						
							| 
									
										
										
										
											2024-03-12 07:40:58 +11:00
										 |  |  | echo 0zFF00ED015DAF | 
					
						
							|  |  |  | echo 0zFF00.ED01.5DAF | 
					
						
							|  |  |  | echo 0zFF.00.ED.01.5D.AF | 
					
						
							| 
									
										
										
										
											2025-01-08 18:20:47 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-10 22:00:27 +01:00
										 |  |  | " List | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo [] | 
					
						
							|  |  |  | echo [42] | 
					
						
							|  |  |  | echo [[11, 12], [21, 22], [31, 32]] | 
					
						
							|  |  |  | echo [1, | 
					
						
							|  |  |  |       \ 2, | 
					
						
							|  |  |  |       \ 3, | 
					
						
							|  |  |  |       \ 4 | 
					
						
							|  |  |  |       \] | 
					
						
							|  |  |  | echo [1, 'two', 1 + 2, "fo" .. "ur"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Issue #5830 (Incorrect syntax highlighting in Vim script when omitting space in list of string) | 
					
						
							|  |  |  | let l = ['a','b','c'] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-12 20:44:17 +01:00
										 |  |  | " Register | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo @"  | 
					
						
							|  |  |  | echo @0 @1 @2 @3 @4 @5 @6 @7 @8 @9 | 
					
						
							|  |  |  | echo @- | 
					
						
							|  |  |  | echo @a @b @c @d @e @f @g @h @i @j @k @l @m @n @o @p @q @r @s @t @u @v @w @x @y @z | 
					
						
							|  |  |  | echo @A @B @C @D @E @F @G @H @I @J @K @L @M @N @O @P @Q @R @S @T @U @V @W @X @Y @Z | 
					
						
							|  |  |  | echo @: @. @% @# @= @* @+ @~ @_ @/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-19 14:02:06 +01:00
										 |  |  | " Operators | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-20 21:53:01 +01:00
										 |  |  | " Ternary | 
					
						
							|  |  |  | echo expr ? expr : expr | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo lnum == 1 ? "top" : lnum | 
					
						
							|  |  |  | echo lnum == 1 ? "top" : lnum == 1000 ? "last" : lnum | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo lnum == 1 | 
					
						
							|  |  |  |       \	? "top" | 
					
						
							|  |  |  |       \	: lnum == 1000 | 
					
						
							|  |  |  |       \		? "last" | 
					
						
							|  |  |  |       \		: lnum | 
					
						
							|  |  |  | echo lnum == 1 ? | 
					
						
							|  |  |  |       \	"top" : | 
					
						
							|  |  |  |       \	lnum == 1000 ? | 
					
						
							|  |  |  |       \		"last" : | 
					
						
							|  |  |  |       \		lnum | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo 1 ? 1 : 0 | 
					
						
							|  |  |  | echo "foo" ? "foo" : "bar" | 
					
						
							|  |  |  | echo foo ? foo : bar | 
					
						
							|  |  |  | echo g:foo ? g:foo : g:bar | 
					
						
							|  |  |  | echo $FOO ? $FOO : $BAR | 
					
						
							|  |  |  | echo True() ? True() : False() | 
					
						
							|  |  |  | echo @a ? @a : @b | 
					
						
							|  |  |  | echo (1) ? (1) : (0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Falsy | 
					
						
							|  |  |  | echo expr ?? expr | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo theList ?? 'list is empty' | 
					
						
							|  |  |  | echo GetName() ?? 'unknown' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo theList | 
					
						
							|  |  |  |       \ ?? 'list is empty' | 
					
						
							|  |  |  | echo theList ?? | 
					
						
							|  |  |  |       \ 'list is empty' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo 1 ?? 1 | 
					
						
							|  |  |  | echo "foo" ?? "foo" | 
					
						
							|  |  |  | echo foo ?? foo | 
					
						
							|  |  |  | echo g:foo ?? g:foo | 
					
						
							|  |  |  | echo $FOO ?? $FOO | 
					
						
							|  |  |  | echo True() ?? True() | 
					
						
							|  |  |  | echo @a ?? @a | 
					
						
							|  |  |  | echo (1) ?? (1) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-19 14:02:06 +01:00
										 |  |  | " Comparison - using 'ignorcase' | 
					
						
							|  |  |  | echo expr ==     expr | 
					
						
							|  |  |  | echo expr !=     expr | 
					
						
							|  |  |  | echo expr >      expr | 
					
						
							|  |  |  | echo expr >=     expr | 
					
						
							|  |  |  | echo expr <      expr | 
					
						
							|  |  |  | echo expr <=     expr | 
					
						
							|  |  |  | echo expr =~     expr | 
					
						
							|  |  |  | echo expr !~     expr | 
					
						
							|  |  |  | echo expr is     expr | 
					
						
							|  |  |  | echo expr isnot  expr | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Comparison - match case | 
					
						
							|  |  |  | echo expr ==#    expr | 
					
						
							|  |  |  | echo expr !=#    expr | 
					
						
							|  |  |  | echo expr >#     expr | 
					
						
							|  |  |  | echo expr >=#    expr | 
					
						
							|  |  |  | echo expr <#     expr | 
					
						
							|  |  |  | echo expr <=#    expr | 
					
						
							|  |  |  | echo expr =~#    expr | 
					
						
							|  |  |  | echo expr !~#    expr | 
					
						
							|  |  |  | echo expr is#    expr | 
					
						
							|  |  |  | echo expr isnot# expr | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Comparison - ignore case | 
					
						
							|  |  |  | echo expr ==?    expr | 
					
						
							|  |  |  | echo expr !=?    expr | 
					
						
							|  |  |  | echo expr >?     expr | 
					
						
							|  |  |  | echo expr >=?    expr | 
					
						
							|  |  |  | echo expr <?     expr | 
					
						
							|  |  |  | echo expr <=?    expr | 
					
						
							|  |  |  | echo expr =~?    expr | 
					
						
							|  |  |  | echo expr !~?    expr | 
					
						
							|  |  |  | echo expr is?    expr | 
					
						
							|  |  |  | echo expr isnot? expr | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-10 22:00:27 +01:00
										 |  |  | " Unreported issue ("is" incorrectly matches as "echo vimNumber *vimCommand* vimNumber") | 
					
						
							| 
									
										
										
										
											2025-01-19 14:02:06 +01:00
										 |  |  | echo 42 is 42 | 
					
						
							| 
									
										
										
										
											2025-01-08 18:20:47 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-10 22:00:27 +01:00
										 |  |  | " Line continuation | 
					
						
							|  |  |  | let foo = foo + | 
					
						
							|  |  |  |       \ | 
					
						
							|  |  |  |       "\ comment | 
					
						
							|  |  |  |       \ | 
					
						
							|  |  |  |       "\ comment | 
					
						
							|  |  |  |       \ bar + | 
					
						
							|  |  |  |       \ "baz" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let foo = foo + | 
					
						
							|  |  |  |       "\ comment | 
					
						
							|  |  |  |       \ | 
					
						
							|  |  |  |       "\ comment | 
					
						
							|  |  |  |       \ | 
					
						
							|  |  |  |       \ bar + | 
					
						
							|  |  |  |       \ "baz" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-12 20:44:17 +01:00
										 |  |  | " Function calls | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | call Foo(v:true, v:false, v:null) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-20 21:53:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-08 18:20:47 +01:00
										 |  |  | " Issue #16221 (vimString becomes vimVar when preceded by !) | 
					
						
							|  |  |  | let bar = !'g:bar'->exists() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-20 21:53:01 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Issue #14423 (vim.vim: Opt out of vimSearch*) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ?truthy | 
					
						
							|  |  |  | let truthy = 0 | 
					
						
							|  |  |  | \   ? (0 | 
					
						
							|  |  |  | \   ) | 
					
						
							|  |  |  | \   : (1 | 
					
						
							|  |  |  | \   ) | 
					
						
							|  |  |  | echo truthy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function Foo() | 
					
						
							|  |  |  |   ?truthy | 
					
						
							|  |  |  |   let truthy = 0 | 
					
						
							|  |  |  |   \   ? (0 | 
					
						
							|  |  |  |   \   ) | 
					
						
							|  |  |  |   \   : (1 | 
					
						
							|  |  |  |   \   ) | 
					
						
							|  |  |  |   echo truthy | 
					
						
							|  |  |  | endfunction | 
					
						
							|  |  |  | 
 |