1# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14extensions:
15  - name: 'js'
16    description: JavaScript keyword
17  - name: 'ts'
18    description: TypeScript keyword
19  - name: 'as'
20    description: AssemblyScript keyword
21  - name: 'ets'
22    description: ETS keyword
23
24keywords:
25  - name: 'abstract'
26    token: KEYW_ABSTRACT
27    keyword: [ets]
28    keyword_like: [ts]
29
30  - name: 'any'
31    token: KEYW_ANY
32    keyword_like: [ts]
33
34  - name: 'anyref'
35    token: KEYW_ANYREF
36    keyword_like: [as]
37
38  - name: 'arguments'
39    token: KEYW_ARGUMENTS
40    keyword_like: [js, ts]
41
42  - name: 'as'
43    token: KEYW_AS
44    keyword: [ets]
45    custom_handler: [js, ts, as]
46
47  - name: 'assert'
48    token: KEYW_ASSERT
49    keyword: [ets]
50
51  - name: 'asserts'
52    token: KEYW_ASSERTS
53    keyword_like: [ts]
54
55  - name: 'async'
56    token: KEYW_ASYNC
57    keyword: [as, ets]
58    keyword_like: [js, ts]
59
60  - name: 'await'
61    token: KEYW_AWAIT
62    keyword: [ets]
63    custom_handler: [js, ts]
64
65  - name: 'bigint'
66    token: KEYW_BIGINT
67    keyword_like: [ets, ts]
68
69  - name: 'boolean'
70    token: KEYW_BOOLEAN
71    keyword_like: [ets, js, ts]
72
73  - name: 'break'
74    token: KEYW_BREAK
75    keyword: [js, ts, as, ets]
76
77  - name: 'byte'
78    token: KEYW_BYTE
79    keyword_like: [ets]
80
81  - name: 'case'
82    token: KEYW_CASE
83    keyword: [js, ts, as, ets]
84
85  - name: 'catch'
86    token: KEYW_CATCH
87    keyword: [js, ts, as]
88    keyword_like: [ets]
89
90  - name: 'char'
91    token: KEYW_CHAR
92    keyword_like: [ets]
93
94  - name: 'class'
95    token: KEYW_CLASS
96    keyword: [js, ts, as, ets]
97
98  - name: 'const'
99    token: KEYW_CONST
100    keyword: [js, ts, as, ets]
101
102  - name: 'constructor'
103    token: KEYW_CONSTRUCTOR
104    keyword: [ets]
105
106  - name: 'continue'
107    token: KEYW_CONTINUE
108    keyword: [js, ts, as, ets]
109
110  - name: 'dataref'
111    token: KEYW_DATAREF
112    keyword_like: [as]
113
114  - name: 'debugger'
115    token: KEYW_DEBUGGER
116    keyword: [js, ets, ts]
117
118  - name: 'declare'
119    token: KEYW_DECLARE
120    keyword_like: [js, ts, as, ets]
121
122  - name: 'default'
123    token: KEYW_DEFAULT
124    keyword: [js, ts, as, ets]
125
126  - name: 'delete'
127    token: KEYW_DELETE
128    keyword: [js, as, ts]
129
130  - name: 'do'
131    token: KEYW_DO
132    keyword: [js, ts, as, ets]
133
134  - name: 'double'
135    token: KEYW_DOUBLE
136    keyword_like: [ets]
137
138  - name: 'else'
139    token: KEYW_ELSE
140    keyword: [js, ts, as, ets]
141
142  - name: 'enum'
143    token: KEYW_ENUM
144    keyword: [js, as, ets, ts]
145
146  - name: 'eqref'
147    token: KEYW_EQREF
148    keyword_like: [as]
149
150  - name: 'eval'
151    token: KEYW_EVAL
152    keyword_like: [js, ts]
153
154  - name: 'export'
155    token: KEYW_EXPORT
156    keyword: [as, js, ets, ts]
157
158  - name: 'extends'
159    token: KEYW_EXTENDS
160    keyword: [as, js, ets, ts]
161
162  - name: 'externref'
163    token: KEYW_EXTERNREF
164    keyword_like: [as]
165
166  - name: 'f32'
167    token: KEYW_F32
168    keyword_like: [as]
169
170  - name: 'f64'
171    token: KEYW_F64
172    keyword_like: [as]
173
174  - name: 'false'
175    token: LITERAL_FALSE
176    keyword: [as, js, ets, ts]
177
178  - name: 'finally'
179    token: KEYW_FINALLY
180    keyword: [js, ts]
181    keyword_like: [ets]
182
183  - name: 'float'
184    token: KEYW_FLOAT
185    keyword_like: [ets]
186
187  - name: 'for'
188    token: KEYW_FOR
189    keyword: [as, js, ets, ts]
190
191  - name: 'from'
192    token: KEYW_FROM
193    keyword_like: [as, js, ts, ets]
194
195  - name: 'funcref'
196    token: KEYW_FUNCREF
197    keyword_like: [as]
198
199  - name: 'function'
200    token: KEYW_FUNCTION
201    keyword: [as, js, ets, ts]
202
203  - name: 'get'
204    token: KEYW_GET
205    keyword_like: [as, js, ts, ets]
206
207  - name: 'global'
208    token: KEYW_GLOBAL
209    keyword_like: [as, ts]
210
211  - name: 'i8'
212    token: KEYW_I8
213    keyword_like: [as]
214
215  - name: 'i16'
216    token: KEYW_I16
217    keyword_like: [as]
218
219  - name: 'i31ref'
220    token: KEYW_I31REF
221    keyword_like: [as]
222
223  - name: 'i32'
224    token: KEYW_I32
225    keyword_like: [as]
226
227  - name: 'i64'
228    token: KEYW_I64
229    keyword_like: [as]
230
231  - name: 'if'
232    token: KEYW_IF
233    keyword: [as, js, ets, ts]
234
235  - name: 'implements'
236    token: KEYW_IMPLEMENTS
237    keyword: [as, js, ets, ts]
238
239  - name: 'import'
240    token: KEYW_IMPORT
241    keyword: [as, js, ets, ts]
242
243  - name: 'in'
244    token: KEYW_IN
245    keyword: [as, js, ts]
246    keyword_like: [ets]
247
248  - name: 'infer'
249    token: KEYW_INFER
250    keyword_like: [ts]
251
252  - name: 'instanceof'
253    token: KEYW_INSTANCEOF
254    keyword: [as, js, ets, ts]
255
256  - name: 'int'
257    token: KEYW_INT
258    keyword_like: [ets]
259
260  - name: 'interface'
261    token: KEYW_INTERFACE
262    keyword: [js, as, ets, ts]
263
264  - name: 'is'
265    token: KEYW_IS
266    keyword_like: [ets, ts]
267
268  - name: 'isize'
269    token: KEYW_ISIZE
270    keyword_like: [as]
271
272  - name: 'keyof'
273    token: KEYW_KEYOF
274    keyword_like: [ts]
275
276  - name: 'let'
277    token: KEYW_LET
278    keyword: [as, js, ets, ts]
279
280  - name: 'launch'
281    token: KEYW_LAUNCH
282    keyword: [ets]
283
284  - name: 'long'
285    token: KEYW_LONG
286    keyword_like: [ets]
287
288  - name: 'meta'
289    token: KEYW_META
290    keyword_like: [js, ts]
291
292  - name: 'module'
293    token: KEYW_MODULE
294    keyword_like: [as, js, ts]
295
296  - name: 'namespace'
297    token: KEYW_NAMESPACE
298    keyword: [ets]
299    keyword_like: [as, ts]
300
301  - name: 'native'
302    token: KEYW_NATIVE
303    keyword: [ets]
304
305  - name: 'never'
306    token: KEYW_NEVER
307    keyword_like: [ts]
308
309  - name: 'new'
310    token: KEYW_NEW
311    keyword: [as, js, ets, ts]
312
313  - name: 'null'
314    token: LITERAL_NULL
315    keyword: [as, js, ets, ts]
316
317  - name: 'number'
318    token: KEYW_NUMBER
319    keyword_like: [ets, ts]
320
321  - name: 'object'
322    token: KEYW_OBJECT
323    keyword_like: [ts]
324
325  - name: 'of'
326    token: KEYW_OF
327    keyword_like: [ets, js, ts, as]
328
329  - name: 'final'
330    token: KEYW_FINAL
331    keyword: [ets]
332
333  - name: 'out'
334    token: KEYW_OUT
335    keyword_like: [ets]
336
337  - name: 'override'
338    token: KEYW_OVERRIDE
339    keyword: [ets]
340    keyword_like: [ts]
341
342  - name: 'package'
343    token: KEYW_PACKAGE
344    keyword: [js, ts, as, ets]
345
346  - name: 'internal'
347    token: KEYW_INTERNAL
348    keyword: [ets]
349
350  - name: 'private'
351    token: KEYW_PRIVATE
352    keyword: [js, as, ets, ts]
353
354  - name: 'protected'
355    token: KEYW_PROTECTED
356    keyword: [js, as, ets, ts]
357
358  - name: 'public'
359    token: KEYW_PUBLIC
360    keyword: [js, as, ets, ts]
361
362  - name: 'readonly'
363    token: KEYW_READONLY
364    keyword_like: [as, ts, ets]
365
366  - name: 'rethrows'
367    token: KEYW_RETHROWS
368    keyword_like: [ets]
369
370  - name: 'return'
371    token: KEYW_RETURN
372    keyword: [as, js, ets, ts]
373
374  - name: 'require'
375    token: KEYW_REQUIRE
376    keyword_like: [ts]
377
378  - name: 'set'
379    token: KEYW_SET
380    keyword_like: [as, js, ts, ets]
381
382  - name: 'short'
383    token: KEYW_SHORT
384    keyword_like: [ets]
385
386  - name: 'static'
387    token: KEYW_STATIC
388    keyword: [js, as, ets, ts]
389
390  - name: 'string'
391    token: KEYW_STRING
392    keyword_like: [ets, ts]
393
394  - name: 'struct'
395    token: KEYW_STRUCT
396    keyword_like: [ets]
397
398  - name: 'super'
399    token: KEYW_SUPER
400    keyword: [js, ts, ets]
401
402  - name: 'switch'
403    token: KEYW_SWITCH
404    keyword: [js, as, ets, ts]
405
406  - name: 'target'
407    token: KEYW_TARGET
408    keyword_like: [js, ts]
409
410  - name: 'this'
411    token: KEYW_THIS
412    keyword: [as, js, ets, ts]
413
414  - name: 'throw'
415    token: KEYW_THROW
416    keyword: [js, ets, ts, as]
417
418  - name: 'throws'
419    token: KEYW_THROWS
420    keyword_like: [ets]
421
422  - name: 'true'
423    token: LITERAL_TRUE
424    keyword: [as, js, ets, ts]
425
426  - name: 'try'
427    token: KEYW_TRY
428    keyword: [as, js, ets, ts]
429
430  - name: 'type'
431    token: KEYW_TYPE
432    keyword_like: [ets, js, ts]
433
434  - name: 'typeof'
435    token: KEYW_TYPEOF
436    keyword: [js, ets, ts]
437
438  - name: 'u8'
439    token: KEYW_U8
440    keyword_like: [as]
441
442  - name: 'u16'
443    token: KEYW_U16
444    keyword_like: [as]
445
446  - name: 'u32'
447    token: KEYW_U32
448    keyword_like: [as]
449
450  - name: 'u64'
451    token: KEYW_U64
452    keyword_like: [as]
453
454  - name: 'undefined'
455    token: KEYW_UNDEFINED
456    keyword: [ets]
457    keyword_like: [js, ts]
458
459  - name: 'unknown'
460    token: KEYW_UNKNOWN
461    keyword_like: [ts]
462
463  - name: 'usize'
464    token: KEYW_USIZE
465    keyword_like: [as]
466
467  - name: 'v128'
468    token: KEYW_V128
469    keyword_like: [as]
470
471  - name: 'var'
472    token: KEYW_VAR
473    keyword: [as, js, ets, ts]
474
475  - name: 'void'
476    token: KEYW_VOID
477    keyword: [as, js, ts]
478    keyword_like: [ets]
479
480  - name: 'while'
481    token: KEYW_WHILE
482    keyword: [as, js, ets, ts]
483
484  - name: 'with'
485    token: KEYW_WITH
486    keyword: [js, ts]
487
488  - name: 'yield'
489    token: KEYW_YIELD
490    keyword: [ets]
491    custom_handler: [js, ts]
492