import { ContainerModule } from 'inversify'; import { bindContributionProvider, bindContributions, bindInSingletonScope } from '@gedit/utils'; import { FrontendApplicationContribution, KeybindingContribution, LabelProviderContribution, TabBarToolbarContribution, WidgetFactory, } from '@gedit/application/lib/browser'; import { CommandContribution, MenuContribution } from '@gedit/application'; import { NavigatorContribution } from './navigator-contribution'; import { NavigatorService } from './navigator-service'; import { NavigatorTreeWidget } from './navigator-tree/navigator-tree-widget'; import { createNavigatorTreeContainer } from './navigator-tree/navigator-tree-container'; import { NavigatorResourceProvider } from './navigator-resource-provider'; import { NavigatorTreeLabelProvider } from './navigator-tree/navigator-tree-label-provider'; import { AppConfigNavigatorFileRegistry, NavigatorFileContribution, NavigatorFileContributionRegistry } from './navigator-file-contribution'; import '../../src/browser/style/index.css'; export default new ContainerModule(bind => { bindInSingletonScope(bind, [ NavigatorContribution, NavigatorService, NavigatorResourceProvider, NavigatorTreeLabelProvider, NavigatorFileContributionRegistry, AppConfigNavigatorFileRegistry, ]); bindContributionProvider(bind, NavigatorFileContribution); bind(NavigatorTreeWidget).toDynamicValue(ctx => { const navTree = createNavigatorTreeContainer(ctx.container).get(NavigatorTreeWidget); return navTree; }).inSingletonScope(); bindContributions(bind, NavigatorContribution, [ FrontendApplicationContribution, CommandContribution, KeybindingContribution, MenuContribution, TabBarToolbarContribution, ]); bindContributions(bind, AppConfigNavigatorFileRegistry, [ NavigatorFileContribution, ]); // 绑定到面板 bind(WidgetFactory).toDynamicValue(({container}) => ({ id: NavigatorTreeWidget.id, createWidget: () => container.get(NavigatorTreeWidget) })).inSingletonScope(); bind(LabelProviderContribution).toService(NavigatorTreeLabelProvider); });