Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/browser/services/codeEditorService.ts
3294 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { Event } from '../../../base/common/event.js';
7
import { ICodeEditor, IDiffEditor } from '../editorBrowser.js';
8
import { IDecorationRenderOptions } from '../../common/editorCommon.js';
9
import { IModelDecorationOptions, ITextModel } from '../../common/model.js';
10
import { ITextResourceEditorInput } from '../../../platform/editor/common/editor.js';
11
import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';
12
import { URI } from '../../../base/common/uri.js';
13
import { IDisposable } from '../../../base/common/lifecycle.js';
14
15
export const ICodeEditorService = createDecorator<ICodeEditorService>('codeEditorService');
16
17
export interface ICodeEditorService {
18
readonly _serviceBrand: undefined;
19
20
readonly onWillCreateCodeEditor: Event<void>;
21
readonly onCodeEditorAdd: Event<ICodeEditor>;
22
readonly onCodeEditorRemove: Event<ICodeEditor>;
23
24
readonly onWillCreateDiffEditor: Event<void>;
25
readonly onDiffEditorAdd: Event<IDiffEditor>;
26
readonly onDiffEditorRemove: Event<IDiffEditor>;
27
28
readonly onDidChangeTransientModelProperty: Event<ITextModel>;
29
readonly onDecorationTypeRegistered: Event<string>;
30
31
willCreateCodeEditor(): void;
32
addCodeEditor(editor: ICodeEditor): void;
33
removeCodeEditor(editor: ICodeEditor): void;
34
listCodeEditors(): readonly ICodeEditor[];
35
36
willCreateDiffEditor(): void;
37
addDiffEditor(editor: IDiffEditor): void;
38
removeDiffEditor(editor: IDiffEditor): void;
39
listDiffEditors(): readonly IDiffEditor[];
40
41
/**
42
* Returns the current focused code editor (if the focus is in the editor or in an editor widget) or null.
43
*/
44
getFocusedCodeEditor(): ICodeEditor | null;
45
46
registerDecorationType(description: string, key: string, options: IDecorationRenderOptions, parentTypeKey?: string, editor?: ICodeEditor): void;
47
listDecorationTypes(): string[];
48
removeDecorationType(key: string): void;
49
resolveDecorationOptions(typeKey: string, writable: boolean): IModelDecorationOptions;
50
resolveDecorationCSSRules(decorationTypeKey: string): CSSRuleList | null;
51
52
setModelProperty(resource: URI, key: string, value: any): void;
53
getModelProperty(resource: URI, key: string): any;
54
55
setTransientModelProperty(model: ITextModel, key: string, value: any): void;
56
getTransientModelProperty(model: ITextModel, key: string): any;
57
getTransientModelProperties(model: ITextModel): [string, any][] | undefined;
58
59
getActiveCodeEditor(): ICodeEditor | null;
60
openCodeEditor(input: ITextResourceEditorInput, source: ICodeEditor | null, sideBySide?: boolean): Promise<ICodeEditor | null>;
61
registerCodeEditorOpenHandler(handler: ICodeEditorOpenHandler): IDisposable;
62
}
63
64
export interface ICodeEditorOpenHandler {
65
(input: ITextResourceEditorInput, source: ICodeEditor | null, sideBySide?: boolean): Promise<ICodeEditor | null>;
66
}
67
68