• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2025 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    flags: [reserved_type_name]
34
35  - name: 'Any'
36    token: KEYW_BUILTIN_ANY
37    keyword_like: [ets]
38    flags:  [predefined_type]
39
40  - name: 'anyref'
41    token: KEYW_ANYREF
42    keyword_like: [as]
43
44  - name: 'arguments'
45    token: KEYW_ARGUMENTS
46    keyword_like: [js, ts]
47
48  - name: 'as'
49    token: KEYW_AS
50    keyword: [ets]
51    custom_handler: [js, ts, as]
52
53  - name: 'asserts'
54    token: KEYW_ASSERTS
55    keyword_like: [ts]
56
57  - name: 'async'
58    token: KEYW_ASYNC
59    keyword: [as, ets]
60    keyword_like: [js, ts]
61
62  - name: 'await'
63    token: KEYW_AWAIT
64    keyword: [ets]
65    custom_handler: [js, ts]
66    flags: [unary]
67
68  - name: 'bigint'
69    token: KEYW_BIGINT
70    keyword_like: [ets, ts]
71    flags: [definable_type_name]
72
73  - name: 'Bigint'
74    token: KEYW_BUILTIN_BIGINT
75    keyword_like: [ets]
76    flags:  [predefined_type]
77
78  - name: 'boolean'
79    token: KEYW_BOOLEAN
80    keyword: [ets]
81    keyword_like: [js, ts]
82    flags: [reserved_type_name, definable_type_name]
83
84  - name: 'Boolean'
85    token: KEYW_BUILTIN_BOOLEAN
86    keyword_like: [ets]
87    flags:  [predefined_type]
88
89  - name: 'break'
90    token: KEYW_BREAK
91    keyword: [js, ts, as, ets]
92    flags: [reserved_type_name]
93
94  - name: 'byte'
95    token: KEYW_BYTE
96    keyword: [ets]
97    flags: [reserved_type_name, definable_type_name]
98
99  - name: 'Byte'
100    token: KEYW_BUILTIN_BYTE
101    keyword_like: [ets]
102    flags:  [predefined_type]
103
104  - name: 'case'
105    token: KEYW_CASE
106    keyword: [js, ts, as, ets]
107    flags: [reserved_type_name]
108
109  - name: 'catch'
110    token: KEYW_CATCH
111    keyword: [js, ts, as]
112    keyword_like: [ets]
113
114  - name: 'char'
115    token: KEYW_CHAR
116    keyword: [ets]
117    flags: [reserved_type_name, definable_type_name]
118
119  - name: 'Char'
120    token: KEYW_BUILTIN_CHAR
121    keyword_like: [ets]
122    flags:  [predefined_type]
123
124  - name: 'class'
125    token: KEYW_CLASS
126    keyword: [js, ts, as, ets]
127    flags: [reserved_type_name]
128
129  - name: 'const'
130    token: KEYW_CONST
131    keyword: [js, ts, as, ets]
132
133  - name: 'constructor'
134    token: KEYW_CONSTRUCTOR
135    keyword: [ets]
136
137  - name: 'continue'
138    token: KEYW_CONTINUE
139    keyword: [js, ts, as, ets]
140    flags: [reserved_type_name]
141
142  - name: 'dataref'
143    token: KEYW_DATAREF
144    keyword_like: [as]
145
146  - name: 'debugger'
147    token: KEYW_DEBUGGER
148    keyword: [js, ets, ts]
149
150  - name: 'declare'
151    token: KEYW_DECLARE
152    keyword_like: [js, ts, as, ets]
153
154  - name: 'default'
155    token: KEYW_DEFAULT
156    keyword: [js, ts, as, ets]
157    flags: [reserved_type_name]
158
159  - name: 'delete'
160    token: KEYW_DELETE
161    keyword: [js, as, ts]
162    flags: [unary]
163
164  - name: 'do'
165    token: KEYW_DO
166    keyword: [js, ts, as, ets]
167
168  - name: 'double'
169    token: KEYW_DOUBLE
170    keyword: [ets]
171    flags: [reserved_type_name, definable_type_name]
172
173  - name: 'Double'
174    token: KEYW_BUILTIN_DOUBLE
175    keyword_like: [ets]
176    flags:  [predefined_type]
177
178  - name: 'else'
179    token: KEYW_ELSE
180    keyword: [js, ts, as, ets]
181    flags: [reserved_type_name]
182
183  - name: 'enum'
184    token: KEYW_ENUM
185    keyword: [js, as, ets, ts]
186    flags: [reserved_type_name]
187
188  - name: 'eqref'
189    token: KEYW_EQREF
190    keyword_like: [as]
191
192  - name: 'eval'
193    token: KEYW_EVAL
194    keyword_like: [js, ts]
195
196  - name: 'export'
197    token: KEYW_EXPORT
198    keyword: [as, js, ets, ts]
199    flags: [reserved_type_name]
200
201  - name: 'extends'
202    token: KEYW_EXTENDS
203    keyword: [as, js, ets, ts]
204    flags: [reserved_type_name]
205
206  - name: 'externref'
207    token: KEYW_EXTERNREF
208    keyword_like: [as]
209
210  - name: 'f32'
211    token: KEYW_F32
212    keyword_like: [as]
213
214  - name: 'f64'
215    token: KEYW_F64
216    keyword_like: [as]
217
218  - name: 'false'
219    token: LITERAL_FALSE
220    keyword: [as, js, ets, ts]
221    flags: [reserved_type_name]
222
223  - name: 'finally'
224    token: KEYW_FINALLY
225    keyword: [js, ts]
226    keyword_like: [ets]
227    flags: [reserved_type_name]
228
229  - name: 'float'
230    token: KEYW_FLOAT
231    keyword: [ets]
232    flags: [reserved_type_name, definable_type_name]
233
234  - name: 'Float'
235    token: KEYW_BUILTIN_FLOAT
236    keyword_like: [ets]
237    flags:  [predefined_type]
238
239  - name: 'for'
240    token: KEYW_FOR
241    keyword: [as, js, ets, ts]
242    flags: [reserved_type_name]
243
244  - name: 'from'
245    token: KEYW_FROM
246    keyword_like: [as, js, ts, ets]
247
248  - name: 'funcref'
249    token: KEYW_FUNCREF
250    keyword_like: [as]
251
252  - name: 'function'
253    token: KEYW_FUNCTION
254    keyword: [as, js, ets, ts]
255    flags: [reserved_type_name]
256
257  - name: 'get'
258    token: KEYW_GET
259    keyword_like: [as, js, ts, ets]
260
261  - name: 'global'
262    token: KEYW_GLOBAL
263    keyword_like: [as, ts]
264
265  - name: 'i8'
266    token: KEYW_I8
267    keyword_like: [as]
268
269  - name: 'i16'
270    token: KEYW_I16
271    keyword_like: [as]
272
273  - name: 'i31ref'
274    token: KEYW_I31REF
275    keyword_like: [as]
276
277  - name: 'i32'
278    token: KEYW_I32
279    keyword_like: [as]
280
281  - name: 'i64'
282    token: KEYW_I64
283    keyword_like: [as]
284
285  - name: 'if'
286    token: KEYW_IF
287    keyword: [as, js, ets, ts]
288    flags: [reserved_type_name]
289
290  - name: 'implements'
291    token: KEYW_IMPLEMENTS
292    keyword: [as, js, ets, ts]
293
294  - name: 'import'
295    token: KEYW_IMPORT
296    keyword: [as, js, ets, ts]
297
298  - name: 'in'
299    token: KEYW_IN
300    keyword: [as, js, ts]
301    keyword_like: [ets]
302    flags: [binary]
303
304  - name: 'infer'
305    token: KEYW_INFER
306    keyword_like: [ts]
307
308  - name: 'instanceof'
309    token: KEYW_INSTANCEOF
310    keyword: [as, js, ts]
311    keyword_like: [ets]
312    flags: [binary]
313
314  - name: 'int'
315    token: KEYW_INT
316    keyword: [ets]
317    flags: [reserved_type_name, definable_type_name]
318
319  - name: 'Int'
320    token: KEYW_BUILTIN_INT
321    keyword_like: [ets]
322    flags:  [predefined_type]
323
324  - name: 'interface'
325    token: KEYW_INTERFACE
326    keyword: [js, as, ets, ts]
327
328  - name: 'is'
329    token: KEYW_IS
330    keyword_like: [ets, ts]
331    flags: [definable_type_name]
332
333  - name: 'isize'
334    token: KEYW_ISIZE
335    keyword_like: [as]
336
337  - name: 'keyof'
338    token: KEYW_KEYOF
339    keyword_like: [ts, ets]
340
341  - name: 'let'
342    token: KEYW_LET
343    keyword: [as, js, ets, ts]
344
345  - name: 'long'
346    token: KEYW_LONG
347    keyword: [ets]
348    flags: [reserved_type_name, definable_type_name]
349
350  - name: 'Long'
351    token: KEYW_BUILTIN_LONG
352    keyword_like: [ets]
353    flags:  [predefined_type]
354
355  - name: 'meta'
356    token: KEYW_META
357    keyword_like: [js, ts]
358
359  - name: 'module'
360    token: KEYW_MODULE
361    keyword_like: [as, js, ts]
362
363  - name: 'namespace'
364    token: KEYW_NAMESPACE
365    keyword_like: [as, ets, ts]
366    flags: [definable_type_name]
367
368  - name: 'native'
369    token: KEYW_NATIVE
370    keyword: [ets]
371
372  - name: 'never'
373    token: KEYW_NEVER
374    keyword_like: [ts]
375    flags: [reserved_type_name]
376
377  - name: 'new'
378    token: KEYW_NEW
379    keyword: [as, js, ets, ts]
380
381  - name: 'null'
382    token: LITERAL_NULL
383    keyword: [as, js, ets, ts]
384    flags: [reserved_type_name]
385
386  - name: 'number'
387    token: KEYW_NUMBER
388    keyword_like: [ets, ts]
389    flags: [definable_type_name, predefined_type]
390
391  # issue 25066
392  # - name: 'Number'
393  #   token: KEYW_BUILTIN_NUMBER
394  #   keyword_like: [ets]
395  #   flags:  [predefined_type]
396
397  - name: 'object'
398    token: KEYW_OBJECT
399    keyword_like: [ets, ts]
400    flags: [reserved_type_name, predefined_type]
401
402  - name: 'Object'
403    token: KEYW_BUILTIN_OBJECT
404    keyword_like: [ets]
405    flags:  [predefined_type]
406
407  - name: 'of'
408    token: KEYW_OF
409    keyword_like: [ets, js, ts, as]
410
411  - name: 'final'
412    token: KEYW_FINAL
413    keyword: [ets]
414
415  - name: 'out'
416    token: KEYW_OUT
417    keyword_like: [ets]
418
419  - name: 'override'
420    token: KEYW_OVERRIDE
421    keyword: [ets]
422    keyword_like: [ts]
423
424  - name: 'package'
425    token: KEYW_PACKAGE
426    keyword: [js, ts, as, ets]
427
428  - name: 'internal'
429    token: KEYW_INTERNAL
430    keyword: [ets]
431
432  - name: 'private'
433    token: KEYW_PRIVATE
434    keyword: [js, as, ets, ts]
435
436  - name: 'protected'
437    token: KEYW_PROTECTED
438    keyword: [js, as, ets, ts]
439
440  - name: 'public'
441    token: KEYW_PUBLIC
442    keyword: [js, as, ets, ts]
443
444  - name: 'readonly'
445    token: KEYW_READONLY
446    keyword_like: [as, ts, ets]
447
448  - name: 'rethrows'
449    token: KEYW_RETHROWS
450    keyword_like: [ets]
451
452  - name: 'return'
453    token: KEYW_RETURN
454    keyword: [as, js, ets, ts]
455
456  - name: 'require'
457    token: KEYW_REQUIRE
458    keyword_like: [ts]
459
460  - name: 'set'
461    token: KEYW_SET
462    keyword_like: [as, js, ts, ets]
463
464  - name: 'short'
465    token: KEYW_SHORT
466    keyword: [ets]
467    flags: [reserved_type_name, definable_type_name]
468
469  - name: 'Short'
470    token: KEYW_BUILTIN_SHORT
471    keyword_like: [ets]
472    flags:  [predefined_type]
473
474  - name: 'static'
475    token: KEYW_STATIC
476    keyword: [js, as, ets, ts]
477
478  - name: 'string'
479    token: KEYW_STRING
480    keyword_like: [ets, ts]
481    flags: [definable_type_name]
482
483  - name: 'String'
484    token: KEYW_BUILTIN_STRING
485    keyword_like: [ets]
486    flags:  [predefined_type]
487
488  - name: 'struct'
489    token: KEYW_STRUCT
490    keyword_like: [ets]
491    flags: [definable_type_name]
492
493  - name: 'super'
494    token: KEYW_SUPER
495    keyword: [js, ts, ets]
496
497  - name: 'switch'
498    token: KEYW_SWITCH
499    keyword: [js, as, ets, ts]
500
501  - name: 'target'
502    token: KEYW_TARGET
503    keyword_like: [js, ts]
504
505  - name: 'this'
506    token: KEYW_THIS
507    keyword: [as, js, ets, ts]
508
509  - name: 'throw'
510    token: KEYW_THROW
511    keyword: [js, ets, ts, as]
512
513  - name: 'throws'
514    token: KEYW_THROWS
515    keyword_like: [ets]
516
517  - name: 'true'
518    token: LITERAL_TRUE
519    keyword: [as, js, ets, ts]
520    flags: [reserved_type_name]
521
522  - name: 'try'
523    token: KEYW_TRY
524    keyword: [as, js, ets, ts]
525
526  - name: 'type'
527    token: KEYW_TYPE
528    keyword_like: [ets, js, ts]
529    flags: [definable_type_name]
530
531  - name: 'typeof'
532    token: KEYW_TYPEOF
533    keyword: [js, ts]
534    keyword_like: [ets]
535    flags: [unary]
536
537  - name: 'u8'
538    token: KEYW_U8
539    keyword_like: [as]
540
541  - name: 'u16'
542    token: KEYW_U16
543    keyword_like: [as]
544
545  - name: 'u32'
546    token: KEYW_U32
547    keyword_like: [as]
548
549  - name: 'u64'
550    token: KEYW_U64
551    keyword_like: [as]
552
553  - name: 'undefined'
554    token: KEYW_UNDEFINED
555    keyword: [ets]
556    keyword_like: [js, ts]
557    flags: [reserved_type_name, definable_type_name]
558
559  - name: 'unknown'
560    token: KEYW_UNKNOWN
561    keyword_like: [ts]
562    flags: [reserved_type_name]
563
564  - name: 'usize'
565    token: KEYW_USIZE
566    keyword_like: [as]
567
568  - name: 'v128'
569    token: KEYW_V128
570    keyword_like: [as]
571
572  - name: 'var'
573    token: KEYW_VAR
574    keyword: [as, js, ts]
575    keyword_like: [ets]
576    flags: [reserved_type_name, definable_type_name]
577
578  - name: 'void'
579    token: KEYW_VOID
580    keyword: [as, ets, js, ts]
581    flags: [unary, reserved_type_name, definable_type_name]
582
583  - name: 'while'
584    token: KEYW_WHILE
585    keyword: [as, js, ets, ts]
586
587  - name: 'with'
588    token: KEYW_WITH
589    keyword: [js, ts]
590
591  - name: 'yield'
592    token: KEYW_YIELD
593    keyword_like: [ets]
594    custom_handler: [js, ts]
595    flags: [definable_type_name]
596