/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Event } from 'vs/base/common/event'; import { ICodeEditor, IDiffEditor } from 'vs/editor/browser/editorBrowser'; import { IDecorationRenderOptions } from 'vs/editor/common/editorCommon'; import { IModelDecorationOptions, ITextModel } from 'vs/editor/common/model'; import { IResourceEditorInput } from 'vs/platform/editor/common/editor'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { URI } from 'vs/base/common/uri'; export const ICodeEditorService = createDecorator('codeEditorService'); export interface ICodeEditorService { readonly _serviceBrand: undefined; readonly onCodeEditorAdd: Event; readonly onCodeEditorRemove: Event; readonly onDiffEditorAdd: Event; readonly onDiffEditorRemove: Event; readonly onDidChangeTransientModelProperty: Event; readonly onDecorationTypeRegistered: Event; addCodeEditor(editor: ICodeEditor): void; removeCodeEditor(editor: ICodeEditor): void; listCodeEditors(): readonly ICodeEditor[]; 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(key: string, options: IDecorationRenderOptions, parentTypeKey?: string, editor?: ICodeEditor): void; removeDecorationType(key: string): void; resolveDecorationOptions(typeKey: string, writable: boolean): IModelDecorationOptions; resolveDecorationCSSRules(decorationTypeKey: string): CSSRuleList | null; setModelProperty(resource: URI, key: string, value: any): void; getModelProperty(resource: URI, key: string): any; setTransientModelProperty(model: ITextModel, key: string, value: any): void; getTransientModelProperty(model: ITextModel, key: string): any; getTransientModelProperties(model: ITextModel): [string, any][] | undefined; getActiveCodeEditor(): ICodeEditor | null; openCodeEditor(input: IResourceEditorInput, source: ICodeEditor | null, sideBySide?: boolean): Promise; }