MCPcopy Create free account
hub / github.com/CatMuse/HiNote / initialize

Method initialize

src/services/InitializationManager.ts:49–100  ·  view source on GitHub ↗

* 实际的初始化逻辑

()

Source from the content-addressed store, hash-verified

47 * 实际的初始化逻辑
48 */
49 private initialize(): PluginServices {
50 // 初始化事件管理器(共享实例)
51 const eventManager = new EventManager(this.plugin.app);
52
53 // 初始化数据管理器(共享实例)
54 const dataManager = new HiNoteDataManager(this.plugin.app);
55
56 // 初始化架构层
57 const highlightRepository = new HighlightRepository(dataManager);
58
59 // 初始化高亮服务(共享实例)
60 const highlightService = new HighlightService(
61 this.plugin.app,
62 () => this.plugin.settings,
63 () => highlightRepository
64 );
65 // 异步构建索引,不阻塞初始化
66 void highlightService.initialize();
67
68 // 初始化 Canvas 服务(共享实例)
69 const canvasService = new CanvasService(this.plugin.app.vault);
70
71 const highlightManager = new HighlightManager(
72 this.plugin.app,
73 highlightRepository,
74 eventManager,
75 highlightService
76 );
77
78 // 异步加载数据,不阻塞初始化
79 highlightRepository.initialize().catch(error => {
80 console.error('[HiNote] 加载高亮数据失败:', error);
81 });
82
83 // 初始化 FSRS 管理器(传入数据管理器以使用新存储层)
84 const fsrsManager = new FSRSManager(this.plugin, dataManager);
85
86 // 初始化高亮装饰器
87 const highlightDecorator = new HighlightDecorator(this.plugin, highlightRepository, highlightService, eventManager);
88 highlightDecorator.enable();
89
90 return {
91 eventManager,
92 dataManager,
93 highlightService,
94 canvasService,
95 fsrsManager,
96 highlightDecorator,
97 highlightRepository,
98 highlightManager
99 };
100 }
101
102 /**
103 * 清理资源

Callers 1

ensureInitializedMethod · 0.95

Calls 3

initializeMethod · 0.95
initializeMethod · 0.95
enableMethod · 0.95

Tested by

no test coverage detected