diff --git a/understand-anything-plugin/packages/core/src/plugins/extractors/index.ts b/understand-anything-plugin/packages/core/src/plugins/extractors/index.ts new file mode 100644 index 0000000..f148c61 --- /dev/null +++ b/understand-anything-plugin/packages/core/src/plugins/extractors/index.ts @@ -0,0 +1,34 @@ +export type { LanguageExtractor, TreeSitterNode } from "./types.js"; +export { traverse, getStringValue, findChild, findChildren, hasChildOfType } from "./base-extractor.js"; +export { TypeScriptExtractor } from "./typescript-extractor.js"; +export { PythonExtractor } from "./python-extractor.js"; +export { GoExtractor } from "./go-extractor.js"; +export { RustExtractor } from "./rust-extractor.js"; +export { JavaExtractor } from "./java-extractor.js"; +export { RubyExtractor } from "./ruby-extractor.js"; +export { PhpExtractor } from "./php-extractor.js"; +export { CppExtractor } from "./cpp-extractor.js"; +export { CSharpExtractor } from "./csharp-extractor.js"; + +import type { LanguageExtractor } from "./types.js"; +import { TypeScriptExtractor } from "./typescript-extractor.js"; +import { PythonExtractor } from "./python-extractor.js"; +import { GoExtractor } from "./go-extractor.js"; +import { RustExtractor } from "./rust-extractor.js"; +import { JavaExtractor } from "./java-extractor.js"; +import { RubyExtractor } from "./ruby-extractor.js"; +import { PhpExtractor } from "./php-extractor.js"; +import { CppExtractor } from "./cpp-extractor.js"; +import { CSharpExtractor } from "./csharp-extractor.js"; + +export const builtinExtractors: LanguageExtractor[] = [ + new TypeScriptExtractor(), + new PythonExtractor(), + new GoExtractor(), + new RustExtractor(), + new JavaExtractor(), + new RubyExtractor(), + new PhpExtractor(), + new CppExtractor(), + new CSharpExtractor(), +]; diff --git a/understand-anything-plugin/packages/core/src/plugins/tree-sitter-plugin.ts b/understand-anything-plugin/packages/core/src/plugins/tree-sitter-plugin.ts index 96dd0ab..df5fde6 100644 --- a/understand-anything-plugin/packages/core/src/plugins/tree-sitter-plugin.ts +++ b/understand-anything-plugin/packages/core/src/plugins/tree-sitter-plugin.ts @@ -8,7 +8,7 @@ import type { } from "../types.js"; import type { LanguageConfig } from "../languages/types.js"; import type { LanguageExtractor } from "./extractors/types.js"; -import { TypeScriptExtractor } from "./extractors/typescript-extractor.js"; +import { builtinExtractors } from "./extractors/index.js"; // web-tree-sitter uses CJS internally; we need createRequire for .wasm resolution const require = createRequire(import.meta.url); @@ -84,13 +84,15 @@ export class TreeSitterPlugin implements AnalyzerPlugin { this.languages = langs; - // Register extractors (default: TypeScript/JavaScript) + // Register extractors (default: all builtin extractors) if (extractors && extractors.length > 0) { for (const extractor of extractors) { this.registerExtractor(extractor); } } else { - this.registerExtractor(new TypeScriptExtractor()); + for (const extractor of builtinExtractors) { + this.registerExtractor(extractor); + } } }