Closed cmdcolin closed 5 months ago
function stuff<T>() {} export interface MyInterface<T> extends ReturnType<typeof stuff<T>> {} export function DoStuff<T>(arg: T) { if (arg) { return 'stuff' } else { return 'good' } }
highlight in neovim
parse tree from TSPlaygroundToggle in neovim
function_declaration [0, 0] - [0, 22] name: identifier [0, 9] - [0, 14] type_parameters: type_parameters [0, 14] - [0, 17] type_parameter [0, 15] - [0, 16] name: type_identifier [0, 15] - [0, 16] parameters: formal_parameters [0, 17] - [0, 19] body: statement_block [0, 20] - [0, 22] ERROR [1, 0] - [10, 1] identifier [1, 17] - [1, 40] type_parameters [1, 40] - [1, 43] type_parameter [1, 41] - [1, 42] name: type_identifier [1, 41] - [1, 42] identifier [2, 10] - [2, 20] ERROR [2, 21] - [8, 10] type_query [2, 21] - [2, 33] identifier [2, 28] - [2, 33] type_parameters [2, 33] - [2, 36] type_parameter [2, 34] - [2, 35] name: type_identifier [2, 34] - [2, 35] object_type [2, 38] - [2, 40] generic_type [4, 16] - [4, 41] name: type_identifier [4, 16] - [4, 38] type_arguments: type_arguments [4, 38] - [4, 41] type_identifier [4, 39] - [4, 40] formal_parameters [4, 41] - [4, 49] required_parameter [4, 42] - [4, 48] pattern: identifier [4, 42] - [4, 45] type: type_annotation [4, 45] - [4, 48] type_identifier [4, 47] - [4, 48] method_signature [5, 2] - [5, 10] name: property_identifier [5, 2] - [5, 4] parameters: formal_parameters [5, 5] - [5, 10] required_parameter [5, 6] - [5, 9] pattern: identifier [5, 6] - [5, 9] object_type [5, 11] - [7, 3] ERROR [6, 4] - [6, 10] property_identifier [6, 4] - [6, 10] property_signature [6, 11] - [6, 18] name: string [6, 11] - [6, 18] string_fragment [6, 12] - [6, 17] literal_type [8, 11] - [8, 17] string [8, 11] - [8, 17] string_fragment [8, 12] - [8, 16]
Seems okay now, let me know if not.
highlight in neovim
parse tree from TSPlaygroundToggle in neovim