import { Event } from "../../../base/common/event.js"; import { IDisposable } from "../../../base/common/lifecycle.js"; import { URI } from "../../../base/common/uri.js"; import { ITextResourceEditorInput } from "../../../platform/editor/common/editor.js"; import { IDecorationRenderOptions } from "../../common/editorCommon.js"; import { ITextModel, IModelDecorationOptions } from "../../common/model.js"; import { ICodeEditor, IDiffEditor } from "../editorBrowser.js"; import { ICodeEditorOpenHandler } from "./codeEditorService.js"; export declare const ICodeEditorService: import("../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; export interface ICodeEditorService { readonly _serviceBrand: undefined; readonly onWillCreateCodeEditor: Event; readonly onCodeEditorAdd: Event; readonly onCodeEditorRemove: Event; readonly onWillCreateDiffEditor: Event; readonly onDiffEditorAdd: Event; readonly onDiffEditorRemove: Event; readonly onDidChangeTransientModelProperty: Event; readonly onDecorationTypeRegistered: Event; willCreateCodeEditor(): void; addCodeEditor(editor: ICodeEditor): void; removeCodeEditor(editor: ICodeEditor): void; listCodeEditors(): readonly ICodeEditor[]; willCreateDiffEditor(): void; addDiffEditor(editor: IDiffEditor): void; removeDiffEditor(editor: IDiffEditor): void; listDiffEditors(): readonly IDiffEditor[]; /** * Returns the current focused code editor (if the focus is in the editor or in an editor widget) or null. */ getFocusedCodeEditor(): ICodeEditor | null; registerDecorationType(description: string, key: string, options: IDecorationRenderOptions, parentTypeKey?: string, editor?: ICodeEditor): IDisposable; listDecorationTypes(): string[]; removeDecorationType(key: string): void; resolveDecorationOptions(typeKey: string, writable: boolean): IModelDecorationOptions; resolveDecorationCSSRules(decorationTypeKey: string): CSSRuleList | null; setModelProperty(resource: URI, key: string, value: unknown): void; getModelProperty(resource: URI, key: string): unknown; setTransientModelProperty(model: ITextModel, key: string, value: unknown): void; getTransientModelProperty(model: ITextModel, key: string): unknown; getTransientModelProperties(model: ITextModel): [ string, unknown ][] | undefined; getActiveCodeEditor(): ICodeEditor | null; openCodeEditor(input: ITextResourceEditorInput, source: ICodeEditor | null, sideBySide?: boolean): Promise; registerCodeEditorOpenHandler(handler: ICodeEditorOpenHandler): IDisposable; }