export const SemanticTokenTypes = [ 'comment' 'string' 'keyword' 'number' 'regexp' 'operator' 'namespace' 'type' 'struct' 'class' 'interface' 'enum' 'typeParameter' 'function' 'member' 'macro' 'variable' 'parameter' 'property' 'label' ] for key,index in SemanticTokenTypes SemanticTokenTypes[key] = index export const M = { Declaration: 1 << 0 Import: 1 << 1 Export: 1 << 2 Global: 1 << 3 ReadOnly: 1 << 4 Static: 1 << 5 Modification: 1 << 6 Deprecated: 1 << 7 Access: 1 << 8 Root: 1 << 9 Special: 1 << 10 Class: 1 << 11 Member: 1 << 12 Function: 1 << 13 Def: 1 << 14 Var: 1 << 15 Let: 1 << 16 Const: 1 << 17 Get: 1 << 18 Set: 1 << 19 } export const SemanticTokenModifiers = Object.keys(M).map(do $1.toLowerCase! ) for k in Object.keys(M) M[k.toLowerCase!] = M[k] export const CompletionTypes = { Keyword: 1 << 0 Access: 1 << 1 Key: 1 << 2 TagName: 1 << 3 TagEvent: 1 << 4 TagFlag: 1 << 5 TagProp: 1 << 6 TagEventModifier: 1 << 7 Value: 1 << 8 Path: 1 << 9 StyleProp: 1 << 10 StyleValue: 1 << 11 Type: 1 << 12 StyleModifier: 1 << 13 StyleSelector: 1 << 14 VarName: 1 << 15 ImportName: 1 << 16 } export const KeywordTypes = { Keyword: 1 << 0 Root: 1 << 1 Class: 1 << 2 Block: 1 << 3 } export const Keywords = { and: KeywordTypes.Block await: KeywordTypes.Block begin: KeywordTypes.Block break: KeywordTypes.Block by: KeywordTypes.Block case: KeywordTypes.Block catch: KeywordTypes.Block class: KeywordTypes.Block const: KeywordTypes.Block continue: KeywordTypes.Block css: KeywordTypes.Class | KeywordTypes.Root debugger: KeywordTypes.Block def: KeywordTypes.Class | KeywordTypes.Block get: KeywordTypes.Class set: KeywordTypes.Class delete: KeywordTypes.Block do: KeywordTypes.Block elif: KeywordTypes.Block else: KeywordTypes.Block export: KeywordTypes.Root extends: KeywordTypes.Block false: KeywordTypes.Block finally: KeywordTypes.Block for: KeywordTypes.Block if: KeywordTypes.Block import: KeywordTypes.Root in: KeywordTypes.Block instanceof: KeywordTypes.Block is: KeywordTypes.Block isa: KeywordTypes.Block isnt: KeywordTypes.Block let: KeywordTypes.Block loop: KeywordTypes.Block module: KeywordTypes.Block nil: KeywordTypes.Block no: KeywordTypes.Block not: KeywordTypes.Block null: KeywordTypes.Block of: KeywordTypes.Block or: KeywordTypes.Block require: KeywordTypes.Block return: KeywordTypes.Block self: KeywordTypes.Block static: KeywordTypes.Block | KeywordTypes.Class super: KeywordTypes.Block switch: KeywordTypes.Block tag: KeywordTypes.Root then: KeywordTypes.Block this: KeywordTypes.Block throw: KeywordTypes.Block true: KeywordTypes.Block try: KeywordTypes.Block typeof: KeywordTypes.Block undefined: KeywordTypes.Block unless: KeywordTypes.Block until: KeywordTypes.Block var: KeywordTypes.Block when: KeywordTypes.Block while: KeywordTypes.Block yes: KeywordTypes.Block } export const SymbolKind = { File: 1 Module: 2 Namespace: 3 Package: 4 Class: 5 Method: 6 Property: 7 Field: 8 Constructor: 9 Enum: 10 Interface: 11 Function: 12 Variable: 13 Constant: 14 String: 15 Number: 16 Boolean: 17 Array: 18 Object: 19 Key: 20 Null: 21 EnumMember: 22 Struct: 23 Event: 24 Operator: 25 TypeParameter: 26 } for own k,v of SymbolKind SymbolKind[v] = k