import { InjectionToken } from "@angular/core"; import { NavPanelConfig } from '../interface/nav-panel'; /** 代码视图预置配置服务令牌 */ export declare const IDE_CODE_VIEW_CONFIGER: InjectionToken; /** * 代码视图预置配置服务 * @remarks * 本服务由外界注入,可选,为代码视图组件提供预置的导航面板等的配置 * * 原本的预置配置服务是耦合到代码视图组件中的,导致所有代码视图组件的使用者之间相互影响(代码视图组件是公共组件) * 如果frm需要加一个工具栏按钮,为此需要新增一个组件或者服务(依赖项变更),则导致其它的使用了代码视图组件的页面也都需要跟着一起重新打包,否则运行时报错 * * 现在将预置的配置服务分离出去(@farris/ide-code-view-configer) * 由于configer不是公共组件,每个引用了代码视图的页面将configer包含在页面里,相互之间不影响,可以随意升级 */ export interface ICodeViewConfigProvider { /** * 获取导航面板的配置 * @returns 导航面板配置 */ getNavPanelConfig?(): NavPanelConfig[]; } /** * 预置配置服务获取器 * @remarks 用于获取默认的代码视图配置 */ export interface ICodeViewConfiger { /** * 获取合适的配置提供者 * @remarks 如果返回null,则表示暂无默认的配置服务 * @param entryFilePath 入口文件地址,用于判断应该获取的配置提供者的类型 */ getConfigProvider(entryFilePath: string): ICodeViewConfigProvider; }