Open liaodalin19903 opened 3 months ago
I can use node-tree-sitter to get a class node:
const Parser = require("tree-sitter") const JavaScript = require("tree-sitter-javascript"); const { Query } = Parser //#region 【JavaScript】 const parser = new Parser() parser.setLanguage(JavaScript) // 1. .matches const query = new Query( JavaScript, ` (class_declaration name: (identifier) @class-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') } } `); const matches = query.matches(tree.rootNode); // I can get a special class node console.log(matches[3].captures[0].node.text) // Dog //#endregion
but how to get the inheritance chain of the special class([Dog, Animal, AnimalBase])?
inheritance chain
[Dog, Animal, AnimalBase]
I can use node-tree-sitter to get a class node:
but how to get the
inheritance chain
of the special class([Dog, Animal, AnimalBase]
)?