| 
									
										
										
										
											2018-01-21 10:33:32 -05:00
										 |  |  | // CodeMirror, copyright (c) by Marijn Haverbeke and others
 | 
					
						
							| 
									
										
										
										
											2018-10-07 12:02:07 +02:00
										 |  |  | // Distributed under an MIT license: https://codemirror.net/LICENSE
 | 
					
						
							| 
									
										
										
										
											2018-01-21 10:33:32 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | (function() { | 
					
						
							|  |  |  |   var mode = CodeMirror.getMode({indentUnit: 4}, | 
					
						
							|  |  |  |               {name: "python", | 
					
						
							|  |  |  |                version: 3, | 
					
						
							|  |  |  |                singleLineStringErrors: false}); | 
					
						
							|  |  |  |   function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // Error, because "foobarhello" is neither a known type or property, but
 | 
					
						
							|  |  |  |   // property was expected (after "and"), and it should be in parentheses.
 | 
					
						
							|  |  |  |   MT("decoratorStartOfLine", | 
					
						
							|  |  |  |      "[meta @dec]", | 
					
						
							|  |  |  |      "[keyword def] [def function]():", | 
					
						
							|  |  |  |      "    [keyword pass]"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   MT("decoratorIndented", | 
					
						
							|  |  |  |      "[keyword class] [def Foo]:", | 
					
						
							|  |  |  |      "    [meta @dec]", | 
					
						
							|  |  |  |      "    [keyword def] [def function]():", | 
					
						
							|  |  |  |      "        [keyword pass]"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   MT("matmulWithSpace:", "[variable a] [operator @] [variable b]"); | 
					
						
							|  |  |  |   MT("matmulWithoutSpace:", "[variable a][operator @][variable b]"); | 
					
						
							|  |  |  |   MT("matmulSpaceBefore:", "[variable a] [operator @][variable b]"); | 
					
						
							|  |  |  |   var before_equal_sign = ["+", "-", "*", "/", "=", "!", ">", "<"]; | 
					
						
							|  |  |  |   for (var i = 0; i < before_equal_sign.length; ++i) { | 
					
						
							|  |  |  |     var c = before_equal_sign[i] | 
					
						
							|  |  |  |     MT("before_equal_sign_" + c, "[variable a] [operator " + c + "=] [variable b]"); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-15 11:25:30 +02:00
										 |  |  |   MT("fValidStringPrefix", "[string f'this is a]{[variable formatted]}[string string']"); | 
					
						
							|  |  |  |   MT("fValidExpressioninFString", "[string f'expression ]{[number 100][operator *][number 5]}[string string']"); | 
					
						
							|  |  |  |   MT("fInvalidFString", "[error f'this is wrong}]"); | 
					
						
							|  |  |  |   MT("fNestedFString", "[string f'expression ]{[number 100] [operator +] [string f'inner]{[number 5]}[string ']}[string string']"); | 
					
						
							| 
									
										
										
										
											2018-01-21 10:33:32 -05:00
										 |  |  |   MT("uValidStringPrefix", "[string u'this is an unicode string']"); | 
					
						
							|  |  |  | })(); |