Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/common/services/model.ts
3295 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 { URI } from '../../../base/common/uri.js';
8
import { ITextBufferFactory, ITextModel, ITextModelCreationOptions } from '../model.js';
9
import { ILanguageSelection } from '../languages/language.js';
10
import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';
11
import { DocumentSemanticTokensProvider, DocumentRangeSemanticTokensProvider } from '../languages.js';
12
import { TextModelEditSource } from '../textModelEditSource.js';
13
14
export const IModelService = createDecorator<IModelService>('modelService');
15
16
export type DocumentTokensProvider = DocumentSemanticTokensProvider | DocumentRangeSemanticTokensProvider;
17
18
export interface IModelService {
19
readonly _serviceBrand: undefined;
20
21
createModel(value: string | ITextBufferFactory, languageSelection: ILanguageSelection | null, resource?: URI, isForSimpleWidget?: boolean): ITextModel;
22
23
updateModel(model: ITextModel, value: string | ITextBufferFactory, reason?: TextModelEditSource): void;
24
25
destroyModel(resource: URI): void;
26
27
getModels(): ITextModel[];
28
29
getCreationOptions(language: string, resource: URI, isForSimpleWidget: boolean): ITextModelCreationOptions;
30
31
getModel(resource: URI): ITextModel | null;
32
33
readonly onModelAdded: Event<ITextModel>;
34
35
readonly onModelRemoved: Event<ITextModel>;
36
37
readonly onModelLanguageChanged: Event<{ readonly model: ITextModel; readonly oldLanguageId: string }>;
38
}
39
40