annotate .cms/lib/codemirror/mode/python/test.js @ 0:78edf6b517a0 draft

24.10
author Coffee CMS <info@coffee-cms.ru>
date Fri, 11 Oct 2024 22:40:23 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 (function() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 var mode = CodeMirror.getMode({indentUnit: 4},
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 {name: "python",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 version: 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 singleLineStringErrors: false});
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 // Error, because "foobarhello" is neither a known type or property, but
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 // property was expected (after "and"), and it should be in parentheses.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 MT("decoratorStartOfLine",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 "[meta @dec]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 "[keyword def] [def function]():",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 " [keyword pass]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 MT("decoratorIndented",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 "[keyword class] [def Foo]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 " [meta @dec]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 " [keyword def] [def function]():",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 " [keyword pass]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 MT("matmulWithSpace:", "[variable a] [operator @] [variable b]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 MT("matmulWithoutSpace:", "[variable a][operator @][variable b]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 MT("matmulSpaceBefore:", "[variable a] [operator @][variable b]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 var before_equal_sign = ["+", "-", "*", "/", "=", "!", ">", "<"];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 for (var i = 0; i < before_equal_sign.length; ++i) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 var c = before_equal_sign[i]
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 MT("before_equal_sign_" + c, "[variable a] [operator " + c + "=] [variable b]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 MT("fValidStringPrefix", "[string f'this is a]{[variable formatted]}[string string']");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 MT("fValidExpressionInFString", "[string f'expression ]{[number 100][operator *][number 5]}[string string']");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 MT("fInvalidFString", "[error f'this is wrong}]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 MT("fNestedFString", "[string f'expression ]{[number 100] [operator +] [string f'inner]{[number 5]}[string ']}[string string']");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 MT("uValidStringPrefix", "[string u'this is an unicode string']");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 MT("nestedString", "[string f']{[variable b][[ [string \"c\"] ]]}[string f'] [comment # oops]")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 MT("bracesInFString", "[string f']{[variable x] [operator +] {}}[string !']")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 MT("nestedFString", "[string f']{[variable b][[ [string f\"c\"] ]]}[string f'] [comment # oops]")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 MT("dontIndentTypeDecl",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 "[variable i]: [builtin int] [operator =] [number 32]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47 "[builtin print]([variable i])")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 MT("dedentElse",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 "[keyword if] [variable x]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51 " [variable foo]()",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 "[keyword elif] [variable y]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53 " [variable bar]()",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 "[keyword else]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 " [variable baz]()")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 MT("dedentElsePass",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 "[keyword if] [variable x]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 " [keyword pass]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60 "[keyword elif] [variable y]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 " [keyword pass]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 "[keyword else]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 " [keyword pass]")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 MT("dedentElseInFunction",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66 "[keyword def] [def foo]():",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 " [keyword if] [variable x]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 " [variable foo]()",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 " [keyword elif] [variable y]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 " [variable bar]()",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 " [keyword pass]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72 " [keyword else]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 " [variable baz]()")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 MT("dedentCase",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 "[keyword match] [variable x]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 " [keyword case] [variable y]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 " [variable foo]()")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 MT("dedentCasePass",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 "[keyword match] [variable x]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 " [keyword case] [variable y]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 " [keyword pass]")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84 MT("dedentCaseInFunction",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 "[keyword def] [def foo]():",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86 " [keyword match] [variable x]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87 " [keyword case] [variable y]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 " [variable foo]()")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 })();