| 
									
										
										
										
											2024-08-16 21:07:15 +02:00
										 |  |  | " Vim :let heredoc command | 
					
						
							|  |  |  | " VIM_TEST_SETUP let g:vimsyn_folding = "h" | 
					
						
							|  |  |  | " VIM_TEST_SETUP setl fdc=2 fdl=99 fdm=syntax | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let foo =<< END | 
					
						
							|  |  |  | line1 | 
					
						
							|  |  |  | line2 | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let foo =<< END | 
					
						
							|  |  |  | line1 | 
					
						
							|  |  |  | line2 | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-23 18:01:35 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | " trim | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 21:07:15 +02:00
										 |  |  | let foo =<< trim END | 
					
						
							|  |  |  |   line1 | 
					
						
							|  |  |  |   line2 | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let foo =<< trim END | 
					
						
							|  |  |  |     line1 | 
					
						
							|  |  |  |     line2 | 
					
						
							|  |  |  |   END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " interpolation | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let foo =<< eval END | 
					
						
							|  |  |  | line{1 + 0} | 
					
						
							|  |  |  | line{1 + 1} | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let foo =<< eval END | 
					
						
							|  |  |  | line{1 + 0} | 
					
						
							|  |  |  | line{1 + 1} | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let foo =<< trim eval END | 
					
						
							|  |  |  |   line{1 + 0} | 
					
						
							|  |  |  |   line{1 + 1} | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let foo =<< trim eval END | 
					
						
							|  |  |  |     line{1 + 0} | 
					
						
							|  |  |  |     line{1 + 1} | 
					
						
							|  |  |  |   END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " no interpolation (escaped { and }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let foo =<< eval END | 
					
						
							|  |  |  | line{{1 + 0}} | 
					
						
							|  |  |  | line{{1 + 1}} | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let foo =<< eval END | 
					
						
							|  |  |  | line{{1 + 0}} | 
					
						
							|  |  |  | line{{1 + 1}} | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let foo =<< trim eval END | 
					
						
							|  |  |  |   line{{1 + 0}} | 
					
						
							|  |  |  |   line{{1 + 1}} | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let foo =<< trim eval END | 
					
						
							|  |  |  |     line{{1 + 0}} | 
					
						
							|  |  |  |     line{{1 + 1}} | 
					
						
							|  |  |  |   END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " no interpolation | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let foo =<< END | 
					
						
							|  |  |  | line{1 + 0} | 
					
						
							|  |  |  | line{1 + 1} | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let foo =<< END | 
					
						
							|  |  |  | line{1 + 0} | 
					
						
							|  |  |  | line{1 + 1} | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let foo =<< trim END | 
					
						
							|  |  |  |   line{1 + 0} | 
					
						
							|  |  |  |   line{1 + 1} | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let foo =<< trim END | 
					
						
							|  |  |  |     line{1 + 0} | 
					
						
							|  |  |  |     line{1 + 1} | 
					
						
							|  |  |  |   END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " end marker must not be followed by whitespace | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " assert_equal(foo, ["END "]) | 
					
						
							|  |  |  | let foo =<< END | 
					
						
							|  |  |  | END  | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " assert_equal(foo, [" END "]) | 
					
						
							|  |  |  | let foo =<< END | 
					
						
							|  |  |  |  END  | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " assert_equal(foo, ["END "]) | 
					
						
							|  |  |  | let foo =<< trim END | 
					
						
							|  |  |  |   END  | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " assert_equal(foo, ["END "]) | 
					
						
							|  |  |  |   let foo =<< trim END | 
					
						
							|  |  |  |     END  | 
					
						
							|  |  |  |   END | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-23 18:01:35 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | " end marker must be vertically aligned with :let (if preceded by whitespace) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " assert_equal(foo, ["END"]) | 
					
						
							|  |  |  | let foo =<< trim END | 
					
						
							|  |  |  |   END | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " assert_equal(foo, ["END"]) | 
					
						
							|  |  |  |   let foo =<< trim END | 
					
						
							|  |  |  |     END | 
					
						
							|  |  |  |   END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " assert_equal(foo, ["END "]) | 
					
						
							|  |  |  | let foo =<< trim END | 
					
						
							|  |  |  | END  | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " assert_equal(foo, ["END"]) | 
					
						
							|  |  |  |   let foo =<< trim END | 
					
						
							|  |  |  |     END | 
					
						
							|  |  |  |   END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " assert_equal(foo, ["END "]) | 
					
						
							|  |  |  |   let foo =<< trim END | 
					
						
							|  |  |  |     END  | 
					
						
							|  |  |  |   END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " assert_equal(foo, ["END"]) | 
					
						
							|  |  |  |   let foo =<< trim END | 
					
						
							|  |  |  |      END | 
					
						
							|  |  |  |   END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " assert_equal(foo, ["END "]) | 
					
						
							|  |  |  |   let foo =<< trim END | 
					
						
							|  |  |  |      END  | 
					
						
							|  |  |  |   END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " assert_equal(foo, ["END "]) | 
					
						
							|  |  |  |   let foo =<< trim END | 
					
						
							|  |  |  | END  | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " assert_equal(foo, ["END"]) | 
					
						
							|  |  |  |   let foo =<< trim END | 
					
						
							|  |  |  |  END | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " assert_equal(foo, ["END"]) | 
					
						
							|  |  |  |   let foo =<< trim END | 
					
						
							|  |  |  |    END | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " end markers | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let foo =<< !@#$%^&*()_+ | 
					
						
							|  |  |  | line1 | 
					
						
							|  |  |  | line2 | 
					
						
							|  |  |  | !@#$%^&*()_+ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let foo =<< 0!@#$%^&*()_+ | 
					
						
							|  |  |  | line1 | 
					
						
							|  |  |  | line2 | 
					
						
							|  |  |  | 0!@#$%^&*()_+ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let foo =<< A!@#$%^&*()_+ | 
					
						
							|  |  |  | line1 | 
					
						
							|  |  |  | line2 | 
					
						
							|  |  |  | A!@#$%^&*()_+ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " error - leading lowercase character | 
					
						
							|  |  |  | let foo =<< a!@#$%^&*()_+ | 
					
						
							|  |  |  | line1 | 
					
						
							|  |  |  | line2 | 
					
						
							|  |  |  | a!@#$%^&*()_+ | 
					
						
							|  |  |  | 
 |