annotate .cms/lib/codemirror/mode/soy/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}, "soy");
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 // Test of small keywords and words containing them.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 MT('keywords-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 '[keyword {] [keyword as] worrying [keyword and] notorious [keyword as]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 ' the Fandor[operator -]alias assassin, [keyword or]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 ' Corcand cannot fit [keyword in] [keyword }]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 MT('let-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 '[keyword {template] [def .name][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 ' [keyword {let] [def $name]: [string "world"][keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 ' [tag&bracket <][tag h1][tag&bracket >]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 ' Hello, [keyword {][variable-2 $name][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 ' [tag&bracket </][tag h1][tag&bracket >]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 '[keyword {/template}]',
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('function-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 '[keyword {] [callee&variable css]([string "MyClass"])[keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 '[tag&bracket <][tag input] [attribute value]=[string "]' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 '[keyword {] [callee&variable index]([variable-2&error $list])[keyword }]' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 '[string "][tag&bracket />]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 MT('soy-element-composition-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 '[keyword <{][callee&variable foo]()[keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 '[keyword ></>]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 MT('soy-element-composition-attribute-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 '[keyword <{][callee&variable foo]()[keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 '[attribute class]=[string "Foo"]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 '[keyword ></>]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 MT('namespace-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 '[keyword {namespace] [variable namespace][keyword }]')
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 MT('namespace-with-attribute-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 '[keyword {namespace] [variable my.namespace.templates] ' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 '[attribute requirecss]=[string "my.namespace"][keyword }]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 MT('operators-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 '[keyword {] [atom 1] [operator ==] [atom 1] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47 '[keyword {] [atom 1] [operator !=] [atom 2] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 '[keyword {] [atom 2] [operator +] [atom 2] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 '[keyword {] [atom 2] [operator -] [atom 2] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 '[keyword {] [atom 2] [operator *] [atom 2] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51 '[keyword {] [atom 2] [operator /] [atom 2] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 '[keyword {] [atom 2] [operator %] [atom 2] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53 '[keyword {] [atom 2] [operator <=] [atom 2] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 '[keyword {] [atom 2] [operator >=] [atom 2] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 '[keyword {] [atom 3] [operator >] [atom 2] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 '[keyword {] [atom 2] [operator >] [atom 3] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 '[keyword {] [atom null] [operator ?:] [string ""] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 '[keyword {] [variable-2&error $variable] [operator |] safeHtml [keyword }]')
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60 MT('primitive-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 '[keyword {] [atom true] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 '[keyword {] [atom false] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 '[keyword {] truethy [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64 '[keyword {] falsey [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 '[keyword {] [atom 42] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66 '[keyword {] [atom .42] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 '[keyword {] [atom 0.42] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 '[keyword {] [atom -0.42] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 '[keyword {] [atom -.2] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 '[keyword {] [atom 6.03e23] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 '[keyword {] [atom -0.03e0] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72 '[keyword {] [atom 0x1F] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 '[keyword {] [atom 0x1F00BBEA] [keyword }]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 MT('param-type-record',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 '[keyword {@param] [def record]: [[[property foo]: [type bool], [property bar]: [type int] ]][keyword }]'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 MT('param-type-map',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 '[keyword {@param] [def unknown]: [type map]<[type string], [type bool]>[keyword }]'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 MT('param-type-list',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84 '[keyword {@param] [def list]: [type list]<[type ?]>[keyword }]'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87 MT('param-type-any',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 '[keyword {@param] [def unknown]: [type ?][keyword }]'
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91 MT('param-type-nested',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 '[keyword {@param] [def a]: ' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93 '[type list]<[[[property a]: [type int], ' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94 '[property b]: [type map]<[type string], ' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 '[type bool]>]]>][keyword }]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97 MT('undefined-var',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 '[keyword {][variable-2&error $var]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100 MT('param-scope-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101 '[keyword {template] [def .a][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102 ' [keyword {@param] [def x]: [type string][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103 ' [keyword {][variable-2 $x][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 '[keyword {/template}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105 '',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106 '[keyword {template] [def .b][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107 ' [keyword {][variable-2&error $x][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108 '[keyword {/template}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111 MT('if-variable-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112 '[keyword {if] [variable-2&error $showThing][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 ' Yo!',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114 '[keyword {/if}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117 MT('defined-if-variable-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118 '[keyword {template] [def .foo][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119 ' [keyword {@param?] [def showThing]: [type bool][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120 ' [keyword {if] [variable-2 $showThing][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 ' Yo!',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122 ' [keyword {/if}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123 '[keyword {/template}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126 MT('template-calls-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127 '[keyword {call] [variable-2 .foo][keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128 '[keyword {call] [variable foo][keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
129 '[keyword {call] [variable foo][keyword }] [keyword {/call}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
130 '[keyword {call] [variable first1.second.third_3][keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
131 '[keyword {call] [variable first1.second.third_3] [keyword }] [keyword {/call}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
132 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
133
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
134 MT('foreach-scope-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
135 '[keyword {@param] [def bar]: [type string][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
136 '[keyword {foreach] [def $foo] [keyword in] [variable-2&error $foos][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
137 ' [keyword {][variable-2 $foo][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
138 '[keyword {/foreach}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
139 '[keyword {][variable-2&error $foo][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
140 '[keyword {][variable-2 $bar][keyword }]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
141
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
142 MT('foreach-ifempty-indent-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
143 '[keyword {foreach] [def $foo] [keyword in] [variable-2&error $foos][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
144 ' something',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
145 '[keyword {ifempty}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
146 ' nothing',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
147 '[keyword {/foreach}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
148 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
149
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
150 MT('foreach-index',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
151 '[keyword {foreach] [def $foo],[def $index] [keyword in] [[]] [keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
152 ' [keyword {][variable-2 $foo][keyword }] [keyword {][variable-2 $index][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
153 '[keyword {/foreach}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
154
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
155 MT('nested-kind-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
156 '[keyword {template] [def .foo] [attribute kind]=[string "html"][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
157 ' [tag&bracket <][tag div][tag&bracket >]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
158 ' [keyword {call] [variable-2 .bar][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
159 ' [keyword {param] [property propertyName] [attribute kind]=[string "js"][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
160 ' [keyword var] [def bar] [operator =] [number 5];',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
161 ' [keyword {/param}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
162 ' [keyword {/call}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
163 ' [tag&bracket </][tag div][tag&bracket >]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
164 '[keyword {/template}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
165 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
166
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
167 MT('tag-starting-with-function-call-is-not-a-keyword',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
168 '[keyword {][callee&variable index]([variable-2&error $foo])[keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
169 '[keyword {css] [string "some-class"][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
170 '[keyword {][callee&variable css]([string "some-class"])[keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
171 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
172
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
173 MT('allow-missing-colon-in-@param',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
174 '[keyword {template] [def .foo][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
175 ' [keyword {@param] [def showThing] [type bool][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
176 ' [keyword {if] [variable-2 $showThing][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
177 ' Yo!',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
178 ' [keyword {/if}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
179 '[keyword {/template}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
180 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
181
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
182 MT('param-type-and-default-value',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
183 '[keyword {template] [def .foo][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
184 ' [keyword {@param] [def bar]: [type bool] = [atom true][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
185 '[keyword {/template}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
186 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
187
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
188 MT('attribute-type',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
189 '[keyword {template] [def .foo][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
190 ' [keyword {@attribute] [def bar]: [type string][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
191 '[keyword {/template}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
192 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
193
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
194 MT('attribute-type-optional',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
195 '[keyword {template] [def .foo][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
196 ' [keyword {@attribute] [def bar]: [type string][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
197 '[keyword {/template}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
198 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
199
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
200 MT('attribute-type-all',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
201 '[keyword {template] [def .foo][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
202 ' [keyword {@attribute] [type *][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
203 '[keyword {/template}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
204 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
205
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
206 MT('state-variable-reference',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
207 '[keyword {template] [def .foo][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
208 ' [keyword {@param] [def bar]:= [atom true][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
209 ' [keyword {@state] [def foobar]:= [variable-2 $bar][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
210 '[keyword {/template}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
211 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
212
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
213 MT('param-type-template',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
214 '[keyword {template] [def .foo][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
215 ' [keyword {@param] [def renderer]: ([def s]:[type string])=>[type html][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
216 ' [keyword {call] [variable-2 $renderer] [keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
217 '[keyword {/template}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
218 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
219
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
220 MT('single-quote-strings',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
221 '[keyword {][string "foo"] [string \'bar\'][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
222 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
223
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
224 MT('literal-comments',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
225 '[keyword {literal}]/* comment */ // comment[keyword {/literal}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
226
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
227 MT('highlight-command-at-eol',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
228 '[keyword {msg]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
229 ' [keyword }]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
230
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
231 MT('switch-indent-test',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
232 '[keyword {let] [def $marbles]: [atom 5] [keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
233 '[keyword {switch] [variable-2 $marbles][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
234 ' [keyword {case] [atom 0][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
235 ' No marbles',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
236 ' [keyword {default}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
237 ' At least 1 marble',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
238 '[keyword {/switch}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
239 '');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
240
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
241 MT('if-elseif-else-indent',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
242 '[keyword {if] [atom true][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
243 ' [keyword {let] [def $a]: [atom 5] [keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
244 '[keyword {elseif] [atom false][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
245 ' [keyword {let] [def $bar]: [atom 5] [keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
246 '[keyword {else}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
247 ' [keyword {let] [def $bar]: [atom 5] [keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
248 '[keyword {/if}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
249
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
250 MT('msg-fallbackmsg-indent',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
251 '[keyword {msg] [attribute desc]=[string "A message"][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
252 ' A message',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
253 '[keyword {fallbackmsg] [attribute desc]=[string "A message"][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
254 ' Old message',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
255 '[keyword {/msg}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
256
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
257 MT('literal-indent',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
258 '[keyword {template] [def .name][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
259 ' [keyword {literal}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
260 ' Lerum',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
261 ' [keyword {/literal}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
262 ' Ipsum',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
263 '[keyword {/template}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
264
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
265 MT('special-chars',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
266 '[keyword {sp}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
267 '[keyword {nil}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
268 '[keyword {\\r}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
269 '[keyword {\\n}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
270 '[keyword {\\t}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
271 '[keyword {lb}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
272 '[keyword {rb}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
273
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
274 MT('let-list-literal',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
275 '[keyword {let] [def $test]: [[[[[string \'a\'] ], [[[string \'b\'] ] ] [keyword /}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
276
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
277 MT('let-record-literal',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
278 '[keyword {let] [def $test]: [keyword record]([property test]: [callee&variable bidiGlobalDir](), ' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
279 '[property foo]: [atom 5]) [keyword /}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
280
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
281 MT('let-map-literal',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
282 '[keyword {let] [def $test]: [keyword map]([string \'outer\']: [keyword map]([atom 5]: [atom false]), ' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
283 '[string \'foo\']: [string \'bar\']) [keyword /}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
284
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
285 MT('wrong-closing-tag',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
286 '[keyword {if] [atom true][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
287 ' Optional',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
288 '[keyword&error {/badend][keyword }]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
289
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
290 MT('list-comprehension',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
291 '[keyword {let] [def $myList]: [[[[[string \'a\'] ] ] [keyword /}] ' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
292 '[keyword {let] [def $test]: [[[variable $a] [operator +] [atom 1] [keyword for] ' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
293 '[def $a] [keyword in] [variable-2 $myList] [keyword if] [variable-2 $a] [operator >=] [atom 3] ] [keyword /}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
294
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
295 MT('list-comprehension-index',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
296 '[keyword {let] [def $test]: [[[variable $a] [operator +] [variable $index] [keyword for] ' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
297 '[def $a],[def $index] [keyword in] [[]] [keyword if] [variable-2 $a] [operator >=] [variable-2 $index] ] [keyword /}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
298
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
299
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
300 MT('list-comprehension-variable-scope',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
301 '[keyword {let] [def $name]: [string "world"][keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
302 '[keyword {let] [def $test]: [[[variable $a] [operator +] [variable $index] [keyword for] ' +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
303 '[def $a],[def $index] [keyword in] [[]] [keyword if] [variable-2 $a] [operator >=] [variable-2 $index] ] [keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
304 '[keyword {][variable-2&error $a][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
305 '[keyword {][variable-2&error $index][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
306 '[keyword {][variable-2 $test][keyword }]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
307 '[keyword {][variable-2 $name][keyword }]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
308
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
309 MT('import',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
310 '[keyword import] {[def Name], [variable Person] [keyword as] [def P]} [keyword from] [string \'examples/proto/example.proto\'];');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
311
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
312 MT('velog',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
313 '[keyword {velog] [variable-2&error $data][keyword }] Logged [keyword {/velog}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
314
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
315 MT('extern', '[keyword {extern] [def renderer]: ([def s]:[type string])=>[type string][keyword }] [keyword {/extern}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
316
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
317 MT('export extern', '[keyword {export] [keyword extern] [def renderer]: ([def s]:[type string])=>[type string][keyword }] [keyword {/extern}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
318
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
319 MT('const',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
320 '[keyword {const] [def FOO] = [atom 5] [keyword /}]',
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
321 '[keyword {export] [keyword const] [def FOO] = [atom 5] [keyword /}]');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
322 })();