annotate .cms/lib/codemirror/mode/clike/test.js @ 1:1d486627aa1e draft default tip

24.10
author Coffee CMS <info@coffee-cms.ru>
date Sat, 12 Oct 2024 02:51:39 +0000
parents 78edf6b517a0
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: 2}, "text/x-c");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 MT("indent",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 "[type void] [def foo]([type void*] [variable a], [type int] [variable b]) {",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 " [type int] [variable c] [operator =] [variable b] [operator +]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 " [number 1];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 " [keyword return] [operator *][variable a];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 "}");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 MT("indent_switch",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 "[keyword switch] ([variable x]) {",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 " [keyword case] [number 10]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 " [keyword return] [number 20];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 " [keyword default]:",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 " [variable printf]([string \"foo %c\"], [variable x]);",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 "}");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 MT("def",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 "[type void] [def foo]() {}",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 "[keyword struct] [def bar]{}",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 "[keyword enum] [def zot]{}",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 "[keyword union] [def ugh]{}",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 "[type int] [type *][def baz]() {}");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 MT("def_new_line",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 "::[variable std]::[variable SomeTerribleType][operator <][variable T][operator >]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 "[def SomeLongMethodNameThatDoesntFitIntoOneLine]([keyword const] [variable MyType][operator &] [variable param]) {}")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 MT("double_block",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 "[keyword for] (;;)",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 " [keyword for] (;;)",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 " [variable x][operator ++];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 "[keyword return];");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 MT("preprocessor",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 "[meta #define FOO 3]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 "[type int] [variable foo];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 "[meta #define BAR\\]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 "[meta 4]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 "[type unsigned] [type int] [variable bar] [operator =] [number 8];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 "[meta #include <baz> ][comment // comment]")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 MT("c_underscores",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 "[builtin __FOO];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 "[builtin _Complex];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51 "[builtin __aName];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 "[variable _aName];");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 MT("c_types",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 "[type int];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 "[type long];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 "[type char];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 "[type short];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 "[type double];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60 "[type float];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 "[type unsigned];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 "[type signed];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 "[type void];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64 "[type bool];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 "[type foo_t];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66 "[variable foo_T];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 "[variable _t];");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 var mode_cpp = CodeMirror.getMode({indentUnit: 2}, "text/x-c++src");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 function MTCPP(name) { test.mode(name, mode_cpp, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72 MTCPP("cpp14_literal",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 "[number 10'000];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 "[number 0b10'000];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 "[number 0x10'000];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 "[string '100000'];");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 MTCPP("ctor_dtor",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 "[def Foo::Foo]() {}",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 "[def Foo::~Foo]() {}");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 MTCPP("cpp_underscores",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 "[builtin __FOO];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84 "[builtin _Complex];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 "[builtin __aName];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86 "[variable _aName];");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 var mode_objc = CodeMirror.getMode({indentUnit: 2}, "text/x-objectivec");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 function MTOBJC(name) { test.mode(name, mode_objc, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91 MTOBJC("objc_underscores",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 "[builtin __FOO];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93 "[builtin _Complex];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94 "[builtin __aName];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 "[variable _aName];");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97 MTOBJC("objc_interface",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 "[keyword @interface] [def foo] {",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99 " [type int] [variable bar];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100 "}",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101 "[keyword @property] ([keyword atomic], [keyword nullable]) [variable NSString][operator *] [variable a];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102 "[keyword @property] ([keyword nonatomic], [keyword assign]) [type int] [variable b];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103 "[operator -]([type instancetype])[variable initWithFoo]:([type int])[variable a] " +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 "[builtin NS_DESIGNATED_INITIALIZER];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105 "[keyword @end]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107 MTOBJC("objc_implementation",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108 "[keyword @implementation] [def foo] {",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109 " [type int] [variable bar];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110 "}",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111 "[keyword @property] ([keyword readwrite]) [type SEL] [variable a];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112 "[operator -]([type instancetype])[variable initWithFoo]:([type int])[variable a] {",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 " [keyword if](([keyword self] [operator =] [[[keyword super] [variable init] ]])) {}",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114 " [keyword return] [keyword self];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115 "}",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116 "[keyword @end]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118 MTOBJC("objc_types",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119 "[type int];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120 "[type foo_t];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 "[variable foo_T];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122 "[type id];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123 "[type SEL];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124 "[type instancetype];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125 "[type Class];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126 "[type Protocol];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127 "[type BOOL];"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
129
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
130 var mode_scala = CodeMirror.getMode({indentUnit: 2}, "text/x-scala");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
131 function MTSCALA(name) { test.mode("scala_" + name, mode_scala, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
132 MTSCALA("nested_comments",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
133 "[comment /*]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
134 "[comment But wait /* this is a nested comment */ for real]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
135 "[comment /**** let * me * show * you ****/]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
136 "[comment ///// let / me / show / you /////]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
137 "[comment */]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
138
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
139 var mode_java = CodeMirror.getMode({indentUnit: 2}, "text/x-java");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
140 function MTJAVA(name) { test.mode("java_" + name, mode_java, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
141 MTJAVA("types",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
142 "[type byte];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
143 "[type short];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
144 "[type int];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
145 "[type long];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
146 "[type float];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
147 "[type double];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
148 "[type boolean];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
149 "[type char];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
150 "[type void];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
151 "[type Boolean];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
152 "[type Byte];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
153 "[type Character];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
154 "[type Double];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
155 "[type Float];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
156 "[type Integer];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
157 "[type Long];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
158 "[type Number];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
159 "[type Object];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
160 "[type Short];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
161 "[type String];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
162 "[type StringBuffer];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
163 "[type StringBuilder];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
164 "[type Void];");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
165
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
166 MTJAVA("indent",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
167 "[keyword public] [keyword class] [def A] [keyword extends] [variable B]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
168 "{",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
169 " [variable c]()")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
170 })();