refactor(editor-app): 改进架构和类型安全 (#226)

* refactor(editor-app): 改进架构和类型安全

* refactor(editor-app): 开始拆分 Inspector.tsx - 创建基础架构

* refactor(editor-app): 完成 Inspector.tsx 拆分

* refactor(editor-app): 优化 Inspector 类型定义,消除所有 any 使用

* refactor(editor): 实现可扩展的属性渲染器系统

* Potential fix for code scanning alert no. 231: Unused variable, import, function or class

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* fix(ci): 防止 Codecov 服务故障阻塞 CI 流程

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
This commit is contained in:
YHH
2025-11-18 22:28:13 +08:00
committed by GitHub
parent bce3a6e253
commit caed5428d5
48 changed files with 2221 additions and 44 deletions

View File

@@ -13,7 +13,8 @@ import {
SceneManagerService,
FileActionRegistry,
EditorPluginManager,
InspectorRegistry
InspectorRegistry,
PropertyRendererRegistry
} from '@esengine/editor-core';
import { TauriFileAPI } from '../../adapters/TauriFileAPI';
import { DIContainer } from '../../core/di/DIContainer';
@@ -24,6 +25,18 @@ import type { EditorEventMap } from '../../core/events/EditorEventMap';
import { TauriFileSystemService } from '../../services/TauriFileSystemService';
import { TauriDialogService } from '../../services/TauriDialogService';
import { NotificationService } from '../../services/NotificationService';
import {
StringRenderer,
NumberRenderer,
BooleanRenderer,
NullRenderer,
Vector2Renderer,
Vector3Renderer,
ColorRenderer,
ComponentRenderer,
ArrayRenderer,
FallbackRenderer
} from '../../infrastructure/property-renderers';
export interface EditorServices {
uiRegistry: UIRegistry;
@@ -47,6 +60,7 @@ export interface EditorServices {
dialog: TauriDialogService;
notification: NotificationService;
inspectorRegistry: InspectorRegistry;
propertyRendererRegistry: PropertyRendererRegistry;
}
export class ServiceRegistry {
@@ -95,6 +109,20 @@ export class ServiceRegistry {
Core.services.registerInstance(InspectorRegistry, inspectorRegistry);
const propertyRendererRegistry = new PropertyRendererRegistry();
Core.services.registerInstance(PropertyRendererRegistry, propertyRendererRegistry);
propertyRendererRegistry.register(new StringRenderer());
propertyRendererRegistry.register(new NumberRenderer());
propertyRendererRegistry.register(new BooleanRenderer());
propertyRendererRegistry.register(new NullRenderer());
propertyRendererRegistry.register(new Vector2Renderer());
propertyRendererRegistry.register(new Vector3Renderer());
propertyRendererRegistry.register(new ColorRenderer());
propertyRendererRegistry.register(new ComponentRenderer());
propertyRendererRegistry.register(new ArrayRenderer());
propertyRendererRegistry.register(new FallbackRenderer());
return {
uiRegistry,
messageHub,
@@ -116,7 +144,8 @@ export class ServiceRegistry {
fileSystem,
dialog,
notification,
inspectorRegistry
inspectorRegistry,
propertyRendererRegistry
};
}