feat: create extractor index with builtinExtractors, wire all 9 extractors into TreeSitterPlugin

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Lum1104
2026-04-15 19:20:42 +08:00
Unverified
parent 3e4f7b6c02
commit 4ff04b251e
2 changed files with 39 additions and 3 deletions
@@ -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(),
];
@@ -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);
}
}
}