Open liaodalin19903 opened 3 months ago
How to query out all the properties and methods from a class?
I tried to match a class for getting all the properties and methods:
const Parser = require("tree-sitter") const TypeScript = require("tree-sitter-typescript").typescript const { Query } = Parser const parser = new Parser() parser.setLanguage(TypeScript) /* const query = new Query( TypeScript, ` (class_declaration name: (identifier) @class-name (class_heritage (extends_clause value: (identifier))) ) ` ); */ //(class_declaration name: (identifier) @class-name) const query = new Query( TypeScript, ` (class_declaration name: (type_identifier) @class-name body: (class_body (method_definition name: (property_identifier) @the-method-name))) ` ); const tree = parser.parse(` class AnimalBase { readonly skeleton: number readonly blood: 'red' | 'blue' | 'transparent' } abstract class Animal extends AnimalBase { readonly age: number = 0 abstract shout (): void } class Cat extends Animal { shout() { console.log('mew mew') } } class Dog extends Animal { shout() { console.log('bark bark') } shout2() { console.log('bark bark') } } `); const matches = query.matches(tree.rootNode); //console.log(matches[1].captures[0].node.text) // Dog console.log(matches[1].captures)
but I only get one class and one method:
[ { name: 'class-name', node: TypeIdentifierNode { type: type_identifier, startPosition: {row: 19, column: 6}, endPosition: {row: 19, column: 9}, childCount: 0, } }, { name: 'the-method-name', node: PropertyIdentifierNode { type: property_identifier, startPosition: {row: 20, column: 2}, endPosition: {row: 20, column: 7}, childCount: 0, } } ]
How to get the class Dog's all properties and methods?
How to query out all the properties and methods from a class?
I tried to match a class for getting all the properties and methods:
but I only get one class and one method:
How to get the class Dog's all properties and methods?