Path: blob/main/src/vs/workbench/api/browser/mainThreadInteractive.ts
3296 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 { DisposableStore } from '../../../base/common/lifecycle.js';6import { PLAINTEXT_LANGUAGE_ID } from '../../../editor/common/languages/modesRegistry.js';7import { ExtHostContext, ExtHostInteractiveShape, MainContext, MainThreadInteractiveShape } from '../common/extHost.protocol.js';8import { extHostNamedCustomer, IExtHostContext } from '../../services/extensions/common/extHostCustomers.js';9import { IInteractiveDocumentService } from '../../contrib/interactive/browser/interactiveDocumentService.js';1011@extHostNamedCustomer(MainContext.MainThreadInteractive)12export class MainThreadInteractive implements MainThreadInteractiveShape {13private readonly _proxy: ExtHostInteractiveShape;1415private readonly _disposables = new DisposableStore();1617constructor(18extHostContext: IExtHostContext,19@IInteractiveDocumentService interactiveDocumentService: IInteractiveDocumentService20) {21this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostInteractive);2223this._disposables.add(interactiveDocumentService.onWillAddInteractiveDocument((e) => {24this._proxy.$willAddInteractiveDocument(e.inputUri, '\n', PLAINTEXT_LANGUAGE_ID, e.notebookUri);25}));2627this._disposables.add(interactiveDocumentService.onWillRemoveInteractiveDocument((e) => {28this._proxy.$willRemoveInteractiveDocument(e.inputUri, e.notebookUri);29}));30}3132dispose(): void {33this._disposables.dispose();3435}36}373839