import { Subscribable, Observable } from 'rxjs'; import { ITextModel, ITextBufferFactory, ITextModelCreationOptions } from '@vscode-alt/monaco-editor/esm/vs/editor/common/model'; import { ILanguageSelection } from '@vscode-alt/monaco-editor/esm/vs/editor/common/services/modeService'; import { URI } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri'; import { IModelService as IEditorModelService } from '@vscode-alt/monaco-editor/esm/vs/editor/common/services/modelService'; export const enum ModelActionType { 'add', 'remove', 'removeAll', 'onDirty', 'onSave', 'changeContent', } /** * The model service manages document contents and metadata. * * see {@link Model} for an explanation of the difference between a model and an editor. */ export interface IModelService extends Pick> { /** * Adds a model. * * @param model The model to add. */ createModel(value: string | ITextBufferFactory, languageSelection: string | ILanguageSelection, resource: URI, isForSimpleWidget?: boolean): ITextModel; onModelAdded: Observable; onModelRemoved: Observable; onModelModeChanged: Observable<{ model: ITextModel, oldModeId: string }>; }