UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

50 lines (49 loc) 2.2 kB
/** * @module discovery/index * @description ProjectDiscoverer 系统入口 - 初始化 Registry 并注册所有 Discoverer */ import { CustomConfigDiscoverer } from './CustomConfigDiscoverer.js'; import { DartDiscoverer } from './DartDiscoverer.js'; import { DiscovererRegistry } from './DiscovererRegistry.js'; import { GenericDiscoverer } from './GenericDiscoverer.js'; import { GoDiscoverer } from './GoDiscoverer.js'; import { JvmDiscoverer } from './JvmDiscoverer.js'; import { NodeDiscoverer } from './NodeDiscoverer.js'; import { PythonDiscoverer } from './PythonDiscoverer.js'; import { RustDiscoverer } from './RustDiscoverer.js'; import { SpmDiscoverer } from './SpmDiscoverer.js'; let _registry = null; /** 获取全局 DiscovererRegistry 单例 */ export function getDiscovererRegistry() { if (!_registry) { _registry = new DiscovererRegistry(); _registry .register(new SpmDiscoverer()) .register(new NodeDiscoverer()) .register(new PythonDiscoverer()) .register(new JvmDiscoverer()) .register(new GoDiscoverer()) .register(new DartDiscoverer()) .register(new RustDiscoverer()) .register(new CustomConfigDiscoverer()) .register(new GenericDiscoverer()); } return _registry; } /** 重置 Registry(仅用于测试) */ export function resetDiscovererRegistry() { _registry = null; } export { CustomConfigDiscoverer } from './CustomConfigDiscoverer.js'; export { DartDiscoverer } from './DartDiscoverer.js'; export { detectConflict, loadPreference, promptDiscovererChoice, savePreference, } from './DiscovererPreference.js'; export { DiscovererRegistry } from './DiscovererRegistry.js'; export { GenericDiscoverer } from './GenericDiscoverer.js'; export { GoDiscoverer } from './GoDiscoverer.js'; export { JvmDiscoverer } from './JvmDiscoverer.js'; export { NodeDiscoverer } from './NodeDiscoverer.js'; // Re-exports export { ProjectDiscoverer } from './ProjectDiscoverer.js'; export { PythonDiscoverer } from './PythonDiscoverer.js'; export { RustDiscoverer } from './RustDiscoverer.js'; export { SpmDiscoverer } from './SpmDiscoverer.js';