Path: blob/main/src/vs/editor/browser/services/codeEditorService.ts
3294 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { Event } from '../../../base/common/event.js';6import { ICodeEditor, IDiffEditor } from '../editorBrowser.js';7import { IDecorationRenderOptions } from '../../common/editorCommon.js';8import { IModelDecorationOptions, ITextModel } from '../../common/model.js';9import { ITextResourceEditorInput } from '../../../platform/editor/common/editor.js';10import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';11import { URI } from '../../../base/common/uri.js';12import { IDisposable } from '../../../base/common/lifecycle.js';1314export const ICodeEditorService = createDecorator<ICodeEditorService>('codeEditorService');1516export interface ICodeEditorService {17readonly _serviceBrand: undefined;1819readonly onWillCreateCodeEditor: Event<void>;20readonly onCodeEditorAdd: Event<ICodeEditor>;21readonly onCodeEditorRemove: Event<ICodeEditor>;2223readonly onWillCreateDiffEditor: Event<void>;24readonly onDiffEditorAdd: Event<IDiffEditor>;25readonly onDiffEditorRemove: Event<IDiffEditor>;2627readonly onDidChangeTransientModelProperty: Event<ITextModel>;28readonly onDecorationTypeRegistered: Event<string>;2930willCreateCodeEditor(): void;31addCodeEditor(editor: ICodeEditor): void;32removeCodeEditor(editor: ICodeEditor): void;33listCodeEditors(): readonly ICodeEditor[];3435willCreateDiffEditor(): void;36addDiffEditor(editor: IDiffEditor): void;37removeDiffEditor(editor: IDiffEditor): void;38listDiffEditors(): readonly IDiffEditor[];3940/**41* Returns the current focused code editor (if the focus is in the editor or in an editor widget) or null.42*/43getFocusedCodeEditor(): ICodeEditor | null;4445registerDecorationType(description: string, key: string, options: IDecorationRenderOptions, parentTypeKey?: string, editor?: ICodeEditor): void;46listDecorationTypes(): string[];47removeDecorationType(key: string): void;48resolveDecorationOptions(typeKey: string, writable: boolean): IModelDecorationOptions;49resolveDecorationCSSRules(decorationTypeKey: string): CSSRuleList | null;5051setModelProperty(resource: URI, key: string, value: any): void;52getModelProperty(resource: URI, key: string): any;5354setTransientModelProperty(model: ITextModel, key: string, value: any): void;55getTransientModelProperty(model: ITextModel, key: string): any;56getTransientModelProperties(model: ITextModel): [string, any][] | undefined;5758getActiveCodeEditor(): ICodeEditor | null;59openCodeEditor(input: ITextResourceEditorInput, source: ICodeEditor | null, sideBySide?: boolean): Promise<ICodeEditor | null>;60registerCodeEditorOpenHandler(handler: ICodeEditorOpenHandler): IDisposable;61}6263export interface ICodeEditorOpenHandler {64(input: ITextResourceEditorInput, source: ICodeEditor | null, sideBySide?: boolean): Promise<ICodeEditor | null>;65}666768