import { AfterViewInit, ElementRef, OnDestroy } from "@angular/core"; import { IClass, IMethod, ChangeInfo } from "../code-editor-core/libs/interfaces/declaration"; import { MonacoCodeEditorConfig } from "./config"; import { IEditorOptions, IGlobalEditorOptions } from './monaco.interface'; import { TsFileLoaderService } from './hooks/ts-file-loader.service'; import { TsPackageLoaderService } from './hooks/ts-package-loader.service'; export declare class MonacoCodeEditorComponent implements AfterViewInit, OnDestroy { private tsFileLoader; private tsPackageLoader; private config?; constructor(tsFileLoader: TsFileLoaderService, tsPackageLoader: TsPackageLoaderService, config?: MonacoCodeEditorConfig); private tsEditor; private javaEditor; private otherEditor; editorViewChild: ElementRef; wrapViewChild: ElementRef; ngAfterViewInit(): void; /** 在默认主题的基础上自定义样式 */ private defineCustomTheme; ngOnDestroy(): void; private init; /** * 根据文件后缀判断使用哪个编辑器打开 * @param path 文件路径 * @returns 代码编辑器 */ private openWith; /** * 打开文件 * @param path - 文件路径 * @param content - 文件内容 */ open(path: string, content?: string): Promise; /** * 获取文件解析结果 * @param path - 文件路径 * @param errorRecovery - 是否忽略语法错误并继续解析 * @returns 文件内容及类结构,如果文件尚未打开则返回null */ resolve(path: string, errorRecovery?: boolean): Promise<{ content: string; hasFatalError?: boolean; classes?: IClass[]; }>; /** * 保存文件 * @remarks * 将文件的changed属性设置为false,并且记录最后一次保存的文件内容,允许撤销修改 * 如果文件尚未打开则静默失败 * @param path - 文件路径 * @param triggerChangedEvent - 是否触发内容变化事件(默认不触发,如果设置为true,则将触发Changed和OutlineChanged事件,当然,changed属性一定为false) */ save(path: string, triggerChangedEvent?: boolean): Promise; /** * 类新增方法片段 * @param path 文件路径 * @param method 方法结构描述 * @param _class 类名,为空则默认第一个类 */ addMethod(path: string, method: IMethod, _class?: string): Promise; /** * 关闭文件 * @param path - 文件路径 */ close(path: string): void; /** 处理容器大小变化事件 */ private handleContainerResize; /** * 监听内容变化事件 * @remarks 注意:本方法的changeInfo中不会包含类结构信息,需要类结构信息需要订阅onOutlineChanged方法 * @param fn 内容变化回调方法 */ onChanged(fn: (path: string, changeInfo: ChangeInfo) => void): Promise; /** * 监听内容变化事件(该方法是经过防抖处理的) * @param fn 内容变化回调方法 */ onOutlineChanged(fn: (path: string, changeInfo: ChangeInfo) => void): Promise; /** * 更改编辑器配置 * @param path 文件路径 * @param option 配置对象 */ updateOptions(path: string, newOptions: IEditorOptions & IGlobalEditorOptions): Promise; /** * 设置主题 * @param isDarkTheme 是否深色主题 */ setTheme(isDarkTheme: boolean): Promise; /** * 定位当前光标位置 * @param path 文件路径 * @param className 类名 * @param methodName 方法名 */ positon(path: string, className: string, methodName: string): Promise; getLanguage(): "" | "zh-cn" | "zh-tw"; }